From ef86084b8401e78d8d991c5d615bd9a4e7cee63d Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Thu, 6 Sep 2012 00:30:34 +0200 Subject: [PATCH] Removed GLM website from the source repository --- CMakeLists.txt | 2 - bench/CMakeLists.txt | 11 - bench/core/CMakeLists.txt | 0 bench/gtc/CMakeLists.txt | 0 bench/gtx/CMakeLists.txt | 0 doc/CMakeLists.txt | 12 - doc/about.html | 35 - doc/api/a00001.html | 68 + doc/api/a00002.html | 79 + doc/api/a00003.html | 91 + doc/api/a00004.html | 77 + doc/api/a00004_source.html | 524 ++++++ doc/api/a00005.html | 77 + doc/api/a00005_source.html | 115 ++ doc/api/a00006.html | 77 + doc/api/a00006_source.html | 902 ++++++++++ doc/api/a00007.html | 77 + doc/api/a00007_source.html | 852 ++++++++++ doc/api/a00008.html | 77 + doc/api/a00008_source.html | 224 +++ doc/api/a00009.html | 98 ++ doc/api/a00009_source.html | 156 ++ doc/api/a00010.html | 121 ++ doc/api/a00010_source.html | 173 ++ doc/api/a00011_source.html | 126 ++ doc/api/a00012.html | 219 +++ doc/api/a00012_source.html | 182 ++ doc/api/a00013.html | 96 ++ doc/api/a00013_source.html | 146 ++ doc/api/a00014.html | 92 + doc/api/a00014_source.html | 136 ++ doc/api/a00015.html | 332 ++++ doc/api/a00015_source.html | 242 +++ doc/api/a00016.html | 92 + doc/api/a00016_source.html | 136 ++ doc/api/a00017.html | 136 ++ doc/api/a00017_source.html | 197 +++ doc/api/a00018.html | 92 + doc/api/a00018_source.html | 136 ++ doc/api/a00019.html | 116 ++ doc/api/a00019_source.html | 188 +++ doc/api/a00020_source.html | 209 +++ doc/api/a00021.html | 86 + doc/api/a00021_source.html | 126 ++ doc/api/a00022.html | 110 ++ doc/api/a00022_source.html | 232 +++ doc/api/a00023.html | 100 ++ doc/api/a00023_source.html | 147 ++ doc/api/a00024.html | 94 ++ doc/api/a00024_source.html | 137 ++ doc/api/a00025.html | 98 ++ doc/api/a00025_source.html | 141 ++ doc/api/a00026.html | 136 ++ doc/api/a00026_source.html | 236 +++ doc/api/a00027.html | 98 ++ doc/api/a00027_source.html | 132 ++ doc/api/a00028.html | 100 ++ doc/api/a00028_source.html | 151 ++ doc/api/a00029.html | 104 ++ doc/api/a00029_source.html | 165 ++ doc/api/a00030.html | 105 ++ doc/api/a00030_source.html | 153 ++ doc/api/a00031.html | 95 ++ doc/api/a00031_source.html | 125 ++ doc/api/a00032.html | 96 ++ doc/api/a00032_source.html | 137 ++ doc/api/a00033.html | 114 ++ doc/api/a00033_source.html | 162 ++ doc/api/a00034.html | 102 ++ doc/api/a00034_source.html | 145 ++ doc/api/a00035.html | 83 + doc/api/a00035_source.html | 192 +++ doc/api/a00036.html | 90 + doc/api/a00036_source.html | 134 ++ doc/api/a00037.html | 115 ++ doc/api/a00037_source.html | 407 +++++ doc/api/a00038.html | 88 + doc/api/a00038_source.html | 132 ++ doc/api/a00039.html | 77 + doc/api/a00039_source.html | 105 ++ doc/api/a00040.html | 102 ++ doc/api/a00040_source.html | 161 ++ doc/api/a00041.html | 87 + doc/api/a00041_source.html | 124 ++ doc/api/a00042.html | 100 ++ doc/api/a00042_source.html | 144 ++ doc/api/a00043.html | 94 ++ doc/api/a00043_source.html | 146 ++ doc/api/a00044.html | 83 + doc/api/a00044_source.html | 154 ++ doc/api/a00045.html | 77 + doc/api/a00045_source.html | 144 ++ doc/api/a00046.html | 77 + doc/api/a00046_source.html | 141 ++ doc/api/a00047_source.html | 134 ++ doc/api/a00048.html | 77 + doc/api/a00048_source.html | 113 ++ doc/api/a00049.html | 77 + doc/api/a00049_source.html | 113 ++ doc/api/a00050.html | 86 + doc/api/a00050_source.html | 125 ++ doc/api/a00051_source.html | 1838 ++++++++++++++++++++ doc/api/a00052.html | 92 + doc/api/a00052_source.html | 141 ++ doc/api/a00053.html | 90 + doc/api/a00053_source.html | 129 ++ doc/api/a00054.html | 240 +++ doc/api/a00054_source.html | 376 +++++ doc/api/a00055.html | 90 + doc/api/a00055_source.html | 137 ++ doc/api/a00056.html | 89 + doc/api/a00056_source.html | 126 ++ doc/api/a00057.html | 110 ++ doc/api/a00057_source.html | 181 ++ doc/api/a00058.html | 102 ++ doc/api/a00058_source.html | 156 ++ doc/api/a00059.html | 102 ++ doc/api/a00059_source.html | 163 ++ doc/api/a00060.html | 116 ++ doc/api/a00060_source.html | 218 +++ doc/api/a00061.html | 87 + doc/api/a00061_source.html | 126 ++ doc/api/a00062.html | 90 + doc/api/a00062_source.html | 131 ++ doc/api/a00063.html | 90 + doc/api/a00063_source.html | 136 ++ doc/api/a00064.html | 78 + doc/api/a00064_source.html | 125 ++ doc/api/a00065.html | 108 ++ doc/api/a00065_source.html | 173 ++ doc/api/a00066.html | 88 + doc/api/a00066_source.html | 127 ++ doc/api/a00067.html | 90 + doc/api/a00067_source.html | 132 ++ doc/api/a00068.html | 114 ++ doc/api/a00068_source.html | 147 ++ doc/api/a00069.html | 205 +++ doc/api/a00069_source.html | 193 +++ doc/api/a00070.html | 94 ++ doc/api/a00070_source.html | 139 ++ doc/api/a00071.html | 90 + doc/api/a00071_source.html | 130 ++ doc/api/a00072_source.html | 66 + doc/api/a00073.html | 88 + doc/api/a00073_source.html | 127 ++ doc/api/a00074.html | 88 + doc/api/a00074_source.html | 128 ++ doc/api/a00075.html | 86 + doc/api/a00075_source.html | 125 ++ doc/api/a00076.html | 126 ++ doc/api/a00076_source.html | 279 ++++ doc/api/a00077.html | 134 ++ doc/api/a00077_source.html | 242 +++ doc/api/a00078.html | 101 ++ doc/api/a00078_source.html | 149 ++ doc/api/a00079.html | 196 +++ doc/api/a00079_source.html | 167 ++ doc/api/a00080.html | 88 + doc/api/a00080_source.html | 129 ++ doc/api/a00081.html | 108 ++ doc/api/a00081_source.html | 156 ++ doc/api/a00082.html | 106 ++ doc/api/a00082_source.html | 174 ++ doc/api/a00083.html | 77 + doc/api/a00083_source.html | 711 ++++++++ doc/api/a00084_source.html | 248 +++ doc/api/a00085.html | 78 + doc/api/a00085_source.html | 377 +++++ doc/api/a00086.html | 90 + doc/api/a00086_source.html | 146 ++ doc/api/a00087.html | 98 ++ doc/api/a00087_source.html | 133 ++ doc/api/a00088.html | 92 + doc/api/a00088_source.html | 130 ++ doc/api/a00089.html | 86 + doc/api/a00089_source.html | 438 +++++ doc/api/a00090.html | 108 ++ doc/api/a00090_source.html | 175 ++ doc/api/a00091.html | 104 ++ doc/api/a00091_source.html | 179 ++ doc/api/a00092.html | 122 ++ doc/api/a00092_source.html | 290 ++++ doc/api/a00093.html | 86 + doc/api/a00093_source.html | 131 ++ doc/api/a00094.html | 77 + doc/api/a00094_source.html | 228 +++ doc/api/a00095.html | 85 + doc/api/a00095_source.html | 182 ++ doc/api/a00096.html | 90 + doc/api/a00096_source.html | 166 ++ doc/api/a00097.html | 77 + doc/api/a00097_source.html | 140 ++ doc/api/a00098.html | 95 ++ doc/api/a00098_source.html | 343 ++++ doc/api/a00099.html | 89 + doc/api/a00099_source.html | 304 ++++ doc/api/a00100.html | 89 + doc/api/a00100_source.html | 306 ++++ doc/api/a00101.html | 89 + doc/api/a00101_source.html | 313 ++++ doc/api/a00102.html | 95 ++ doc/api/a00102_source.html | 348 ++++ doc/api/a00103.html | 89 + doc/api/a00103_source.html | 313 ++++ doc/api/a00104.html | 89 + doc/api/a00104_source.html | 318 ++++ doc/api/a00105.html | 89 + doc/api/a00105_source.html | 316 ++++ doc/api/a00106.html | 95 ++ doc/api/a00106_source.html | 349 ++++ doc/api/a00107.html | 220 +++ doc/api/a00107_source.html | 446 +++++ doc/api/a00108.html | 122 ++ doc/api/a00108_source.html | 197 +++ doc/api/a00109.html | 77 + doc/api/a00109_source.html | 108 ++ doc/api/a00110.html | 77 + doc/api/a00110_source.html | 106 ++ doc/api/a00111.html | 77 + doc/api/a00111_source.html | 263 +++ doc/api/a00112.html | 96 ++ doc/api/a00112_source.html | 321 ++++ doc/api/a00113.html | 96 ++ doc/api/a00113_source.html | 345 ++++ doc/api/a00114.html | 96 ++ doc/api/a00114_source.html | 391 +++++ doc/api/a00115.html | 96 ++ doc/api/a00115_source.html | 140 ++ doc/api/a00116_source.html | 91 + doc/api/a00117.html | 97 ++ doc/api/a00117_source.html | 172 ++ doc/api/a00118.html | 90 + doc/api/a00118_source.html | 141 ++ doc/api/a00119.html | 95 ++ doc/api/a00119_source.html | 141 ++ doc/api/a00120.html | 98 ++ doc/api/a00120_source.html | 160 ++ doc/api/a00121.html | 94 ++ doc/api/a00121_source.html | 135 ++ doc/api/a00122.html | 90 + doc/api/a00122_source.html | 129 ++ doc/api/a00123.html | 80 + doc/api/a00123_source.html | 229 +++ doc/api/a00127.html | 1040 ++++++++++++ doc/api/a00128.html | 334 ++++ doc/api/a00129.html | 375 +++++ doc/api/a00130.html | 497 ++++++ doc/api/a00131.html | 364 ++++ doc/api/a00132.html | 193 +++ doc/api/a00133.html | 373 +++++ doc/api/a00134.html | 541 ++++++ doc/api/a00135.html | 402 +++++ doc/api/a00136.html | 81 + doc/api/a00137.html | 130 ++ doc/api/a00138.html | 69 + doc/api/a00139.html | 83 + doc/api/a00140.html | 811 +++++++++ doc/api/a00141.html | 1723 +++++++++++++++++++ doc/api/a00142.html | 62 + doc/api/a00143.html | 394 +++++ doc/api/a00144.html | 210 +++ doc/api/a00145.html | 1954 ++++++++++++++++++++++ doc/api/a00146.html | 139 ++ doc/api/a00147.html | 904 ++++++++++ doc/api/a00148.html | 145 ++ doc/api/a00149.html | 505 ++++++ doc/api/a00150.html | 267 +++ doc/api/a00151.html | 120 ++ doc/api/a00152.html | 2595 +++++++++++++++++++++++++++++ doc/api/a00153.html | 455 +++++ doc/api/a00154.html | 406 +++++ doc/api/a00155.html | 447 +++++ doc/api/a00156.html | 108 ++ doc/api/a00157.html | 243 +++ doc/api/a00158.html | 222 +++ doc/api/a00159.html | 162 ++ doc/api/a00160.html | 311 ++++ doc/api/a00161.html | 158 ++ doc/api/a00162.html | 596 +++++++ doc/api/a00163.html | 146 ++ doc/api/a00164.html | 492 ++++++ doc/api/a00165.html | 108 ++ doc/api/a00166.html | 562 +++++++ doc/api/a00167.html | 244 +++ doc/api/a00168.html | 193 +++ doc/api/a00169.html | 234 +++ doc/api/a00170.html | 152 ++ doc/api/a00171.html | 146 ++ doc/api/a00172.html | 326 ++++ doc/api/a00173.html | 92 + doc/api/a00174.html | 344 ++++ doc/api/a00175.html | 294 ++++ doc/api/a00176.html | 103 ++ doc/api/a00177.html | 114 ++ doc/api/a00178.html | 178 ++ doc/api/a00179.html | 430 +++++ doc/api/a00180.html | 268 +++ doc/api/a00181.html | 326 ++++ doc/api/a00182.html | 72 + doc/api/a00183.html | 134 ++ doc/api/a00184.html | 62 + doc/api/a00185.html | 378 +++++ doc/api/a00186.html | 108 ++ doc/api/a00187.html | 134 ++ doc/api/a00188.html | 95 ++ doc/api/a00189.html | 188 +++ doc/api/a00190.html | 220 +++ doc/api/a00191.html | 124 ++ doc/api/a00192.html | 102 ++ doc/api/a00193.html | 114 ++ doc/api/a00194.html | 102 ++ doc/api/a00195.html | 782 +++++++++ doc/api/a00196.html | 199 +++ doc/api/a00197.html | 146 ++ doc/api/a00198.html | 334 ++++ doc/api/a00199.html | 402 +++++ doc/api/a00200.html | 62 + doc/api/a00201.html | 62 + doc/api/a00202.html | 220 +++ doc/api/a00203.html | 190 +++ doc/api/a00204.html | 92 + doc/api/a00205.html | 422 +++++ doc/api/a00206.html | 381 +++++ doc/api/a00207.html | 242 +++ doc/api/a00208.html | 62 + doc/api/a00209.html | 202 +++ doc/api/a00210.html | 173 ++ doc/api/a00211.html | 312 ++++ doc/api/a00212.html | 231 +++ doc/api/a00213.html | 133 ++ doc/api/a00214.html | 62 + doc/api/a00215.html | 76 + doc/api/a00217.html | 74 + doc/api/a00218.html | 75 + doc/api/annotated.html | 70 + doc/api/bc_s.png | Bin 0 -> 705 bytes doc/api/classes.html | 76 + doc/api/closed.png | Bin 0 -> 126 bytes doc/api/doxygen.css | 873 ++++++++++ doc/api/doxygen.png | Bin 0 -> 3942 bytes doc/api/files.html | 187 +++ doc/api/functions.html | 73 + doc/api/functions_func.html | 73 + doc/api/index.html | 77 + doc/api/jquery.js | 54 + doc/{image => api}/logo-mini.png | Bin doc/api/modules.html | 158 ++ doc/api/nav_f.png | Bin 0 -> 159 bytes doc/api/nav_h.png | Bin 0 -> 97 bytes doc/api/open.png | Bin 0 -> 118 bytes doc/api/pages.html | 66 + doc/api/tab_a.png | Bin 0 -> 140 bytes doc/api/tab_b.png | Bin 0 -> 178 bytes doc/api/tab_h.png | Bin 0 -> 192 bytes doc/api/tab_s.png | Bin 0 -> 189 bytes doc/api/tabs.css | 79 + doc/build/XalanMessages_1_7_0.dll | Bin 61440 -> 0 bytes doc/build/build.bat | 6 - doc/build/msvcp71.dll | Bin 499712 -> 0 bytes doc/build/msvcr71.dll | Bin 348160 -> 0 bytes doc/build/xalan-c_1_7_0.dll | Bin 2072576 -> 0 bytes doc/build/xalan.exe | Bin 24576 -> 0 bytes doc/build/xerces-c_2_5_0.dll | Bin 1912832 -> 0 bytes doc/code.html | 189 --- doc/common/email.png | Bin 667 -> 0 bytes doc/common/g-truc.png | Bin 16744 -> 0 bytes doc/common/logo.png | Bin 3952 -> 0 bytes doc/common/opengl.jpg | Bin 3333 -> 0 bytes doc/common/sourceforge.gif | Bin 1501 -> 0 bytes doc/common/style.css | 328 ---- doc/common/title.png | Bin 6452 -> 0 bytes doc/download.html | 167 -- doc/{glm-0.9.3.pdf => glm.pdf} | Bin doc/goodies.html | 15 - doc/goodies/logo1024x0640.png | Bin 29221 -> 0 bytes doc/goodies/logo1280x0800.png | Bin 41341 -> 0 bytes doc/goodies/logo1600x1000.png | Bin 55379 -> 0 bytes doc/goodies/logo1920x1200.png | Bin 71455 -> 0 bytes doc/goodies/logo2560x1600.png | Bin 83668 -> 0 bytes doc/goodies/tenby-five.otf | Bin 16192 -> 0 bytes doc/image/0029-mini.jpg | Bin 10855 -> 0 bytes doc/image/0029.jpg | Bin 76519 -> 0 bytes doc/image/0075-1.jpg | Bin 6588 -> 0 bytes doc/image/0075-2.jpg | Bin 19041 -> 0 bytes doc/image/font-mini.png | Bin 1744 -> 0 bytes doc/image/font.png | Bin 8577 -> 0 bytes doc/image/logo.png | Bin 27877 -> 0 bytes doc/index.html | 464 ------ doc/src/about.xsl | 81 - doc/src/code.xsl | 111 -- doc/src/data.xml | 2025 ---------------------- doc/src/download.xsl | 91 - doc/src/dummy.cpp | 60 - doc/src/goodies.xsl | 92 - doc/src/link.xsl | 131 -- doc/src/news.xsl | 69 - doc/src/util.xsl | 283 ---- 397 files changed, 68635 insertions(+), 4172 deletions(-) delete mode 100644 bench/CMakeLists.txt delete mode 100644 bench/core/CMakeLists.txt delete mode 100644 bench/gtc/CMakeLists.txt delete mode 100644 bench/gtx/CMakeLists.txt delete mode 100644 doc/CMakeLists.txt delete mode 100644 doc/about.html create mode 100644 doc/api/a00001.html create mode 100644 doc/api/a00002.html create mode 100644 doc/api/a00003.html create mode 100644 doc/api/a00004.html create mode 100644 doc/api/a00004_source.html create mode 100644 doc/api/a00005.html create mode 100644 doc/api/a00005_source.html create mode 100644 doc/api/a00006.html create mode 100644 doc/api/a00006_source.html create mode 100644 doc/api/a00007.html create mode 100644 doc/api/a00007_source.html create mode 100644 doc/api/a00008.html create mode 100644 doc/api/a00008_source.html create mode 100644 doc/api/a00009.html create mode 100644 doc/api/a00009_source.html create mode 100644 doc/api/a00010.html create mode 100644 doc/api/a00010_source.html create mode 100644 doc/api/a00011_source.html create mode 100644 doc/api/a00012.html create mode 100644 doc/api/a00012_source.html create mode 100644 doc/api/a00013.html create mode 100644 doc/api/a00013_source.html create mode 100644 doc/api/a00014.html create mode 100644 doc/api/a00014_source.html create mode 100644 doc/api/a00015.html create mode 100644 doc/api/a00015_source.html create mode 100644 doc/api/a00016.html create mode 100644 doc/api/a00016_source.html create mode 100644 doc/api/a00017.html create mode 100644 doc/api/a00017_source.html create mode 100644 doc/api/a00018.html create mode 100644 doc/api/a00018_source.html create mode 100644 doc/api/a00019.html create mode 100644 doc/api/a00019_source.html create mode 100644 doc/api/a00020_source.html create mode 100644 doc/api/a00021.html create mode 100644 doc/api/a00021_source.html create mode 100644 doc/api/a00022.html create mode 100644 doc/api/a00022_source.html create mode 100644 doc/api/a00023.html create mode 100644 doc/api/a00023_source.html create mode 100644 doc/api/a00024.html create mode 100644 doc/api/a00024_source.html create mode 100644 doc/api/a00025.html create mode 100644 doc/api/a00025_source.html create mode 100644 doc/api/a00026.html create mode 100644 doc/api/a00026_source.html create mode 100644 doc/api/a00027.html create mode 100644 doc/api/a00027_source.html create mode 100644 doc/api/a00028.html create mode 100644 doc/api/a00028_source.html create mode 100644 doc/api/a00029.html create mode 100644 doc/api/a00029_source.html create mode 100644 doc/api/a00030.html create mode 100644 doc/api/a00030_source.html create mode 100644 doc/api/a00031.html create mode 100644 doc/api/a00031_source.html create mode 100644 doc/api/a00032.html create mode 100644 doc/api/a00032_source.html create mode 100644 doc/api/a00033.html create mode 100644 doc/api/a00033_source.html create mode 100644 doc/api/a00034.html create mode 100644 doc/api/a00034_source.html create mode 100644 doc/api/a00035.html create mode 100644 doc/api/a00035_source.html create mode 100644 doc/api/a00036.html create mode 100644 doc/api/a00036_source.html create mode 100644 doc/api/a00037.html create mode 100644 doc/api/a00037_source.html create mode 100644 doc/api/a00038.html create mode 100644 doc/api/a00038_source.html create mode 100644 doc/api/a00039.html create mode 100644 doc/api/a00039_source.html create mode 100644 doc/api/a00040.html create mode 100644 doc/api/a00040_source.html create mode 100644 doc/api/a00041.html create mode 100644 doc/api/a00041_source.html create mode 100644 doc/api/a00042.html create mode 100644 doc/api/a00042_source.html create mode 100644 doc/api/a00043.html create mode 100644 doc/api/a00043_source.html create mode 100644 doc/api/a00044.html create mode 100644 doc/api/a00044_source.html create mode 100644 doc/api/a00045.html create mode 100644 doc/api/a00045_source.html create mode 100644 doc/api/a00046.html create mode 100644 doc/api/a00046_source.html create mode 100644 doc/api/a00047_source.html create mode 100644 doc/api/a00048.html create mode 100644 doc/api/a00048_source.html create mode 100644 doc/api/a00049.html create mode 100644 doc/api/a00049_source.html create mode 100644 doc/api/a00050.html create mode 100644 doc/api/a00050_source.html create mode 100644 doc/api/a00051_source.html create mode 100644 doc/api/a00052.html create mode 100644 doc/api/a00052_source.html create mode 100644 doc/api/a00053.html create mode 100644 doc/api/a00053_source.html create mode 100644 doc/api/a00054.html create mode 100644 doc/api/a00054_source.html create mode 100644 doc/api/a00055.html create mode 100644 doc/api/a00055_source.html create mode 100644 doc/api/a00056.html create mode 100644 doc/api/a00056_source.html create mode 100644 doc/api/a00057.html create mode 100644 doc/api/a00057_source.html create mode 100644 doc/api/a00058.html create mode 100644 doc/api/a00058_source.html create mode 100644 doc/api/a00059.html create mode 100644 doc/api/a00059_source.html create mode 100644 doc/api/a00060.html create mode 100644 doc/api/a00060_source.html create mode 100644 doc/api/a00061.html create mode 100644 doc/api/a00061_source.html create mode 100644 doc/api/a00062.html create mode 100644 doc/api/a00062_source.html create mode 100644 doc/api/a00063.html create mode 100644 doc/api/a00063_source.html create mode 100644 doc/api/a00064.html create mode 100644 doc/api/a00064_source.html create mode 100644 doc/api/a00065.html create mode 100644 doc/api/a00065_source.html create mode 100644 doc/api/a00066.html create mode 100644 doc/api/a00066_source.html create mode 100644 doc/api/a00067.html create mode 100644 doc/api/a00067_source.html create mode 100644 doc/api/a00068.html create mode 100644 doc/api/a00068_source.html create mode 100644 doc/api/a00069.html create mode 100644 doc/api/a00069_source.html create mode 100644 doc/api/a00070.html create mode 100644 doc/api/a00070_source.html create mode 100644 doc/api/a00071.html create mode 100644 doc/api/a00071_source.html create mode 100644 doc/api/a00072_source.html create mode 100644 doc/api/a00073.html create mode 100644 doc/api/a00073_source.html create mode 100644 doc/api/a00074.html create mode 100644 doc/api/a00074_source.html create mode 100644 doc/api/a00075.html create mode 100644 doc/api/a00075_source.html create mode 100644 doc/api/a00076.html create mode 100644 doc/api/a00076_source.html create mode 100644 doc/api/a00077.html create mode 100644 doc/api/a00077_source.html create mode 100644 doc/api/a00078.html create mode 100644 doc/api/a00078_source.html create mode 100644 doc/api/a00079.html create mode 100644 doc/api/a00079_source.html create mode 100644 doc/api/a00080.html create mode 100644 doc/api/a00080_source.html create mode 100644 doc/api/a00081.html create mode 100644 doc/api/a00081_source.html create mode 100644 doc/api/a00082.html create mode 100644 doc/api/a00082_source.html create mode 100644 doc/api/a00083.html create mode 100644 doc/api/a00083_source.html create mode 100644 doc/api/a00084_source.html create mode 100644 doc/api/a00085.html create mode 100644 doc/api/a00085_source.html create mode 100644 doc/api/a00086.html create mode 100644 doc/api/a00086_source.html create mode 100644 doc/api/a00087.html create mode 100644 doc/api/a00087_source.html create mode 100644 doc/api/a00088.html create mode 100644 doc/api/a00088_source.html create mode 100644 doc/api/a00089.html create mode 100644 doc/api/a00089_source.html create mode 100644 doc/api/a00090.html create mode 100644 doc/api/a00090_source.html create mode 100644 doc/api/a00091.html create mode 100644 doc/api/a00091_source.html create mode 100644 doc/api/a00092.html create mode 100644 doc/api/a00092_source.html create mode 100644 doc/api/a00093.html create mode 100644 doc/api/a00093_source.html create mode 100644 doc/api/a00094.html create mode 100644 doc/api/a00094_source.html create mode 100644 doc/api/a00095.html create mode 100644 doc/api/a00095_source.html create mode 100644 doc/api/a00096.html create mode 100644 doc/api/a00096_source.html create mode 100644 doc/api/a00097.html create mode 100644 doc/api/a00097_source.html create mode 100644 doc/api/a00098.html create mode 100644 doc/api/a00098_source.html create mode 100644 doc/api/a00099.html create mode 100644 doc/api/a00099_source.html create mode 100644 doc/api/a00100.html create mode 100644 doc/api/a00100_source.html create mode 100644 doc/api/a00101.html create mode 100644 doc/api/a00101_source.html create mode 100644 doc/api/a00102.html create mode 100644 doc/api/a00102_source.html create mode 100644 doc/api/a00103.html create mode 100644 doc/api/a00103_source.html create mode 100644 doc/api/a00104.html create mode 100644 doc/api/a00104_source.html create mode 100644 doc/api/a00105.html create mode 100644 doc/api/a00105_source.html create mode 100644 doc/api/a00106.html create mode 100644 doc/api/a00106_source.html create mode 100644 doc/api/a00107.html create mode 100644 doc/api/a00107_source.html create mode 100644 doc/api/a00108.html create mode 100644 doc/api/a00108_source.html create mode 100644 doc/api/a00109.html create mode 100644 doc/api/a00109_source.html create mode 100644 doc/api/a00110.html create mode 100644 doc/api/a00110_source.html create mode 100644 doc/api/a00111.html create mode 100644 doc/api/a00111_source.html create mode 100644 doc/api/a00112.html create mode 100644 doc/api/a00112_source.html create mode 100644 doc/api/a00113.html create mode 100644 doc/api/a00113_source.html create mode 100644 doc/api/a00114.html create mode 100644 doc/api/a00114_source.html create mode 100644 doc/api/a00115.html create mode 100644 doc/api/a00115_source.html create mode 100644 doc/api/a00116_source.html create mode 100644 doc/api/a00117.html create mode 100644 doc/api/a00117_source.html create mode 100644 doc/api/a00118.html create mode 100644 doc/api/a00118_source.html create mode 100644 doc/api/a00119.html create mode 100644 doc/api/a00119_source.html create mode 100644 doc/api/a00120.html create mode 100644 doc/api/a00120_source.html create mode 100644 doc/api/a00121.html create mode 100644 doc/api/a00121_source.html create mode 100644 doc/api/a00122.html create mode 100644 doc/api/a00122_source.html create mode 100644 doc/api/a00123.html create mode 100644 doc/api/a00123_source.html create mode 100644 doc/api/a00127.html create mode 100644 doc/api/a00128.html create mode 100644 doc/api/a00129.html create mode 100644 doc/api/a00130.html create mode 100644 doc/api/a00131.html create mode 100644 doc/api/a00132.html create mode 100644 doc/api/a00133.html create mode 100644 doc/api/a00134.html create mode 100644 doc/api/a00135.html create mode 100644 doc/api/a00136.html create mode 100644 doc/api/a00137.html create mode 100644 doc/api/a00138.html create mode 100644 doc/api/a00139.html create mode 100644 doc/api/a00140.html create mode 100644 doc/api/a00141.html create mode 100644 doc/api/a00142.html create mode 100644 doc/api/a00143.html create mode 100644 doc/api/a00144.html create mode 100644 doc/api/a00145.html create mode 100644 doc/api/a00146.html create mode 100644 doc/api/a00147.html create mode 100644 doc/api/a00148.html create mode 100644 doc/api/a00149.html create mode 100644 doc/api/a00150.html create mode 100644 doc/api/a00151.html create mode 100644 doc/api/a00152.html create mode 100644 doc/api/a00153.html create mode 100644 doc/api/a00154.html create mode 100644 doc/api/a00155.html create mode 100644 doc/api/a00156.html create mode 100644 doc/api/a00157.html create mode 100644 doc/api/a00158.html create mode 100644 doc/api/a00159.html create mode 100644 doc/api/a00160.html create mode 100644 doc/api/a00161.html create mode 100644 doc/api/a00162.html create mode 100644 doc/api/a00163.html create mode 100644 doc/api/a00164.html create mode 100644 doc/api/a00165.html create mode 100644 doc/api/a00166.html create mode 100644 doc/api/a00167.html create mode 100644 doc/api/a00168.html create mode 100644 doc/api/a00169.html create mode 100644 doc/api/a00170.html create mode 100644 doc/api/a00171.html create mode 100644 doc/api/a00172.html create mode 100644 doc/api/a00173.html create mode 100644 doc/api/a00174.html create mode 100644 doc/api/a00175.html create mode 100644 doc/api/a00176.html create mode 100644 doc/api/a00177.html create mode 100644 doc/api/a00178.html create mode 100644 doc/api/a00179.html create mode 100644 doc/api/a00180.html create mode 100644 doc/api/a00181.html create mode 100644 doc/api/a00182.html create mode 100644 doc/api/a00183.html create mode 100644 doc/api/a00184.html create mode 100644 doc/api/a00185.html create mode 100644 doc/api/a00186.html create mode 100644 doc/api/a00187.html create mode 100644 doc/api/a00188.html create mode 100644 doc/api/a00189.html create mode 100644 doc/api/a00190.html create mode 100644 doc/api/a00191.html create mode 100644 doc/api/a00192.html create mode 100644 doc/api/a00193.html create mode 100644 doc/api/a00194.html create mode 100644 doc/api/a00195.html create mode 100644 doc/api/a00196.html create mode 100644 doc/api/a00197.html create mode 100644 doc/api/a00198.html create mode 100644 doc/api/a00199.html create mode 100644 doc/api/a00200.html create mode 100644 doc/api/a00201.html create mode 100644 doc/api/a00202.html create mode 100644 doc/api/a00203.html create mode 100644 doc/api/a00204.html create mode 100644 doc/api/a00205.html create mode 100644 doc/api/a00206.html create mode 100644 doc/api/a00207.html create mode 100644 doc/api/a00208.html create mode 100644 doc/api/a00209.html create mode 100644 doc/api/a00210.html create mode 100644 doc/api/a00211.html create mode 100644 doc/api/a00212.html create mode 100644 doc/api/a00213.html create mode 100644 doc/api/a00214.html create mode 100644 doc/api/a00215.html create mode 100644 doc/api/a00217.html create mode 100644 doc/api/a00218.html create mode 100644 doc/api/annotated.html create mode 100644 doc/api/bc_s.png create mode 100644 doc/api/classes.html create mode 100644 doc/api/closed.png create mode 100644 doc/api/doxygen.css create mode 100644 doc/api/doxygen.png create mode 100644 doc/api/files.html create mode 100644 doc/api/functions.html create mode 100644 doc/api/functions_func.html create mode 100644 doc/api/index.html create mode 100644 doc/api/jquery.js rename doc/{image => api}/logo-mini.png (100%) create mode 100644 doc/api/modules.html create mode 100644 doc/api/nav_f.png create mode 100644 doc/api/nav_h.png create mode 100644 doc/api/open.png create mode 100644 doc/api/pages.html create mode 100644 doc/api/tab_a.png create mode 100644 doc/api/tab_b.png create mode 100644 doc/api/tab_h.png create mode 100644 doc/api/tab_s.png create mode 100644 doc/api/tabs.css delete mode 100644 doc/build/XalanMessages_1_7_0.dll delete mode 100644 doc/build/build.bat delete mode 100644 doc/build/msvcp71.dll delete mode 100644 doc/build/msvcr71.dll delete mode 100644 doc/build/xalan-c_1_7_0.dll delete mode 100644 doc/build/xalan.exe delete mode 100644 doc/build/xerces-c_2_5_0.dll delete mode 100644 doc/code.html delete mode 100644 doc/common/email.png delete mode 100644 doc/common/g-truc.png delete mode 100644 doc/common/logo.png delete mode 100644 doc/common/opengl.jpg delete mode 100644 doc/common/sourceforge.gif delete mode 100644 doc/common/style.css delete mode 100644 doc/common/title.png delete mode 100644 doc/download.html rename doc/{glm-0.9.3.pdf => glm.pdf} (100%) delete mode 100644 doc/goodies.html delete mode 100644 doc/goodies/logo1024x0640.png delete mode 100644 doc/goodies/logo1280x0800.png delete mode 100644 doc/goodies/logo1600x1000.png delete mode 100644 doc/goodies/logo1920x1200.png delete mode 100644 doc/goodies/logo2560x1600.png delete mode 100644 doc/goodies/tenby-five.otf delete mode 100644 doc/image/0029-mini.jpg delete mode 100644 doc/image/0029.jpg delete mode 100644 doc/image/0075-1.jpg delete mode 100644 doc/image/0075-2.jpg delete mode 100644 doc/image/font-mini.png delete mode 100644 doc/image/font.png delete mode 100644 doc/image/logo.png delete mode 100644 doc/index.html delete mode 100644 doc/src/about.xsl delete mode 100644 doc/src/code.xsl delete mode 100644 doc/src/data.xml delete mode 100644 doc/src/download.xsl delete mode 100644 doc/src/dummy.cpp delete mode 100644 doc/src/goodies.xsl delete mode 100644 doc/src/link.xsl delete mode 100644 doc/src/news.xsl delete mode 100644 doc/src/util.xsl diff --git a/CMakeLists.txt b/CMakeLists.txt index bb598a91..076d587f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,7 +88,5 @@ include_directories("./test/external") add_subdirectory(glm) add_subdirectory(test) -add_subdirectory(bench) -add_subdirectory(doc) install(DIRECTORY glm DESTINATION include) diff --git a/bench/CMakeLists.txt b/bench/CMakeLists.txt deleted file mode 100644 index 3ec521ef..00000000 --- a/bench/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -function(glmCreateBenchGTC NAME) - set(SAMPLE_NAME bench-${NAME}) - - add_executable(${SAMPLE_NAME} ${NAME}.cpp) -endfunction(glmCreateBenchGTC) - -add_subdirectory(core) -add_subdirectory(gtc) -add_subdirectory(gtx) - - diff --git a/bench/core/CMakeLists.txt b/bench/core/CMakeLists.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/bench/gtc/CMakeLists.txt b/bench/gtc/CMakeLists.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/bench/gtx/CMakeLists.txt b/bench/gtx/CMakeLists.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt deleted file mode 100644 index 0c7e2fe8..00000000 --- a/doc/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -set(NAME glm-doc) - -file(GLOB ROOT_TXT *.doxy ../*.txt ./theme/*.css) -file(GLOB ROOT_CPP src/*.cpp) -file(GLOB ROOT_XML src/*.xml) -file(GLOB ROOT_XSL src/*.xsl) - -source_group("TXT Files" FILES ${ROOT_TXT}) -source_group("XML Files" FILES ${ROOT_XML}) -source_group("XSL Files" FILES ${ROOT_XSL}) - -add_executable(${NAME} ${ROOT_CPP} ${ROOT_XML} ${ROOT_XSL} ${ROOT_TXT}) diff --git a/doc/about.html b/doc/about.html deleted file mode 100644 index 05f2d362..00000000 --- a/doc/about.html +++ /dev/null @@ -1,35 +0,0 @@ - - -OpenGL Mathematics: About
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM)
A C++ mathematics library for graphics programming


- OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software - based on the OpenGL Shading Language (GLSL) specification. -

- 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. -

- 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, - procedural noise functions, etc... -

- This library works perfectly with OpenGL but it also ensures interoperability with third party libraries and SDKs. - It is a good candidate for software rendering (Raytracing / Rasterisation), image processing, physic simulations and any context that requires a simple and convenient mathematics library. -

- The source code is licenced under the MIT license. -

- Thanks for contributing to the project by submitting tickets for bug reports and feature requests. (SF.net account required). - Any feedback is welcome at glm@g-truc.net. -

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 officially supports the following compilers:
  • Clang 2.6 and higher
  • CUDA 3.0 and higher -
  • GCC 3.4 and higher
  • LLVM 2.3 through GCC 4.2 front-end and higher
  • Visual C++ 2005 and higher
  • Any conform C++98 or C++11 compiler
_________________

_________________

Copyright © 2005 - 2012G-Truc Creation
\ No newline at end of file diff --git a/doc/api/a00001.html b/doc/api/a00001.html new file mode 100644 index 00000000..a538b309 --- /dev/null +++ b/doc/api/a00001.html @@ -0,0 +1,68 @@ + + + + + +Differences between GLSL and GLM core + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
Differences between GLSL and GLM core
+
+
+

GLM comes very close to replicating GLSL, but it is not exact. Here is a list of differences between GLM and GLSL:

+
    +
  • +

    Precision qualifiers. In GLSL numeric types can have qualifiers that define the precision of that type. While OpenGL's GLSL ignores these qualifiers, OpenGL ES's version of GLSL uses them.

    +

    C++ has no language equivalent to precision qualifiers. Instead, GLM provides a set of typedefs for each kind of precision qualifier and type. These types can be found in their own section.

    +

    Functions that take types tend to be templated on those types, so they can take these qualified types just as well as the regular ones.

    +
  • +
+
+ + + + + + diff --git a/doc/api/a00002.html b/doc/api/a00002.html new file mode 100644 index 00000000..10775298 --- /dev/null +++ b/doc/api/a00002.html @@ -0,0 +1,79 @@ + + + + + +half Class Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + + +
+
+ +
+
+ +

List of all members.

+

Detailed Description

+

16-bit floating point type.

+ +

Definition at line 44 of file type_half.hpp.

+
+ + + + + + diff --git a/doc/api/a00003.html b/doc/api/a00003.html new file mode 100644 index 00000000..bb642830 --- /dev/null +++ b/doc/api/a00003.html @@ -0,0 +1,91 @@ + + + + + +tquat< T > Struct Template Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + + +
+
+ +
+
tquat< T > Struct Template Reference
+
+
+ +

List of all members.

+ + + +

+Public Member Functions

tquat (tvec3< T > const &eulerAngles)
+

Detailed Description

+

template<typename T>
+struct glm::detail::tquat< T >

+ +

Template for quaternion.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +

Definition at line 57 of file gtc/quaternion.hpp.

+
+ + + + + + diff --git a/doc/api/a00004.html b/doc/api/a00004.html new file mode 100644 index 00000000..3950a544 --- /dev/null +++ b/doc/api/a00004.html @@ -0,0 +1,77 @@ + + + + + +_detail.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
_detail.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-07-24 / 2011-06-14
+
Author:
Christophe Riccio
+ +

Definition in file _detail.hpp.

+
+ + + + + + diff --git a/doc/api/a00004_source.html b/doc/api/a00004_source.html new file mode 100644 index 00000000..c299780b --- /dev/null +++ b/doc/api/a00004_source.html @@ -0,0 +1,524 @@ + + + + + +_detail.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
_detail.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_detail
+00030 #define glm_core_detail
+00031 
+00032 #include "setup.hpp"
+00033 #include <cassert>
+00034 #if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))
+00035 #include <cstdint>
+00036 #endif
+00037 
+00038 namespace glm{
+00039 namespace detail
+00040 {
+00041         class half;
+00042 
+00043 #if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
+00044         typedef int64_t                                                         sint64;
+00045         typedef uint64_t                                                        uint64;
+00046 #elif(GLM_COMPILER & GLM_COMPILER_VC)
+00047         typedef signed __int64                                          sint64;
+00048         typedef unsigned __int64                                        uint64;
+00049 #elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG))
+00050         __extension__ typedef signed long long          sint64;
+00051         __extension__ typedef unsigned long long        uint64;
+00052 #elif(GLM_COMPILER & GLM_COMPILER_BC)
+00053         typedef Int64                                                           sint64;
+00054         typedef Uint64                                                          uint64;
+00055 #else//unknown compiler
+00056         typedef signed long     long                                    sint64;
+00057         typedef unsigned long long                                      uint64;
+00058 #endif//GLM_COMPILER
+00059 
+00060         template<bool C>
+00061         struct If
+00062         {
+00063                 template<typename F, typename T>
+00064                 static GLM_FUNC_QUALIFIER T apply(F functor, const T& val)
+00065                 {
+00066                         return functor(val);
+00067                 }
+00068         };
+00069 
+00070         template<>
+00071         struct If<false>
+00072         {
+00073                 template<typename F, typename T>
+00074                 static GLM_FUNC_QUALIFIER T apply(F, const T& val)
+00075                 {
+00076                         return val;
+00077                 }
+00078         };
+00079 
+00080         //template <typename T>
+00081         //struct traits
+00082         //{
+00083         //      static const bool is_signed = false;
+00084         //      static const bool is_float = false;
+00085         //      static const bool is_vector = false;
+00086         //      static const bool is_matrix = false;
+00087         //      static const bool is_genType = false;
+00088         //      static const bool is_genIType = false;
+00089         //      static const bool is_genUType = false;
+00090         //};
+00091 
+00092         //template <>
+00093         //struct traits<half>
+00094         //{
+00095         //      static const bool is_float = true;
+00096         //      static const bool is_genType = true;
+00097         //};
+00098 
+00099         //template <>
+00100         //struct traits<float>
+00101         //{
+00102         //      static const bool is_float = true;
+00103         //      static const bool is_genType = true;
+00104         //};
+00105 
+00106         //template <>
+00107         //struct traits<double>
+00108         //{
+00109         //      static const bool is_float = true;
+00110         //      static const bool is_genType = true;
+00111         //};
+00112 
+00113         //template <typename genType>
+00114         //struct desc
+00115         //{
+00116         //      typedef genType                                                 type;
+00117         //      typedef genType *                                               pointer;
+00118         //      typedef genType const*                                  const_pointer;
+00119         //      typedef genType const *const                    const_pointer_const;
+00120         //      typedef genType *const                                  pointer_const;
+00121         //      typedef genType &                                               reference;
+00122         //      typedef genType const&                                  const_reference;
+00123         //      typedef genType const&                                  param_type;
+00124 
+00125         //      typedef typename genType::value_type    value_type;
+00126         //      typedef typename genType::size_type             size_type;
+00127         //      static const typename size_type                 value_size;
+00128         //};
+00129 
+00130         //template <typename genType>
+00131         //const typename desc<genType>::size_type desc<genType>::value_size = genType::value_size();
+00132 
+00133         union uif32
+00134         {
+00135                 GLM_FUNC_QUALIFIER uif32() :
+00136                         i(0)
+00137                 {}
+00138 
+00139                 GLM_FUNC_QUALIFIER uif32(float f) :
+00140                         f(f)
+00141                 {}
+00142 
+00143                 GLM_FUNC_QUALIFIER uif32(unsigned int i) :
+00144                         i(i)
+00145                 {}
+00146 
+00147                 float f;
+00148                 unsigned int i;
+00149         };
+00150 
+00151         union uif64
+00152         {
+00153                 GLM_FUNC_QUALIFIER uif64() :
+00154                         i(0)
+00155                 {}
+00156 
+00157                 GLM_FUNC_QUALIFIER uif64(double f) :
+00158                         f(f)
+00159                 {}
+00160 
+00161                 GLM_FUNC_QUALIFIER uif64(uint64 i) :
+00162                         i(i)
+00163                 {}
+00164 
+00165                 double f;
+00166                 uint64 i;
+00167         };
+00168 
+00169         typedef uif32 uif;
+00170 
+00172         // int
+00173 
+00174         template <typename T>
+00175         struct is_int
+00176         {
+00177                 enum is_int_enum
+00178                 {
+00179                         _YES = 0,
+00180                         _NO = 1
+00181                 };
+00182         };
+00183 
+00184 #define GLM_DETAIL_IS_INT(T)    \
+00185         template <>                                     \
+00186         struct is_int<T>                        \
+00187         {                                                       \
+00188                 enum is_int_enum                \
+00189                 {                                               \
+00190                         _YES = 1,                       \
+00191                         _NO = 0                         \
+00192                 };                                              \
+00193         }
+00194 
+00196         // uint
+00197 
+00198         template <typename T>
+00199         struct is_uint
+00200         {
+00201                 enum is_uint_enum
+00202                 {
+00203                         _YES = 0,
+00204                         _NO = 1
+00205                 };
+00206         };
+00207 
+00208 #define GLM_DETAIL_IS_UINT(T)   \
+00209         template <>                                     \
+00210         struct is_uint<T>                       \
+00211         {                                                       \
+00212                 enum is_uint_enum               \
+00213                 {                                               \
+00214                         _YES = 1,                       \
+00215                         _NO = 0                         \
+00216                 };                                              \
+00217         }
+00218 
+00219         //GLM_DETAIL_IS_UINT(unsigned long long)
+00220 
+00222         // float
+00223 
+00224         template <typename T>
+00225         struct is_float
+00226         {
+00227                 enum is_float_enum
+00228                 {
+00229                         _YES = 0,
+00230                         _NO = 1
+00231                 };
+00232         };
+00233 
+00234 #define GLM_DETAIL_IS_FLOAT(T)  \
+00235         template <>                                     \
+00236         struct is_float<T>                      \
+00237         {                                                       \
+00238                 enum is_float_enum              \
+00239                 {                                               \
+00240                         _YES = 1,                       \
+00241                         _NO = 0                         \
+00242                 };                                              \
+00243         }
+00244 
+00245         GLM_DETAIL_IS_FLOAT(detail::half);
+00246         GLM_DETAIL_IS_FLOAT(float);
+00247         GLM_DETAIL_IS_FLOAT(double);
+00248         GLM_DETAIL_IS_FLOAT(long double);
+00249 
+00251         // bool
+00252 
+00253         template <typename T>
+00254         struct is_bool
+00255         {
+00256                 enum is_bool_enum
+00257                 {
+00258                         _YES = 0,
+00259                         _NO = 1
+00260                 };
+00261         };
+00262         
+00263         template <>
+00264         struct is_bool<bool>
+00265         {
+00266                 enum is_bool_enum
+00267                 {
+00268                         _YES = 1,
+00269                         _NO = 0
+00270                 };
+00271         };
+00272         
+00274         // vector
+00275 
+00276         template <typename T>
+00277         struct is_vector
+00278         {
+00279                 enum is_vector_enum
+00280                 {
+00281                         _YES = 0,
+00282                         _NO = 1
+00283                 };
+00284         };
+00285 
+00286 #       define GLM_DETAIL_IS_VECTOR(TYPE) \
+00287                 template <typename T> \
+00288                 struct is_vector<TYPE<T> > \
+00289                 { \
+00290                         enum is_vector_enum \
+00291                         { \
+00292                                 _YES = 1, \
+00293                                 _NO = 0 \
+00294                         }; \
+00295                 }
+00296 
+00298         // matrix
+00299 
+00300         template <typename T>
+00301         struct is_matrix
+00302         {
+00303                 enum is_matrix_enum
+00304                 {
+00305                         _YES = 0,
+00306                         _NO = 1
+00307                 };
+00308         };
+00309 
+00310 #define GLM_DETAIL_IS_MATRIX(T) \
+00311         template <>                                     \
+00312         struct is_matrix                        \
+00313         {                                                       \
+00314                 enum is_matrix_enum             \
+00315                 {                                               \
+00316                         _YES = 1,                       \
+00317                         _NO = 0                         \
+00318                 };                                              \
+00319         }
+00320 
+00322         // type
+00323 
+00324         template <typename T>
+00325         struct type
+00326         {
+00327                 enum type_enum
+00328                 {
+00329                         is_float = is_float<T>::_YES,
+00330                         is_int = is_int<T>::_YES,
+00331                         is_uint = is_uint<T>::_YES,
+00332                         is_bool = is_bool<T>::_YES
+00333                 };
+00334         };
+00335         
+00337         // type
+00338         
+00339         typedef signed char                                                     int8;
+00340         typedef signed short                                            int16;
+00341         typedef signed int                                                      int32;
+00342         typedef detail::sint64                                          int64;
+00343         
+00344         typedef unsigned char                                           uint8;
+00345         typedef unsigned short                                          uint16;
+00346         typedef unsigned int                                            uint32;
+00347         typedef detail::uint64                                          uint64;
+00348         
+00349         typedef detail::half                                            float16;
+00350         typedef float                                                           float32;
+00351         typedef double                                                          float64;
+00352         
+00354         // float_or_int_trait 
+00355 
+00356         struct float_or_int_value
+00357         {
+00358                 enum
+00359                 {
+00360                         GLM_ERROR,
+00361                         GLM_FLOAT,
+00362                         GLM_INT
+00363                 };
+00364         };
+00365 
+00366         template <typename T>
+00367         struct float_or_int_trait
+00368         {
+00369                 enum{ID = float_or_int_value::GLM_ERROR};
+00370         };
+00371 
+00372         template <>
+00373         struct float_or_int_trait<int8>
+00374         {
+00375                 enum{ID = float_or_int_value::GLM_INT};
+00376         };
+00377 
+00378         template <>
+00379         struct float_or_int_trait<int16>
+00380         {
+00381                 enum{ID = float_or_int_value::GLM_INT};
+00382         };
+00383 
+00384         template <>
+00385         struct float_or_int_trait<int32>
+00386         {
+00387                 enum{ID = float_or_int_value::GLM_INT};
+00388         };
+00389 
+00390         template <>
+00391         struct float_or_int_trait<int64>
+00392         {
+00393                 enum{ID = float_or_int_value::GLM_INT};
+00394         };
+00395 
+00396         template <>
+00397         struct float_or_int_trait<uint8>
+00398         {
+00399                 enum{ID = float_or_int_value::GLM_INT};
+00400         };
+00401 
+00402         template <>
+00403         struct float_or_int_trait<uint16>
+00404         {
+00405                 enum{ID = float_or_int_value::GLM_INT};
+00406         };
+00407 
+00408         template <>
+00409         struct float_or_int_trait<uint32>
+00410         {
+00411                 enum{ID = float_or_int_value::GLM_INT};
+00412         };
+00413 
+00414         template <>
+00415         struct float_or_int_trait<uint64>
+00416         {
+00417                 enum{ID = float_or_int_value::GLM_INT};
+00418         };
+00419 
+00420         template <>
+00421         struct float_or_int_trait<float16>
+00422         {
+00423                 enum{ID = float_or_int_value::GLM_FLOAT};
+00424         };
+00425 
+00426         template <>
+00427         struct float_or_int_trait<float32>
+00428         {
+00429                 enum{ID = float_or_int_value::GLM_FLOAT};
+00430         };
+00431 
+00432         template <>
+00433         struct float_or_int_trait<float64>
+00434         {
+00435                 enum{ID = float_or_int_value::GLM_FLOAT};
+00436         };
+00437 
+00438 }//namespace detail
+00439 }//namespace glm
+00440 
+00441 #if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2005))
+00442 #       define GLM_DEPRECATED __declspec(deprecated)
+00443 #       define GLM_ALIGN(x) __declspec(align(x)) 
+00444 #       define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct 
+00445 #       define GLM_RESTRICT __declspec(restrict)
+00446 #       define GLM_RESTRICT_VAR __restrict
+00447 #elif((GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) && (GLM_COMPILER >= GLM_COMPILER_GCC31))
+00448 #       define GLM_DEPRECATED __attribute__((__deprecated__))
+00449 #       define GLM_ALIGN(x) __attribute__((aligned(x)))
+00450 #       define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))
+00451 #       if(GLM_COMPILER >= GLM_COMPILER_GCC33)
+00452 #               define GLM_RESTRICT __restrict__
+00453 #               define GLM_RESTRICT_VAR __restrict__
+00454 #       else
+00455 #               define GLM_RESTRICT
+00456 #               define GLM_RESTRICT_VAR
+00457 #       endif
+00458 #       define GLM_RESTRICT __restrict__
+00459 #       define GLM_RESTRICT_VAR __restrict__
+00460 #else
+00461 #       define GLM_DEPRECATED
+00462 #       define GLM_ALIGN
+00463 #       define GLM_ALIGNED_STRUCT(x) 
+00464 #       define GLM_RESTRICT
+00465 #       define GLM_RESTRICT_VAR
+00466 #endif//GLM_COMPILER
+00467 
+00468 #endif//glm_core_detail
+
+
+ + + + + + diff --git a/doc/api/a00005.html b/doc/api/a00005.html new file mode 100644 index 00000000..91f0220e --- /dev/null +++ b/doc/api/a00005.html @@ -0,0 +1,77 @@ + + + + + +_fixes.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
_fixes.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2011-02-21 / 2011-11-22
+
Author:
Christophe Riccio
+ +

Definition in file _fixes.hpp.

+
+ + + + + + diff --git a/doc/api/a00005_source.html b/doc/api/a00005_source.html new file mode 100644 index 00000000..686d7c22 --- /dev/null +++ b/doc/api/a00005_source.html @@ -0,0 +1,115 @@ + + + + + +_fixes.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
_fixes.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #include <cmath>
+00030 
+00032 #ifdef max
+00033 #undef max
+00034 #endif
+00035 
+00037 #ifdef min
+00038 #undef min
+00039 #endif
+00040 
+00042 #ifdef isnan
+00043 #undef isnan
+00044 #endif
+00045 
+00047 #ifdef isinf
+00048 #undef isinf
+00049 #endif
+00050 
+00052 #ifdef log2
+00053 #undef log2
+00054 #endif
+00055 
+
+
+ + + + + + diff --git a/doc/api/a00006.html b/doc/api/a00006.html new file mode 100644 index 00000000..3eab9730 --- /dev/null +++ b/doc/api/a00006.html @@ -0,0 +1,77 @@ + + + + + +_swizzle.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
_swizzle.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2006-04-20 / 2011-02-16
+
Author:
Christophe Riccio
+ +

Definition in file _swizzle.hpp.

+
+ + + + + + diff --git a/doc/api/a00006_source.html b/doc/api/a00006_source.html new file mode 100644 index 00000000..61fe2a77 --- /dev/null +++ b/doc/api/a00006_source.html @@ -0,0 +1,902 @@ + + + + + +_swizzle.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
_swizzle.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_swizzle
+00030 #define glm_core_swizzle
+00031 
+00032 #include "_swizzle_func.hpp"
+00033 
+00034 namespace glm
+00035 {
+00036         enum comp
+00037         {
+00038                 X = 0,
+00039                 R = 0,
+00040                 S = 0,
+00041                 Y = 1,
+00042                 G = 1,
+00043                 T = 1,
+00044                 Z = 2,
+00045                 B = 2,
+00046                 P = 2,
+00047                 W = 3,
+00048                 A = 3,
+00049                 Q = 3
+00050         };
+00051 }//namespace glm
+00052 
+00053 namespace glm{
+00054 namespace detail
+00055 {
+00056     // Internal class for implementing swizzle operators
+00057     template <typename T, int N>
+00058     struct _swizzle_base0
+00059     {
+00060         typedef T       value_type;
+00061 
+00062     protected:
+00063         value_type&         elem   (size_t i)       { return (reinterpret_cast<value_type*>(_buffer))[i]; }
+00064         const value_type&   elem   (size_t i) const { return (reinterpret_cast<const value_type*>(_buffer))[i]; }
+00065 
+00066         // Use an opaque buffer to *ensure* the compiler doesn't call a constructor.
+00067         // The size 1 buffer is assumed to aligned to the actual members so that the
+00068         // elem() 
+00069         char    _buffer[1];
+00070     };
+00071 
+00072     template <typename T, typename V, int E0, int E1, int E2, int E3, int N>
+00073     struct _swizzle_base1 : public _swizzle_base0<T,N>
+00074     {
+00075     };
+00076 
+00077     template <typename T, typename V, int E0, int E1>
+00078     struct _swizzle_base1<T,V,E0,E1,-1,-2,2> : public _swizzle_base0<T,2>
+00079     {
+00080         V operator ()()  const { return V(this->elem(E0), this->elem(E1)); }
+00081     };
+00082 
+00083     template <typename T, typename V, int E0, int E1, int E2>
+00084     struct _swizzle_base1<T,V,E0,E1,E2,-1,3> : public _swizzle_base0<T,3>
+00085     {
+00086         V operator ()()  const { return V(this->elem(E0), this->elem(E1), this->elem(E2)); }
+00087     };
+00088 
+00089     template <typename T, typename V, int E0, int E1, int E2, int E3>
+00090     struct _swizzle_base1<T,V,E0,E1,E2,E3,4> : public _swizzle_base0<T,4>
+00091     { 
+00092         V operator ()()  const { return V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
+00093     };
+00094 
+00095     // Internal class for implementing swizzle operators
+00096     /*
+00097         Template parameters:
+00098 
+00099         ValueType = type of scalar values (e.g. float, double)
+00100         VecType   = class the swizzle is applies to (e.g. tvec3<float>)
+00101         N         = number of components in the vector (e.g. 3)
+00102         E0...3    = what index the n-th element of this swizzle refers to in the unswizzled vec
+00103         
+00104         DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles
+00105             containing duplicate elements so that they cannot be used as r-values).            
+00106     */
+00107     template <typename ValueType, typename VecType, int N, int E0, int E1, int E2, int E3, int DUPLICATE_ELEMENTS>
+00108     struct _swizzle_base2 : public _swizzle_base1<ValueType,VecType,E0,E1,E2,E3,N>
+00109     {
+00110                 typedef VecType vec_type;
+00111                 typedef ValueType value_type;
+00112 
+00113                 _swizzle_base2& operator= (const ValueType& t)
+00114                 {
+00115                         for (int i = 0; i < N; ++i)
+00116                                 (*this)[i] = t;
+00117                         return *this;
+00118                 }
+00119 
+00120                 _swizzle_base2& operator= (const VecType& that)
+00121                 {
+00122                         struct op { 
+00123                                 void operator() (value_type& e, value_type& t) { e = t; } 
+00124                         };
+00125                         _apply_op(that, op());
+00126                         return *this;
+00127                 }
+00128 
+00129                 void operator -= (const VecType& that)
+00130                 {
+00131                         struct op { 
+00132                                 void operator() (value_type& e, value_type& t) { e -= t; } 
+00133                         };
+00134                         _apply_op(that, op());
+00135                 }
+00136 
+00137                 void operator += (const VecType& that)
+00138                 {
+00139                         struct op { 
+00140                                 void operator() (value_type& e, value_type& t) { e += t; } 
+00141                         };
+00142                         _apply_op(that, op());
+00143                 }
+00144 
+00145                 void operator *= (const VecType& that)
+00146                 {
+00147                         struct op { 
+00148                                 void operator() (value_type& e, value_type& t) { e *= t; } 
+00149                         };
+00150                         _apply_op(that, op());
+00151                 }
+00152 
+00153                 void operator /= (const VecType& that)
+00154                 {
+00155                         struct op { 
+00156                                 void operator() (value_type& e, value_type& t) { e /= t; } 
+00157                         };
+00158                         _apply_op(that, op());
+00159                 }
+00160 
+00161                 value_type& operator[]  (size_t i)
+00162                 {
+00163                         static const int offset_dst[4] = { E0, E1, E2, E3 };
+00164                         return this->elem(offset_dst[i]);
+00165                 }
+00166                 value_type  operator[]  (size_t i) const
+00167                 {
+00168                         static const int offset_dst[4] = { E0, E1, E2, E3 };
+00169                         return this->elem(offset_dst[i]);
+00170                 }
+00171         protected:
+00172                 template <typename T>
+00173                 void _apply_op(const VecType& that, T op)
+00174                 {
+00175                         // Make a copy of the data in this == &that.
+00176                         // The copier should optimize out the copy in cases where the function is
+00177                         // properly inlined and the copy is not necessary.
+00178                         ValueType t[N];
+00179                         for (int i = 0; i < N; ++i)
+00180                                 t[i] = that[i];
+00181                         for (int i = 0; i < N; ++i)
+00182                                 op( (*this)[i], t[i] );
+00183                 }
+00184     };
+00185 
+00186         // Specialization for swizzles containing duplicate elements.  These cannot be modified.
+00187         template <typename ValueType, typename VecType, int N, int E0, int E1, int E2, int E3>
+00188         struct _swizzle_base2<ValueType,VecType,N,E0,E1,E2,E3,1> : public _swizzle_base1<ValueType,VecType,E0,E1,E2,E3,N>
+00189         {
+00190                 typedef VecType         vec_type;        
+00191                 typedef ValueType       value_type;
+00192 
+00193                 struct Stub {};
+00194                 _swizzle_base2& operator= (const Stub& that) {}
+00195 
+00196                 value_type  operator[]  (size_t i) const
+00197                 {
+00198                         static const int offset_dst[4] = { E0, E1, E2, E3 };
+00199                         return this->elem(offset_dst[i]);
+00200                 } 
+00201         };
+00202 
+00203         template <int N,typename ValueType, typename VecType, int E0,int E1,int E2,int E3>
+00204         struct swizzle : public _swizzle_base2<ValueType,VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)>
+00205         {
+00206                 typedef _swizzle_base2<ValueType,VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)> base_type;
+00207 
+00208                 using base_type::operator=;
+00209 
+00210                 operator VecType () const { return (*this)(); }
+00211         };
+00212 
+00213 //
+00214 // To prevent the C++ syntax from getting entirely overwhelming, define some alias macros
+00215 //
+00216 #define _GLM_SWIZZLE_TEMPLATE1   template <int N, typename T, typename V, int E0, int E1, int E2, int E3>
+00217 #define _GLM_SWIZZLE_TEMPLATE2   template <int N, typename T, typename V, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3>
+00218 #define _GLM_SWIZZLE_TYPE1       glm::detail::swizzle<N,T,V,E0,E1,E2,E3>
+00219 #define _GLM_SWIZZLE_TYPE2       glm::detail::swizzle<N,T,V,F0,F1,F2,F3>
+00220 
+00221 //
+00222 // Wrapper for a binary operator (e.g. u.yy + v.zy)
+00223 //
+00224 #define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND)                 \
+00225         _GLM_SWIZZLE_TEMPLATE2                                                          \
+00226         V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b)  \
+00227         {                                                                               \
+00228                 return a() OPERAND b();                                                     \
+00229         }                                                                               \
+00230         _GLM_SWIZZLE_TEMPLATE1                                                          \
+00231         V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const V& b)                   \
+00232         {                                                                               \
+00233                 return a() OPERAND b;                                                       \
+00234         }                                                                               \
+00235         _GLM_SWIZZLE_TEMPLATE1                                                          \
+00236         V operator OPERAND ( const V& a, const _GLM_SWIZZLE_TYPE1& b)                   \
+00237         {                                                                               \
+00238                 return a OPERAND b();                                                       \
+00239         }
+00240 
+00241 //
+00242 // Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)
+00243 //
+00244 #define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND)                 \
+00245         _GLM_SWIZZLE_TEMPLATE1                                                          \
+00246         V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b)                   \
+00247         {                                                                               \
+00248                 return a() OPERAND b;                                                       \
+00249         }                                                                               \
+00250         _GLM_SWIZZLE_TEMPLATE1                                                          \
+00251         V operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b)                   \
+00252         {                                                                               \
+00253                 return a OPERAND b();                                                       \
+00254         }
+00255 
+00256 //
+00257 // Macro for wrapping a function taking one argument (e.g. abs())
+00258 //
+00259 #define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION)                          \
+00260         _GLM_SWIZZLE_TEMPLATE1                                                          \
+00261         typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a)  \
+00262         {                                                                               \
+00263                 return FUNCTION(a());                                                       \
+00264         }
+00265 
+00266 //
+00267 // Macro for wrapping a function taking two vector arguments (e.g. dot()).
+00268 //
+00269 #define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION)                                                      \
+00270         _GLM_SWIZZLE_TEMPLATE2                                                                                      \
+00271         typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
+00272         {                                                                                                           \
+00273                 return FUNCTION(a(), b());                                                                              \
+00274         }                                                                                                           \
+00275         _GLM_SWIZZLE_TEMPLATE1                                                                                      \
+00276         typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b) \
+00277         {                                                                                                           \
+00278                 return FUNCTION(a(), b());                                                                              \
+00279         }                                                                                                           \
+00280         _GLM_SWIZZLE_TEMPLATE1                                                                                      \
+00281         typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename V& b)         \
+00282         {                                                                                                           \
+00283                 return FUNCTION(a(), b);                                                                                \
+00284         }                                                                                                           \
+00285         _GLM_SWIZZLE_TEMPLATE1                                                                                      \
+00286         typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const _GLM_SWIZZLE_TYPE1& b)                  \
+00287         {                                                                                                           \
+00288                 return FUNCTION(a, b());                                                                                \
+00289         } 
+00290 
+00291 //
+00292 // Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).
+00293 //
+00294 #define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION)                                                             \
+00295         _GLM_SWIZZLE_TEMPLATE2                                                                                                    \
+00296         typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b, const T& c)   \
+00297         {                                                                                                                         \
+00298                 return FUNCTION(a(), b(), c);                                                                                         \
+00299         }                                                                                                                         \
+00300         _GLM_SWIZZLE_TEMPLATE1                                                                                                    \
+00301         typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b, const T& c)   \
+00302         {                                                                                                                         \
+00303                 return FUNCTION(a(), b(), c);                                                                                         \
+00304         }                                                                                                                         \
+00305         _GLM_SWIZZLE_TEMPLATE1                                                                                                    \
+00306         typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\
+00307         {                                                                                                                         \
+00308                 return FUNCTION(a(), b, c);                                                                                           \
+00309         }                                                                                                                         \
+00310         _GLM_SWIZZLE_TEMPLATE1                                                                                                    \
+00311         typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const _GLM_SWIZZLE_TYPE1& b, const T& c)           \
+00312         {                                                                                                                         \
+00313                 return FUNCTION(a, b(), c);                                                                                           \
+00314         } 
+00315  
+00316 }//namespace detail 
+00317 }//namespace glm
+00318 
+00319 namespace glm
+00320 {
+00321         namespace detail
+00322         {
+00323                 _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)
+00324                 _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)
+00325         
+00326                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)
+00327                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)
+00328                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)
+00329                 _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)
+00330         }
+00331 
+00332     //
+00333     // Swizzles are distinct types from the unswizzled type.  The below macros will
+00334     // provide template specializations for the swizzle types for the given functions
+00335     // so that the compiler does not have any ambiguity to choosing how to handle
+00336     // the function.
+00337     //
+00338     // The alternative is to use the operator()() when calling the function in order
+00339     // to explicitly convert the swizzled type to the unswizzled type.
+00340     //
+00341 
+00342     //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    abs);
+00343     //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    acos);
+00344     //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    acosh);
+00345     //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    all);
+00346     //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    any);
+00347     
+00348     //_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type,  dot);
+00349     //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type,    cross);
+00350     //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type,    step);    
+00351     //_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);
+00352 }
+00353 
+00354 #define _GLM_SWIZZLE2_2_MEMBERS(T,P,E0,E1) \
+00355         struct { glm::detail::swizzle<2,T,P,0,0,-1,-2> E0 ## E0; }; \
+00356         struct { glm::detail::swizzle<2,T,P,0,1,-1,-2> E0 ## E1; }; \
+00357         struct { glm::detail::swizzle<2,T,P,1,0,-1,-2> E1 ## E0; }; \
+00358         struct { glm::detail::swizzle<2,T,P,1,1,-1,-2> E1 ## E1; }; 
+00359 
+00360 #define _GLM_SWIZZLE2_3_MEMBERS(T,P2,E0,E1) \
+00361         struct { glm::detail::swizzle<3,T,P2,0,0,0,-1> E0 ## E0 ## E0; }; \
+00362         struct { glm::detail::swizzle<3,T,P2,0,0,1,-1> E0 ## E0 ## E1; }; \
+00363         struct { glm::detail::swizzle<3,T,P2,0,1,0,-1> E0 ## E1 ## E0; }; \
+00364         struct { glm::detail::swizzle<3,T,P2,0,1,1,-1> E0 ## E1 ## E1; }; \
+00365         struct { glm::detail::swizzle<3,T,P2,1,0,0,-1> E1 ## E0 ## E0; }; \
+00366         struct { glm::detail::swizzle<3,T,P2,1,0,1,-1> E1 ## E0 ## E1; }; \
+00367         struct { glm::detail::swizzle<3,T,P2,1,1,0,-1> E1 ## E1 ## E0; }; \
+00368         struct { glm::detail::swizzle<3,T,P2,1,1,1,-1> E1 ## E1 ## E1; };  
+00369 
+00370 #define _GLM_SWIZZLE2_4_MEMBERS(T,P2,E0,E1) \
+00371         struct { glm::detail::swizzle<4,T,P2,0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+00372         struct { glm::detail::swizzle<4,T,P2,0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+00373         struct { glm::detail::swizzle<4,T,P2,0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+00374         struct { glm::detail::swizzle<4,T,P2,0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+00375         struct { glm::detail::swizzle<4,T,P2,0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+00376         struct { glm::detail::swizzle<4,T,P2,0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+00377         struct { glm::detail::swizzle<4,T,P2,0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+00378         struct { glm::detail::swizzle<4,T,P2,0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+00379         struct { glm::detail::swizzle<4,T,P2,1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+00380         struct { glm::detail::swizzle<4,T,P2,1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+00381         struct { glm::detail::swizzle<4,T,P2,1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+00382         struct { glm::detail::swizzle<4,T,P2,1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+00383         struct { glm::detail::swizzle<4,T,P2,1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+00384         struct { glm::detail::swizzle<4,T,P2,1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+00385         struct { glm::detail::swizzle<4,T,P2,1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+00386         struct { glm::detail::swizzle<4,T,P2,1,1,1,1> E1 ## E1 ## E1 ## E1; };  
+00387 
+00388 #define _GLM_SWIZZLE3_2_MEMBERS(T,P2,E0,E1,E2) \
+00389         struct { glm::detail::swizzle<2,T,P2,0,0,-1,-2> E0 ## E0; }; \
+00390         struct { glm::detail::swizzle<2,T,P2,0,1,-1,-2> E0 ## E1; }; \
+00391         struct { glm::detail::swizzle<2,T,P2,0,2,-1,-2> E0 ## E2; }; \
+00392         struct { glm::detail::swizzle<2,T,P2,1,0,-1,-2> E1 ## E0; }; \
+00393         struct { glm::detail::swizzle<2,T,P2,1,1,-1,-2> E1 ## E1; }; \
+00394         struct { glm::detail::swizzle<2,T,P2,1,2,-1,-2> E1 ## E2; }; \
+00395         struct { glm::detail::swizzle<2,T,P2,2,0,-1,-2> E2 ## E0; }; \
+00396         struct { glm::detail::swizzle<2,T,P2,2,1,-1,-2> E2 ## E1; }; \
+00397         struct { glm::detail::swizzle<2,T,P2,2,2,-1,-2> E2 ## E2; }; 
+00398 
+00399 #define _GLM_SWIZZLE3_3_MEMBERS(T,P,E0,E1,E2) \
+00400         struct { glm::detail::swizzle<3,T,P,0,0,0,-1> E0 ## E0 ## E0; }; \
+00401         struct { glm::detail::swizzle<3,T,P,0,0,1,-1> E0 ## E0 ## E1; }; \
+00402         struct { glm::detail::swizzle<3,T,P,0,0,2,-1> E0 ## E0 ## E2; }; \
+00403         struct { glm::detail::swizzle<3,T,P,0,1,0,-1> E0 ## E1 ## E0; }; \
+00404         struct { glm::detail::swizzle<3,T,P,0,1,1,-1> E0 ## E1 ## E1; }; \
+00405         struct { glm::detail::swizzle<3,T,P,0,1,2,-1> E0 ## E1 ## E2; }; \
+00406         struct { glm::detail::swizzle<3,T,P,0,2,0,-1> E0 ## E2 ## E0; }; \
+00407         struct { glm::detail::swizzle<3,T,P,0,2,1,-1> E0 ## E2 ## E1; }; \
+00408         struct { glm::detail::swizzle<3,T,P,0,2,2,-1> E0 ## E2 ## E2; }; \
+00409         struct { glm::detail::swizzle<3,T,P,1,0,0,-1> E1 ## E0 ## E0; }; \
+00410         struct { glm::detail::swizzle<3,T,P,1,0,1,-1> E1 ## E0 ## E1; }; \
+00411         struct { glm::detail::swizzle<3,T,P,1,0,2,-1> E1 ## E0 ## E2; }; \
+00412         struct { glm::detail::swizzle<3,T,P,1,1,0,-1> E1 ## E1 ## E0; }; \
+00413         struct { glm::detail::swizzle<3,T,P,1,1,1,-1> E1 ## E1 ## E1; }; \
+00414         struct { glm::detail::swizzle<3,T,P,1,1,2,-1> E1 ## E1 ## E2; }; \
+00415         struct { glm::detail::swizzle<3,T,P,1,2,0,-1> E1 ## E2 ## E0; }; \
+00416         struct { glm::detail::swizzle<3,T,P,1,2,1,-1> E1 ## E2 ## E1; }; \
+00417         struct { glm::detail::swizzle<3,T,P,1,2,2,-1> E1 ## E2 ## E2; }; \
+00418         struct { glm::detail::swizzle<3,T,P,2,0,0,-1> E2 ## E0 ## E0; }; \
+00419         struct { glm::detail::swizzle<3,T,P,2,0,1,-1> E2 ## E0 ## E1; }; \
+00420         struct { glm::detail::swizzle<3,T,P,2,0,2,-1> E2 ## E0 ## E2; }; \
+00421         struct { glm::detail::swizzle<3,T,P,2,1,0,-1> E2 ## E1 ## E0; }; \
+00422         struct { glm::detail::swizzle<3,T,P,2,1,1,-1> E2 ## E1 ## E1; }; \
+00423         struct { glm::detail::swizzle<3,T,P,2,1,2,-1> E2 ## E1 ## E2; }; \
+00424         struct { glm::detail::swizzle<3,T,P,2,2,0,-1> E2 ## E2 ## E0; }; \
+00425         struct { glm::detail::swizzle<3,T,P,2,2,1,-1> E2 ## E2 ## E1; }; \
+00426         struct { glm::detail::swizzle<3,T,P,2,2,2,-1> E2 ## E2 ## E2; };
+00427 
+00428 #define _GLM_SWIZZLE3_4_MEMBERS(T,P2,E0,E1,E2) \
+00429         struct { glm::detail::swizzle<4,T,P2,0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+00430         struct { glm::detail::swizzle<4,T,P2,0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+00431         struct { glm::detail::swizzle<4,T,P2,0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
+00432         struct { glm::detail::swizzle<4,T,P2,0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+00433         struct { glm::detail::swizzle<4,T,P2,0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+00434         struct { glm::detail::swizzle<4,T,P2,0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
+00435         struct { glm::detail::swizzle<4,T,P2,0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
+00436         struct { glm::detail::swizzle<4,T,P2,0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
+00437         struct { glm::detail::swizzle<4,T,P2,0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
+00438         struct { glm::detail::swizzle<4,T,P2,0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+00439         struct { glm::detail::swizzle<4,T,P2,0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+00440         struct { glm::detail::swizzle<4,T,P2,0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
+00441         struct { glm::detail::swizzle<4,T,P2,0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+00442         struct { glm::detail::swizzle<4,T,P2,0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+00443         struct { glm::detail::swizzle<4,T,P2,0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
+00444         struct { glm::detail::swizzle<4,T,P2,0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
+00445         struct { glm::detail::swizzle<4,T,P2,0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
+00446         struct { glm::detail::swizzle<4,T,P2,0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
+00447         struct { glm::detail::swizzle<4,T,P2,0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
+00448         struct { glm::detail::swizzle<4,T,P2,0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
+00449         struct { glm::detail::swizzle<4,T,P2,0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
+00450         struct { glm::detail::swizzle<4,T,P2,0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
+00451         struct { glm::detail::swizzle<4,T,P2,0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
+00452         struct { glm::detail::swizzle<4,T,P2,0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
+00453         struct { glm::detail::swizzle<4,T,P2,0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
+00454         struct { glm::detail::swizzle<4,T,P2,0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
+00455         struct { glm::detail::swizzle<4,T,P2,0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
+00456         struct { glm::detail::swizzle<4,T,P2,1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+00457         struct { glm::detail::swizzle<4,T,P2,1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+00458         struct { glm::detail::swizzle<4,T,P2,1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
+00459         struct { glm::detail::swizzle<4,T,P2,1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+00460         struct { glm::detail::swizzle<4,T,P2,1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+00461         struct { glm::detail::swizzle<4,T,P2,1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
+00462         struct { glm::detail::swizzle<4,T,P2,1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
+00463         struct { glm::detail::swizzle<4,T,P2,1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
+00464         struct { glm::detail::swizzle<4,T,P2,1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
+00465         struct { glm::detail::swizzle<4,T,P2,1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+00466         struct { glm::detail::swizzle<4,T,P2,1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+00467         struct { glm::detail::swizzle<4,T,P2,1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
+00468         struct { glm::detail::swizzle<4,T,P2,1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+00469         struct { glm::detail::swizzle<4,T,P2,1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
+00470         struct { glm::detail::swizzle<4,T,P2,1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
+00471         struct { glm::detail::swizzle<4,T,P2,1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
+00472         struct { glm::detail::swizzle<4,T,P2,1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
+00473         struct { glm::detail::swizzle<4,T,P2,1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
+00474         struct { glm::detail::swizzle<4,T,P2,1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
+00475         struct { glm::detail::swizzle<4,T,P2,1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
+00476         struct { glm::detail::swizzle<4,T,P2,1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
+00477         struct { glm::detail::swizzle<4,T,P2,1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
+00478         struct { glm::detail::swizzle<4,T,P2,1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
+00479         struct { glm::detail::swizzle<4,T,P2,1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
+00480         struct { glm::detail::swizzle<4,T,P2,1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
+00481         struct { glm::detail::swizzle<4,T,P2,1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
+00482         struct { glm::detail::swizzle<4,T,P2,1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
+00483         struct { glm::detail::swizzle<4,T,P2,2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
+00484         struct { glm::detail::swizzle<4,T,P2,2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
+00485         struct { glm::detail::swizzle<4,T,P2,2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
+00486         struct { glm::detail::swizzle<4,T,P2,2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
+00487         struct { glm::detail::swizzle<4,T,P2,2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
+00488         struct { glm::detail::swizzle<4,T,P2,2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
+00489         struct { glm::detail::swizzle<4,T,P2,2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
+00490         struct { glm::detail::swizzle<4,T,P2,2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
+00491         struct { glm::detail::swizzle<4,T,P2,2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
+00492         struct { glm::detail::swizzle<4,T,P2,2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
+00493         struct { glm::detail::swizzle<4,T,P2,2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
+00494         struct { glm::detail::swizzle<4,T,P2,2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
+00495         struct { glm::detail::swizzle<4,T,P2,2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
+00496         struct { glm::detail::swizzle<4,T,P2,2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
+00497         struct { glm::detail::swizzle<4,T,P2,2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
+00498         struct { glm::detail::swizzle<4,T,P2,2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
+00499         struct { glm::detail::swizzle<4,T,P2,2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
+00500         struct { glm::detail::swizzle<4,T,P2,2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
+00501         struct { glm::detail::swizzle<4,T,P2,2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
+00502         struct { glm::detail::swizzle<4,T,P2,2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
+00503         struct { glm::detail::swizzle<4,T,P2,2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
+00504         struct { glm::detail::swizzle<4,T,P2,2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
+00505         struct { glm::detail::swizzle<4,T,P2,2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
+00506         struct { glm::detail::swizzle<4,T,P2,2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
+00507         struct { glm::detail::swizzle<4,T,P2,2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
+00508         struct { glm::detail::swizzle<4,T,P2,2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
+00509         struct { glm::detail::swizzle<4,T,P2,2,2,2,2> E2 ## E2 ## E2 ## E2; }; 
+00510 
+00511 #define _GLM_SWIZZLE4_2_MEMBERS(T,P,E0,E1,E2,E3) \
+00512         struct { glm::detail::swizzle<2,T,P,0,0,-1,-2> E0 ## E0; }; \
+00513         struct { glm::detail::swizzle<2,T,P,0,1,-1,-2> E0 ## E1; }; \
+00514         struct { glm::detail::swizzle<2,T,P,0,2,-1,-2> E0 ## E2; }; \
+00515         struct { glm::detail::swizzle<2,T,P,0,3,-1,-2> E0 ## E3; }; \
+00516         struct { glm::detail::swizzle<2,T,P,1,0,-1,-2> E1 ## E0; }; \
+00517         struct { glm::detail::swizzle<2,T,P,1,1,-1,-2> E1 ## E1; }; \
+00518         struct { glm::detail::swizzle<2,T,P,1,2,-1,-2> E1 ## E2; }; \
+00519         struct { glm::detail::swizzle<2,T,P,1,3,-1,-2> E1 ## E3; }; \
+00520         struct { glm::detail::swizzle<2,T,P,2,0,-1,-2> E2 ## E0; }; \
+00521         struct { glm::detail::swizzle<2,T,P,2,1,-1,-2> E2 ## E1; }; \
+00522         struct { glm::detail::swizzle<2,T,P,2,2,-1,-2> E2 ## E2; }; \
+00523         struct { glm::detail::swizzle<2,T,P,2,3,-1,-2> E2 ## E3; }; \
+00524         struct { glm::detail::swizzle<2,T,P,3,0,-1,-2> E3 ## E0; }; \
+00525         struct { glm::detail::swizzle<2,T,P,3,1,-1,-2> E3 ## E1; }; \
+00526         struct { glm::detail::swizzle<2,T,P,3,2,-1,-2> E3 ## E2; }; \
+00527         struct { glm::detail::swizzle<2,T,P,3,3,-1,-2> E3 ## E3; }; 
+00528 
+00529 #define _GLM_SWIZZLE4_3_MEMBERS(T,P,E0,E1,E2,E3) \
+00530         struct { glm::detail::swizzle<3,T,P,0,0,0,-1> E0 ## E0 ## E0; }; \
+00531         struct { glm::detail::swizzle<3,T,P,0,0,1,-1> E0 ## E0 ## E1; }; \
+00532         struct { glm::detail::swizzle<3,T,P,0,0,2,-1> E0 ## E0 ## E2; }; \
+00533         struct { glm::detail::swizzle<3,T,P,0,0,3,-1> E0 ## E0 ## E3; }; \
+00534         struct { glm::detail::swizzle<3,T,P,0,1,0,-1> E0 ## E1 ## E0; }; \
+00535         struct { glm::detail::swizzle<3,T,P,0,1,1,-1> E0 ## E1 ## E1; }; \
+00536         struct { glm::detail::swizzle<3,T,P,0,1,2,-1> E0 ## E1 ## E2; }; \
+00537         struct { glm::detail::swizzle<3,T,P,0,1,3,-1> E0 ## E1 ## E3; }; \
+00538         struct { glm::detail::swizzle<3,T,P,0,2,0,-1> E0 ## E2 ## E0; }; \
+00539         struct { glm::detail::swizzle<3,T,P,0,2,1,-1> E0 ## E2 ## E1; }; \
+00540         struct { glm::detail::swizzle<3,T,P,0,2,2,-1> E0 ## E2 ## E2; }; \
+00541         struct { glm::detail::swizzle<3,T,P,0,2,3,-1> E0 ## E2 ## E3; }; \
+00542         struct { glm::detail::swizzle<3,T,P,0,3,0,-1> E0 ## E3 ## E0; }; \
+00543         struct { glm::detail::swizzle<3,T,P,0,3,1,-1> E0 ## E3 ## E1; }; \
+00544         struct { glm::detail::swizzle<3,T,P,0,3,2,-1> E0 ## E3 ## E2; }; \
+00545         struct { glm::detail::swizzle<3,T,P,0,3,3,-1> E0 ## E3 ## E3; }; \
+00546         struct { glm::detail::swizzle<3,T,P,1,0,0,-1> E1 ## E0 ## E0; }; \
+00547         struct { glm::detail::swizzle<3,T,P,1,0,1,-1> E1 ## E0 ## E1; }; \
+00548         struct { glm::detail::swizzle<3,T,P,1,0,2,-1> E1 ## E0 ## E2; }; \
+00549         struct { glm::detail::swizzle<3,T,P,1,0,3,-1> E1 ## E0 ## E3; }; \
+00550         struct { glm::detail::swizzle<3,T,P,1,1,0,-1> E1 ## E1 ## E0; }; \
+00551         struct { glm::detail::swizzle<3,T,P,1,1,1,-1> E1 ## E1 ## E1; }; \
+00552         struct { glm::detail::swizzle<3,T,P,1,1,2,-1> E1 ## E1 ## E2; }; \
+00553         struct { glm::detail::swizzle<3,T,P,1,1,3,-1> E1 ## E1 ## E3; }; \
+00554         struct { glm::detail::swizzle<3,T,P,1,2,0,-1> E1 ## E2 ## E0; }; \
+00555         struct { glm::detail::swizzle<3,T,P,1,2,1,-1> E1 ## E2 ## E1; }; \
+00556         struct { glm::detail::swizzle<3,T,P,1,2,2,-1> E1 ## E2 ## E2; }; \
+00557         struct { glm::detail::swizzle<3,T,P,1,2,3,-1> E1 ## E2 ## E3; }; \
+00558         struct { glm::detail::swizzle<3,T,P,1,3,0,-1> E1 ## E3 ## E0; }; \
+00559         struct { glm::detail::swizzle<3,T,P,1,3,1,-1> E1 ## E3 ## E1; }; \
+00560         struct { glm::detail::swizzle<3,T,P,1,3,2,-1> E1 ## E3 ## E2; }; \
+00561         struct { glm::detail::swizzle<3,T,P,1,3,3,-1> E1 ## E3 ## E3; }; \
+00562         struct { glm::detail::swizzle<3,T,P,2,0,0,-1> E2 ## E0 ## E0; }; \
+00563         struct { glm::detail::swizzle<3,T,P,2,0,1,-1> E2 ## E0 ## E1; }; \
+00564         struct { glm::detail::swizzle<3,T,P,2,0,2,-1> E2 ## E0 ## E2; }; \
+00565         struct { glm::detail::swizzle<3,T,P,2,0,3,-1> E2 ## E0 ## E3; }; \
+00566         struct { glm::detail::swizzle<3,T,P,2,1,0,-1> E2 ## E1 ## E0; }; \
+00567         struct { glm::detail::swizzle<3,T,P,2,1,1,-1> E2 ## E1 ## E1; }; \
+00568         struct { glm::detail::swizzle<3,T,P,2,1,2,-1> E2 ## E1 ## E2; }; \
+00569         struct { glm::detail::swizzle<3,T,P,2,1,3,-1> E2 ## E1 ## E3; }; \
+00570         struct { glm::detail::swizzle<3,T,P,2,2,0,-1> E2 ## E2 ## E0; }; \
+00571         struct { glm::detail::swizzle<3,T,P,2,2,1,-1> E2 ## E2 ## E1; }; \
+00572         struct { glm::detail::swizzle<3,T,P,2,2,2,-1> E2 ## E2 ## E2; }; \
+00573         struct { glm::detail::swizzle<3,T,P,2,2,3,-1> E2 ## E2 ## E3; }; \
+00574         struct { glm::detail::swizzle<3,T,P,2,3,0,-1> E2 ## E3 ## E0; }; \
+00575         struct { glm::detail::swizzle<3,T,P,2,3,1,-1> E2 ## E3 ## E1; }; \
+00576         struct { glm::detail::swizzle<3,T,P,2,3,2,-1> E2 ## E3 ## E2; }; \
+00577         struct { glm::detail::swizzle<3,T,P,2,3,3,-1> E2 ## E3 ## E3; }; \
+00578         struct { glm::detail::swizzle<3,T,P,3,0,0,-1> E3 ## E0 ## E0; }; \
+00579         struct { glm::detail::swizzle<3,T,P,3,0,1,-1> E3 ## E0 ## E1; }; \
+00580         struct { glm::detail::swizzle<3,T,P,3,0,2,-1> E3 ## E0 ## E2; }; \
+00581         struct { glm::detail::swizzle<3,T,P,3,0,3,-1> E3 ## E0 ## E3; }; \
+00582         struct { glm::detail::swizzle<3,T,P,3,1,0,-1> E3 ## E1 ## E0; }; \
+00583         struct { glm::detail::swizzle<3,T,P,3,1,1,-1> E3 ## E1 ## E1; }; \
+00584         struct { glm::detail::swizzle<3,T,P,3,1,2,-1> E3 ## E1 ## E2; }; \
+00585         struct { glm::detail::swizzle<3,T,P,3,1,3,-1> E3 ## E1 ## E3; }; \
+00586         struct { glm::detail::swizzle<3,T,P,3,2,0,-1> E3 ## E2 ## E0; }; \
+00587         struct { glm::detail::swizzle<3,T,P,3,2,1,-1> E3 ## E2 ## E1; }; \
+00588         struct { glm::detail::swizzle<3,T,P,3,2,2,-1> E3 ## E2 ## E2; }; \
+00589         struct { glm::detail::swizzle<3,T,P,3,2,3,-1> E3 ## E2 ## E3; }; \
+00590         struct { glm::detail::swizzle<3,T,P,3,3,0,-1> E3 ## E3 ## E0; }; \
+00591         struct { glm::detail::swizzle<3,T,P,3,3,1,-1> E3 ## E3 ## E1; }; \
+00592         struct { glm::detail::swizzle<3,T,P,3,3,2,-1> E3 ## E3 ## E2; }; \
+00593         struct { glm::detail::swizzle<3,T,P,3,3,3,-1> E3 ## E3 ## E3; };  
+00594 
+00595 #define _GLM_SWIZZLE4_4_MEMBERS(T,P,E0,E1,E2,E3) \
+00596         struct { glm::detail::swizzle<4,T,P,0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+00597         struct { glm::detail::swizzle<4,T,P,0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+00598         struct { glm::detail::swizzle<4,T,P,0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
+00599         struct { glm::detail::swizzle<4,T,P,0,0,0,3> E0 ## E0 ## E0 ## E3; }; \
+00600         struct { glm::detail::swizzle<4,T,P,0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+00601         struct { glm::detail::swizzle<4,T,P,0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+00602         struct { glm::detail::swizzle<4,T,P,0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
+00603         struct { glm::detail::swizzle<4,T,P,0,0,1,3> E0 ## E0 ## E1 ## E3; }; \
+00604         struct { glm::detail::swizzle<4,T,P,0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
+00605         struct { glm::detail::swizzle<4,T,P,0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
+00606         struct { glm::detail::swizzle<4,T,P,0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
+00607         struct { glm::detail::swizzle<4,T,P,0,0,2,3> E0 ## E0 ## E2 ## E3; }; \
+00608         struct { glm::detail::swizzle<4,T,P,0,0,3,0> E0 ## E0 ## E3 ## E0; }; \
+00609         struct { glm::detail::swizzle<4,T,P,0,0,3,1> E0 ## E0 ## E3 ## E1; }; \
+00610         struct { glm::detail::swizzle<4,T,P,0,0,3,2> E0 ## E0 ## E3 ## E2; }; \
+00611         struct { glm::detail::swizzle<4,T,P,0,0,3,3> E0 ## E0 ## E3 ## E3; }; \
+00612         struct { glm::detail::swizzle<4,T,P,0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+00613         struct { glm::detail::swizzle<4,T,P,0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+00614         struct { glm::detail::swizzle<4,T,P,0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
+00615         struct { glm::detail::swizzle<4,T,P,0,1,0,3> E0 ## E1 ## E0 ## E3; }; \
+00616         struct { glm::detail::swizzle<4,T,P,0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+00617         struct { glm::detail::swizzle<4,T,P,0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+00618         struct { glm::detail::swizzle<4,T,P,0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
+00619         struct { glm::detail::swizzle<4,T,P,0,1,1,3> E0 ## E1 ## E1 ## E3; }; \
+00620         struct { glm::detail::swizzle<4,T,P,0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
+00621         struct { glm::detail::swizzle<4,T,P,0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
+00622         struct { glm::detail::swizzle<4,T,P,0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
+00623         struct { glm::detail::swizzle<4,T,P,0,1,2,3> E0 ## E1 ## E2 ## E3; }; \
+00624         struct { glm::detail::swizzle<4,T,P,0,1,3,0> E0 ## E1 ## E3 ## E0; }; \
+00625         struct { glm::detail::swizzle<4,T,P,0,1,3,1> E0 ## E1 ## E3 ## E1; }; \
+00626         struct { glm::detail::swizzle<4,T,P,0,1,3,2> E0 ## E1 ## E3 ## E2; }; \
+00627         struct { glm::detail::swizzle<4,T,P,0,1,3,3> E0 ## E1 ## E3 ## E3; }; \
+00628         struct { glm::detail::swizzle<4,T,P,0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
+00629         struct { glm::detail::swizzle<4,T,P,0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
+00630         struct { glm::detail::swizzle<4,T,P,0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
+00631         struct { glm::detail::swizzle<4,T,P,0,2,0,3> E0 ## E2 ## E0 ## E3; }; \
+00632         struct { glm::detail::swizzle<4,T,P,0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
+00633         struct { glm::detail::swizzle<4,T,P,0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
+00634         struct { glm::detail::swizzle<4,T,P,0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
+00635         struct { glm::detail::swizzle<4,T,P,0,2,1,3> E0 ## E2 ## E1 ## E3; }; \
+00636         struct { glm::detail::swizzle<4,T,P,0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
+00637         struct { glm::detail::swizzle<4,T,P,0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
+00638         struct { glm::detail::swizzle<4,T,P,0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
+00639         struct { glm::detail::swizzle<4,T,P,0,2,2,3> E0 ## E2 ## E2 ## E3; }; \
+00640         struct { glm::detail::swizzle<4,T,P,0,2,3,0> E0 ## E2 ## E3 ## E0; }; \
+00641         struct { glm::detail::swizzle<4,T,P,0,2,3,1> E0 ## E2 ## E3 ## E1; }; \
+00642         struct { glm::detail::swizzle<4,T,P,0,2,3,2> E0 ## E2 ## E3 ## E2; }; \
+00643         struct { glm::detail::swizzle<4,T,P,0,2,3,3> E0 ## E2 ## E3 ## E3; }; \
+00644         struct { glm::detail::swizzle<4,T,P,1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+00645         struct { glm::detail::swizzle<4,T,P,1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+00646         struct { glm::detail::swizzle<4,T,P,1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
+00647         struct { glm::detail::swizzle<4,T,P,1,0,0,3> E1 ## E0 ## E0 ## E3; }; \
+00648         struct { glm::detail::swizzle<4,T,P,1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+00649         struct { glm::detail::swizzle<4,T,P,1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+00650         struct { glm::detail::swizzle<4,T,P,1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
+00651         struct { glm::detail::swizzle<4,T,P,1,0,1,3> E1 ## E0 ## E1 ## E3; }; \
+00652         struct { glm::detail::swizzle<4,T,P,1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
+00653         struct { glm::detail::swizzle<4,T,P,1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
+00654         struct { glm::detail::swizzle<4,T,P,1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
+00655         struct { glm::detail::swizzle<4,T,P,1,0,2,3> E1 ## E0 ## E2 ## E3; }; \
+00656         struct { glm::detail::swizzle<4,T,P,1,0,3,0> E1 ## E0 ## E3 ## E0; }; \
+00657         struct { glm::detail::swizzle<4,T,P,1,0,3,1> E1 ## E0 ## E3 ## E1; }; \
+00658         struct { glm::detail::swizzle<4,T,P,1,0,3,2> E1 ## E0 ## E3 ## E2; }; \
+00659         struct { glm::detail::swizzle<4,T,P,1,0,3,3> E1 ## E0 ## E3 ## E3; }; \
+00660         struct { glm::detail::swizzle<4,T,P,1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+00661         struct { glm::detail::swizzle<4,T,P,1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+00662         struct { glm::detail::swizzle<4,T,P,1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
+00663         struct { glm::detail::swizzle<4,T,P,1,1,0,3> E1 ## E1 ## E0 ## E3; }; \
+00664         struct { glm::detail::swizzle<4,T,P,1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+00665         struct { glm::detail::swizzle<4,T,P,1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
+00666         struct { glm::detail::swizzle<4,T,P,1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
+00667         struct { glm::detail::swizzle<4,T,P,1,1,1,3> E1 ## E1 ## E1 ## E3; }; \
+00668         struct { glm::detail::swizzle<4,T,P,1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
+00669         struct { glm::detail::swizzle<4,T,P,1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
+00670         struct { glm::detail::swizzle<4,T,P,1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
+00671         struct { glm::detail::swizzle<4,T,P,1,1,2,3> E1 ## E1 ## E2 ## E3; }; \
+00672         struct { glm::detail::swizzle<4,T,P,1,1,3,0> E1 ## E1 ## E3 ## E0; }; \
+00673         struct { glm::detail::swizzle<4,T,P,1,1,3,1> E1 ## E1 ## E3 ## E1; }; \
+00674         struct { glm::detail::swizzle<4,T,P,1,1,3,2> E1 ## E1 ## E3 ## E2; }; \
+00675         struct { glm::detail::swizzle<4,T,P,1,1,3,3> E1 ## E1 ## E3 ## E3; }; \
+00676         struct { glm::detail::swizzle<4,T,P,1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
+00677         struct { glm::detail::swizzle<4,T,P,1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
+00678         struct { glm::detail::swizzle<4,T,P,1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
+00679         struct { glm::detail::swizzle<4,T,P,1,2,0,3> E1 ## E2 ## E0 ## E3; }; \
+00680         struct { glm::detail::swizzle<4,T,P,1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
+00681         struct { glm::detail::swizzle<4,T,P,1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
+00682         struct { glm::detail::swizzle<4,T,P,1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
+00683         struct { glm::detail::swizzle<4,T,P,1,2,1,3> E1 ## E2 ## E1 ## E3; }; \
+00684         struct { glm::detail::swizzle<4,T,P,1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
+00685         struct { glm::detail::swizzle<4,T,P,1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
+00686         struct { glm::detail::swizzle<4,T,P,1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
+00687         struct { glm::detail::swizzle<4,T,P,1,2,2,3> E1 ## E2 ## E2 ## E3; }; \
+00688         struct { glm::detail::swizzle<4,T,P,1,2,3,0> E1 ## E2 ## E3 ## E0; }; \
+00689         struct { glm::detail::swizzle<4,T,P,1,2,3,1> E1 ## E2 ## E3 ## E1; }; \
+00690         struct { glm::detail::swizzle<4,T,P,1,2,3,2> E1 ## E2 ## E3 ## E2; }; \
+00691         struct { glm::detail::swizzle<4,T,P,1,2,3,3> E1 ## E2 ## E3 ## E3; }; \
+00692         struct { glm::detail::swizzle<4,T,P,1,3,0,0> E1 ## E3 ## E0 ## E0; }; \
+00693         struct { glm::detail::swizzle<4,T,P,1,3,0,1> E1 ## E3 ## E0 ## E1; }; \
+00694         struct { glm::detail::swizzle<4,T,P,1,3,0,2> E1 ## E3 ## E0 ## E2; }; \
+00695         struct { glm::detail::swizzle<4,T,P,1,3,0,3> E1 ## E3 ## E0 ## E3; }; \
+00696         struct { glm::detail::swizzle<4,T,P,1,3,1,0> E1 ## E3 ## E1 ## E0; }; \
+00697         struct { glm::detail::swizzle<4,T,P,1,3,1,1> E1 ## E3 ## E1 ## E1; }; \
+00698         struct { glm::detail::swizzle<4,T,P,1,3,1,2> E1 ## E3 ## E1 ## E2; }; \
+00699         struct { glm::detail::swizzle<4,T,P,1,3,1,3> E1 ## E3 ## E1 ## E3; }; \
+00700         struct { glm::detail::swizzle<4,T,P,1,3,2,0> E1 ## E3 ## E2 ## E0; }; \
+00701         struct { glm::detail::swizzle<4,T,P,1,3,2,1> E1 ## E3 ## E2 ## E1; }; \
+00702         struct { glm::detail::swizzle<4,T,P,1,3,2,2> E1 ## E3 ## E2 ## E2; }; \
+00703         struct { glm::detail::swizzle<4,T,P,1,3,2,3> E1 ## E3 ## E2 ## E3; }; \
+00704         struct { glm::detail::swizzle<4,T,P,1,3,3,0> E1 ## E3 ## E3 ## E0; }; \
+00705         struct { glm::detail::swizzle<4,T,P,1,3,3,1> E1 ## E3 ## E3 ## E1; }; \
+00706         struct { glm::detail::swizzle<4,T,P,1,3,3,2> E1 ## E3 ## E3 ## E2; }; \
+00707         struct { glm::detail::swizzle<4,T,P,1,3,3,3> E1 ## E3 ## E3 ## E3; }; \
+00708         struct { glm::detail::swizzle<4,T,P,2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
+00709         struct { glm::detail::swizzle<4,T,P,2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
+00710         struct { glm::detail::swizzle<4,T,P,2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
+00711         struct { glm::detail::swizzle<4,T,P,2,0,0,3> E2 ## E0 ## E0 ## E3; }; \
+00712         struct { glm::detail::swizzle<4,T,P,2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
+00713         struct { glm::detail::swizzle<4,T,P,2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
+00714         struct { glm::detail::swizzle<4,T,P,2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
+00715         struct { glm::detail::swizzle<4,T,P,2,0,1,3> E2 ## E0 ## E1 ## E3; }; \
+00716         struct { glm::detail::swizzle<4,T,P,2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
+00717         struct { glm::detail::swizzle<4,T,P,2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
+00718         struct { glm::detail::swizzle<4,T,P,2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
+00719         struct { glm::detail::swizzle<4,T,P,2,0,2,3> E2 ## E0 ## E2 ## E3; }; \
+00720         struct { glm::detail::swizzle<4,T,P,2,0,3,0> E2 ## E0 ## E3 ## E0; }; \
+00721         struct { glm::detail::swizzle<4,T,P,2,0,3,1> E2 ## E0 ## E3 ## E1; }; \
+00722         struct { glm::detail::swizzle<4,T,P,2,0,3,2> E2 ## E0 ## E3 ## E2; }; \
+00723         struct { glm::detail::swizzle<4,T,P,2,0,3,3> E2 ## E0 ## E3 ## E3; }; \
+00724         struct { glm::detail::swizzle<4,T,P,2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
+00725         struct { glm::detail::swizzle<4,T,P,2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
+00726         struct { glm::detail::swizzle<4,T,P,2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
+00727         struct { glm::detail::swizzle<4,T,P,2,1,0,3> E2 ## E1 ## E0 ## E3; }; \
+00728         struct { glm::detail::swizzle<4,T,P,2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
+00729         struct { glm::detail::swizzle<4,T,P,2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
+00730         struct { glm::detail::swizzle<4,T,P,2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
+00731         struct { glm::detail::swizzle<4,T,P,2,1,1,3> E2 ## E1 ## E1 ## E3; }; \
+00732         struct { glm::detail::swizzle<4,T,P,2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
+00733         struct { glm::detail::swizzle<4,T,P,2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
+00734         struct { glm::detail::swizzle<4,T,P,2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
+00735         struct { glm::detail::swizzle<4,T,P,2,1,2,3> E2 ## E1 ## E2 ## E3; }; \
+00736         struct { glm::detail::swizzle<4,T,P,2,1,3,0> E2 ## E1 ## E3 ## E0; }; \
+00737         struct { glm::detail::swizzle<4,T,P,2,1,3,1> E2 ## E1 ## E3 ## E1; }; \
+00738         struct { glm::detail::swizzle<4,T,P,2,1,3,2> E2 ## E1 ## E3 ## E2; }; \
+00739         struct { glm::detail::swizzle<4,T,P,2,1,3,3> E2 ## E1 ## E3 ## E3; }; \
+00740         struct { glm::detail::swizzle<4,T,P,2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
+00741         struct { glm::detail::swizzle<4,T,P,2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
+00742         struct { glm::detail::swizzle<4,T,P,2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
+00743         struct { glm::detail::swizzle<4,T,P,2,2,0,3> E2 ## E2 ## E0 ## E3; }; \
+00744         struct { glm::detail::swizzle<4,T,P,2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
+00745         struct { glm::detail::swizzle<4,T,P,2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
+00746         struct { glm::detail::swizzle<4,T,P,2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
+00747         struct { glm::detail::swizzle<4,T,P,2,2,1,3> E2 ## E2 ## E1 ## E3; }; \
+00748         struct { glm::detail::swizzle<4,T,P,2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
+00749         struct { glm::detail::swizzle<4,T,P,2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
+00750         struct { glm::detail::swizzle<4,T,P,2,2,2,2> E2 ## E2 ## E2 ## E2; }; \
+00751         struct { glm::detail::swizzle<4,T,P,2,2,2,3> E2 ## E2 ## E2 ## E3; }; \
+00752         struct { glm::detail::swizzle<4,T,P,2,2,3,0> E2 ## E2 ## E3 ## E0; }; \
+00753         struct { glm::detail::swizzle<4,T,P,2,2,3,1> E2 ## E2 ## E3 ## E1; }; \
+00754         struct { glm::detail::swizzle<4,T,P,2,2,3,2> E2 ## E2 ## E3 ## E2; }; \
+00755         struct { glm::detail::swizzle<4,T,P,2,2,3,3> E2 ## E2 ## E3 ## E3; }; \
+00756         struct { glm::detail::swizzle<4,T,P,2,3,0,0> E2 ## E3 ## E0 ## E0; }; \
+00757         struct { glm::detail::swizzle<4,T,P,2,3,0,1> E2 ## E3 ## E0 ## E1; }; \
+00758         struct { glm::detail::swizzle<4,T,P,2,3,0,2> E2 ## E3 ## E0 ## E2; }; \
+00759         struct { glm::detail::swizzle<4,T,P,2,3,0,3> E2 ## E3 ## E0 ## E3; }; \
+00760         struct { glm::detail::swizzle<4,T,P,2,3,1,0> E2 ## E3 ## E1 ## E0; }; \
+00761         struct { glm::detail::swizzle<4,T,P,2,3,1,1> E2 ## E3 ## E1 ## E1; }; \
+00762         struct { glm::detail::swizzle<4,T,P,2,3,1,2> E2 ## E3 ## E1 ## E2; }; \
+00763         struct { glm::detail::swizzle<4,T,P,2,3,1,3> E2 ## E3 ## E1 ## E3; }; \
+00764         struct { glm::detail::swizzle<4,T,P,2,3,2,0> E2 ## E3 ## E2 ## E0; }; \
+00765         struct { glm::detail::swizzle<4,T,P,2,3,2,1> E2 ## E3 ## E2 ## E1; }; \
+00766         struct { glm::detail::swizzle<4,T,P,2,3,2,2> E2 ## E3 ## E2 ## E2; }; \
+00767         struct { glm::detail::swizzle<4,T,P,2,3,2,3> E2 ## E3 ## E2 ## E3; }; \
+00768         struct { glm::detail::swizzle<4,T,P,2,3,3,0> E2 ## E3 ## E3 ## E0; }; \
+00769         struct { glm::detail::swizzle<4,T,P,2,3,3,1> E2 ## E3 ## E3 ## E1; }; \
+00770         struct { glm::detail::swizzle<4,T,P,2,3,3,2> E2 ## E3 ## E3 ## E2; }; \
+00771         struct { glm::detail::swizzle<4,T,P,2,3,3,3> E2 ## E3 ## E3 ## E3; }; \
+00772         struct { glm::detail::swizzle<4,T,P,3,0,0,0> E3 ## E0 ## E0 ## E0; }; \
+00773         struct { glm::detail::swizzle<4,T,P,3,0,0,1> E3 ## E0 ## E0 ## E1; }; \
+00774         struct { glm::detail::swizzle<4,T,P,3,0,0,2> E3 ## E0 ## E0 ## E2; }; \
+00775         struct { glm::detail::swizzle<4,T,P,3,0,0,3> E3 ## E0 ## E0 ## E3; }; \
+00776         struct { glm::detail::swizzle<4,T,P,3,0,1,0> E3 ## E0 ## E1 ## E0; }; \
+00777         struct { glm::detail::swizzle<4,T,P,3,0,1,1> E3 ## E0 ## E1 ## E1; }; \
+00778         struct { glm::detail::swizzle<4,T,P,3,0,1,2> E3 ## E0 ## E1 ## E2; }; \
+00779         struct { glm::detail::swizzle<4,T,P,3,0,1,3> E3 ## E0 ## E1 ## E3; }; \
+00780         struct { glm::detail::swizzle<4,T,P,3,0,2,0> E3 ## E0 ## E2 ## E0; }; \
+00781         struct { glm::detail::swizzle<4,T,P,3,0,2,1> E3 ## E0 ## E2 ## E1; }; \
+00782         struct { glm::detail::swizzle<4,T,P,3,0,2,2> E3 ## E0 ## E2 ## E2; }; \
+00783         struct { glm::detail::swizzle<4,T,P,3,0,2,3> E3 ## E0 ## E2 ## E3; }; \
+00784         struct { glm::detail::swizzle<4,T,P,3,0,3,0> E3 ## E0 ## E3 ## E0; }; \
+00785         struct { glm::detail::swizzle<4,T,P,3,0,3,1> E3 ## E0 ## E3 ## E1; }; \
+00786         struct { glm::detail::swizzle<4,T,P,3,0,3,2> E3 ## E0 ## E3 ## E2; }; \
+00787         struct { glm::detail::swizzle<4,T,P,3,0,3,3> E3 ## E0 ## E3 ## E3; }; \
+00788         struct { glm::detail::swizzle<4,T,P,3,1,0,0> E3 ## E1 ## E0 ## E0; }; \
+00789         struct { glm::detail::swizzle<4,T,P,3,1,0,1> E3 ## E1 ## E0 ## E1; }; \
+00790         struct { glm::detail::swizzle<4,T,P,3,1,0,2> E3 ## E1 ## E0 ## E2; }; \
+00791         struct { glm::detail::swizzle<4,T,P,3,1,0,3> E3 ## E1 ## E0 ## E3; }; \
+00792         struct { glm::detail::swizzle<4,T,P,3,1,1,0> E3 ## E1 ## E1 ## E0; }; \
+00793         struct { glm::detail::swizzle<4,T,P,3,1,1,1> E3 ## E1 ## E1 ## E1; }; \
+00794         struct { glm::detail::swizzle<4,T,P,3,1,1,2> E3 ## E1 ## E1 ## E2; }; \
+00795         struct { glm::detail::swizzle<4,T,P,3,1,1,3> E3 ## E1 ## E1 ## E3; }; \
+00796         struct { glm::detail::swizzle<4,T,P,3,1,2,0> E3 ## E1 ## E2 ## E0; }; \
+00797         struct { glm::detail::swizzle<4,T,P,3,1,2,1> E3 ## E1 ## E2 ## E1; }; \
+00798         struct { glm::detail::swizzle<4,T,P,3,1,2,2> E3 ## E1 ## E2 ## E2; }; \
+00799         struct { glm::detail::swizzle<4,T,P,3,1,2,3> E3 ## E1 ## E2 ## E3; }; \
+00800         struct { glm::detail::swizzle<4,T,P,3,1,3,0> E3 ## E1 ## E3 ## E0; }; \
+00801         struct { glm::detail::swizzle<4,T,P,3,1,3,1> E3 ## E1 ## E3 ## E1; }; \
+00802         struct { glm::detail::swizzle<4,T,P,3,1,3,2> E3 ## E1 ## E3 ## E2; }; \
+00803         struct { glm::detail::swizzle<4,T,P,3,1,3,3> E3 ## E1 ## E3 ## E3; }; \
+00804         struct { glm::detail::swizzle<4,T,P,3,2,0,0> E3 ## E2 ## E0 ## E0; }; \
+00805         struct { glm::detail::swizzle<4,T,P,3,2,0,1> E3 ## E2 ## E0 ## E1; }; \
+00806         struct { glm::detail::swizzle<4,T,P,3,2,0,2> E3 ## E2 ## E0 ## E2; }; \
+00807         struct { glm::detail::swizzle<4,T,P,3,2,0,3> E3 ## E2 ## E0 ## E3; }; \
+00808         struct { glm::detail::swizzle<4,T,P,3,2,1,0> E3 ## E2 ## E1 ## E0; }; \
+00809         struct { glm::detail::swizzle<4,T,P,3,2,1,1> E3 ## E2 ## E1 ## E1; }; \
+00810         struct { glm::detail::swizzle<4,T,P,3,2,1,2> E3 ## E2 ## E1 ## E2; }; \
+00811         struct { glm::detail::swizzle<4,T,P,3,2,1,3> E3 ## E2 ## E1 ## E3; }; \
+00812         struct { glm::detail::swizzle<4,T,P,3,2,2,0> E3 ## E2 ## E2 ## E0; }; \
+00813         struct { glm::detail::swizzle<4,T,P,3,2,2,1> E3 ## E2 ## E2 ## E1; }; \
+00814         struct { glm::detail::swizzle<4,T,P,3,2,2,2> E3 ## E2 ## E2 ## E2; }; \
+00815         struct { glm::detail::swizzle<4,T,P,3,2,2,3> E3 ## E2 ## E2 ## E3; }; \
+00816         struct { glm::detail::swizzle<4,T,P,3,2,3,0> E3 ## E2 ## E3 ## E0; }; \
+00817         struct { glm::detail::swizzle<4,T,P,3,2,3,1> E3 ## E2 ## E3 ## E1; }; \
+00818         struct { glm::detail::swizzle<4,T,P,3,2,3,2> E3 ## E2 ## E3 ## E2; }; \
+00819         struct { glm::detail::swizzle<4,T,P,3,2,3,3> E3 ## E2 ## E3 ## E3; }; \
+00820         struct { glm::detail::swizzle<4,T,P,3,3,0,0> E3 ## E3 ## E0 ## E0; }; \
+00821         struct { glm::detail::swizzle<4,T,P,3,3,0,1> E3 ## E3 ## E0 ## E1; }; \
+00822         struct { glm::detail::swizzle<4,T,P,3,3,0,2> E3 ## E3 ## E0 ## E2; }; \
+00823         struct { glm::detail::swizzle<4,T,P,3,3,0,3> E3 ## E3 ## E0 ## E3; }; \
+00824         struct { glm::detail::swizzle<4,T,P,3,3,1,0> E3 ## E3 ## E1 ## E0; }; \
+00825         struct { glm::detail::swizzle<4,T,P,3,3,1,1> E3 ## E3 ## E1 ## E1; }; \
+00826         struct { glm::detail::swizzle<4,T,P,3,3,1,2> E3 ## E3 ## E1 ## E2; }; \
+00827         struct { glm::detail::swizzle<4,T,P,3,3,1,3> E3 ## E3 ## E1 ## E3; }; \
+00828         struct { glm::detail::swizzle<4,T,P,3,3,2,0> E3 ## E3 ## E2 ## E0; }; \
+00829         struct { glm::detail::swizzle<4,T,P,3,3,2,1> E3 ## E3 ## E2 ## E1; }; \
+00830         struct { glm::detail::swizzle<4,T,P,3,3,2,2> E3 ## E3 ## E2 ## E2; }; \
+00831         struct { glm::detail::swizzle<4,T,P,3,3,2,3> E3 ## E3 ## E2 ## E3; }; \
+00832         struct { glm::detail::swizzle<4,T,P,3,3,3,0> E3 ## E3 ## E3 ## E0; }; \
+00833         struct { glm::detail::swizzle<4,T,P,3,3,3,1> E3 ## E3 ## E3 ## E1; }; \
+00834         struct { glm::detail::swizzle<4,T,P,3,3,3,2> E3 ## E3 ## E3 ## E2; }; \
+00835         struct { glm::detail::swizzle<4,T,P,3,3,3,3> E3 ## E3 ## E3 ## E3; }; 
+00836 
+00837 #endif//glm_core_swizzle
+
+
+ + + + + + diff --git a/doc/api/a00007.html b/doc/api/a00007.html new file mode 100644 index 00000000..a2c522e5 --- /dev/null +++ b/doc/api/a00007.html @@ -0,0 +1,77 @@ + + + + + +_swizzle_func.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
_swizzle_func.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2011-10-16 / 2011-10-16
+
Author:
Christophe Riccio
+ +

Definition in file _swizzle_func.hpp.

+
+ + + + + + diff --git a/doc/api/a00007_source.html b/doc/api/a00007_source.html new file mode 100644 index 00000000..bd9d88a5 --- /dev/null +++ b/doc/api/a00007_source.html @@ -0,0 +1,852 @@ + + + + + +_swizzle_func.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
_swizzle_func.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_swizzle_func
+00030 #define glm_core_swizzle_func
+00031 
+00032 #define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \
+00033         SWIZZLED_TYPE<TMPL_TYPE> A ## B() CONST \
+00034         { \
+00035                 return SWIZZLED_TYPE<TMPL_TYPE>(this->A, this->B); \
+00036         }
+00037 
+00038 #define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \
+00039         SWIZZLED_TYPE<TMPL_TYPE> A ## B ## C() CONST \
+00040         { \
+00041                 return SWIZZLED_TYPE<TMPL_TYPE>(this->A, this->B, this->C); \
+00042         }
+00043 
+00044 #define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \
+00045         SWIZZLED_TYPE<TMPL_TYPE> A ## B ## C ## D() CONST \
+00046         { \
+00047                 return SWIZZLED_TYPE<TMPL_TYPE>(this->A, this->B, this->C, this->D); \
+00048         }
+00049 
+00050 #define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \
+00051         template <typename TMPL_TYPE> \
+00052         SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE>::A ## B() CONST \
+00053         { \
+00054                 return SWIZZLED_TYPE<TMPL_TYPE>(this->A, this->B); \
+00055         }
+00056 
+00057 #define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \
+00058         template <typename TMPL_TYPE> \
+00059         SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE>::A ## B ## C() CONST \
+00060         { \
+00061                 return SWIZZLED_TYPE<TMPL_TYPE>(this->A, this->B, this->C); \
+00062         }
+00063 
+00064 #define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \
+00065         template <typename TMPL_TYPE> \
+00066         SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE>::A ## B ## C ## D() CONST \
+00067         { \
+00068                 return SWIZZLED_TYPE<TMPL_TYPE>(this->A, this->B, this->C, this->D); \
+00069         }
+00070 
+00071 #define GLM_MUTABLE
+00072 
+00073 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
+00074         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
+00075         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A)
+00076 
+00077 #define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \
+00078         GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \
+00079         GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \
+00080         GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t)
+00081 
+00082 //GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2)
+00083 
+00084 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
+00085         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
+00086         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \
+00087         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \
+00088         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \
+00089         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \
+00090         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B)
+00091 
+00092 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
+00093         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \
+00094         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \
+00095         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \
+00096         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \
+00097         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \
+00098         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A)
+00099 
+00100 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
+00101         GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
+00102         GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C)
+00103 
+00104 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \
+00105         GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \
+00106         GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \
+00107         GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, q)
+00108 
+00109 //GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3)
+00110 
+00111 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+00112         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
+00113         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \
+00114         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \
+00115         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \
+00116         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \
+00117         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \
+00118         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \
+00119         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \
+00120         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \
+00121         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \
+00122         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \
+00123         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C)
+00124 
+00125 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+00126         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \
+00127         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \
+00128         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \
+00129         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \
+00130         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \
+00131         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \
+00132         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \
+00133         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \
+00134         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \
+00135         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \
+00136         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \
+00137         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \
+00138         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \
+00139         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \
+00140         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \
+00141         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \
+00142         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \
+00143         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \
+00144         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \
+00145         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \
+00146         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \
+00147         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \
+00148         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \
+00149         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B)
+00150 
+00151 #define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+00152         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \
+00153         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \
+00154         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \
+00155         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \
+00156         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \
+00157         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \
+00158         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \
+00159         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \
+00160         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \
+00161         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \
+00162         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \
+00163         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \
+00164         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \
+00165         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \
+00166         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \
+00167         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \
+00168         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \
+00169         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \
+00170         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \
+00171         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \
+00172         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \
+00173         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \
+00174         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \
+00175         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A)
+00176 
+00177 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \
+00178         GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \
+00179         GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \
+00180         GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)
+00181 
+00182 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
+00183         GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \
+00184         GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \
+00185         GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q, p)
+00186 
+00187 //GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4)
+00188 
+00189 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
+00190         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
+00191         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
+00192         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
+00193         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B)
+00194 
+00195 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
+00196         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
+00197         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
+00198         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
+00199         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
+00200         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
+00201         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
+00202         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
+00203         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B)
+00204 
+00205 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
+00206         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
+00207         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
+00208         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
+00209         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
+00210         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
+00211         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
+00212         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
+00213         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
+00214         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
+00215         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
+00216         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
+00217         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
+00218         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
+00219         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
+00220         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
+00221         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B)
+00222 
+00223 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \
+00224         GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \
+00225         GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \
+00226         GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B)
+00227 
+00228 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
+00229         GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \
+00230         GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \
+00231         GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t)
+00232 
+00233 //GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4)
+00234 
+00235 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
+00236         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
+00237         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
+00238         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \
+00239         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
+00240         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \
+00241         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \
+00242         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \
+00243         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \
+00244         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C)
+00245 
+00246 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
+00247         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
+00248         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
+00249         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \
+00250         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
+00251         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
+00252         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \
+00253         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \
+00254         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \
+00255         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \
+00256         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
+00257         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
+00258         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \
+00259         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
+00260         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \
+00261         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \
+00262         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \
+00263         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \
+00264         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \
+00265         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \
+00266         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \
+00267         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \
+00268         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \
+00269         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \
+00270         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \
+00271         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \
+00272         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \
+00273         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C)
+00274 
+00275 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
+00276         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
+00277         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
+00278         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \
+00279         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
+00280         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
+00281         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \
+00282         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \
+00283         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \
+00284         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \
+00285         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
+00286         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
+00287         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \
+00288         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
+00289         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
+00290         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \
+00291         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \
+00292         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \
+00293         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \
+00294         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \
+00295         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \
+00296         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \
+00297         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \
+00298         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \
+00299         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \
+00300         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \
+00301         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \
+00302         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \
+00303         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \
+00304         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \
+00305         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \
+00306         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \
+00307         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \
+00308         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \
+00309         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \
+00310         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \
+00311         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \
+00312         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
+00313         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
+00314         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \
+00315         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
+00316         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
+00317         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \
+00318         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \
+00319         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \
+00320         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \
+00321         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
+00322         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
+00323         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \
+00324         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
+00325         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \
+00326         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \
+00327         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \
+00328         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \
+00329         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \
+00330         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \
+00331         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \
+00332         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \
+00333         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \
+00334         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \
+00335         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \
+00336         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \
+00337         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \
+00338         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \
+00339         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \
+00340         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \
+00341         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \
+00342         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \
+00343         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \
+00344         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \
+00345         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \
+00346         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \
+00347         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \
+00348         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \
+00349         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \
+00350         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \
+00351         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \
+00352         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \
+00353         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \
+00354         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \
+00355         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \
+00356         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \
+00357         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \
+00358         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \
+00359         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \
+00360         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \
+00361         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \
+00362         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \
+00363         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \
+00364         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \
+00365         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \
+00366         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \
+00367         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \
+00368         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \
+00369         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \
+00370         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \
+00371         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \
+00372         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \
+00373         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \
+00374         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \
+00375         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \
+00376         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \
+00377         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \
+00378         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \
+00379         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \
+00380         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \
+00381         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \
+00382         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \
+00383         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \
+00384         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \
+00385         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \
+00386         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \
+00387         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \
+00388         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \
+00389         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \
+00390         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \
+00391         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \
+00392         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \
+00393         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \
+00394         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \
+00395         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \
+00396         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \
+00397         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \
+00398         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \
+00399         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \
+00400         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \
+00401         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \
+00402         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \
+00403         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \
+00404         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \
+00405         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \
+00406         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \
+00407         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \
+00408         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \
+00409         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \
+00410         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \
+00411         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \
+00412         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \
+00413         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \
+00414         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \
+00415         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \
+00416         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \
+00417         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \
+00418         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \
+00419         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C)
+00420 
+00421 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \
+00422         GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \
+00423         GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
+00424         GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C)
+00425 
+00426 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
+00427         GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \
+00428         GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \
+00429         GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q)
+00430 
+00431 //GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4)
+00432 
+00433 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+00434         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
+00435         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
+00436         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \
+00437         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \
+00438         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
+00439         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \
+00440         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \
+00441         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \
+00442         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \
+00443         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \
+00444         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \
+00445         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \
+00446         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \
+00447         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \
+00448         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \
+00449         GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D)
+00450 
+00451 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+00452         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
+00453         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
+00454         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \
+00455         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \
+00456         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
+00457         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
+00458         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \
+00459         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \
+00460         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \
+00461         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \
+00462         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \
+00463         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \
+00464         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \
+00465         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \
+00466         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \
+00467         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \
+00468         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
+00469         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
+00470         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \
+00471         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \
+00472         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
+00473         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \
+00474         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \
+00475         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \
+00476         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \
+00477         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \
+00478         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \
+00479         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \
+00480         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \
+00481         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \
+00482         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \
+00483         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \
+00484         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \
+00485         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \
+00486         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \
+00487         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \
+00488         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \
+00489         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \
+00490         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \
+00491         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \
+00492         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \
+00493         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \
+00494         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \
+00495         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \
+00496         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \
+00497         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \
+00498         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \
+00499         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \
+00500         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \
+00501         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \
+00502         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \
+00503         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \
+00504         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \
+00505         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \
+00506         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \
+00507         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \
+00508         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \
+00509         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \
+00510         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \
+00511         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \
+00512         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \
+00513         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \
+00514         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \
+00515         GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D)
+00516 
+00517 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
+00518         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
+00519         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
+00520         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \
+00521         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \
+00522         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
+00523         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
+00524         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \
+00525         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \
+00526         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \
+00527         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \
+00528         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \
+00529         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \
+00530         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \
+00531         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \
+00532         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \
+00533         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \
+00534         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
+00535         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
+00536         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \
+00537         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \
+00538         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
+00539         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
+00540         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \
+00541         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \
+00542         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \
+00543         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \
+00544         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \
+00545         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \
+00546         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \
+00547         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \
+00548         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \
+00549         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \
+00550         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \
+00551         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \
+00552         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \
+00553         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \
+00554         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \
+00555         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \
+00556         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \
+00557         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \
+00558         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \
+00559         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \
+00560         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \
+00561         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \
+00562         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \
+00563         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \
+00564         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \
+00565         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \
+00566         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \
+00567         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \
+00568         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \
+00569         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \
+00570         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \
+00571         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \
+00572         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \
+00573         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \
+00574         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \
+00575         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \
+00576         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \
+00577         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \
+00578         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \
+00579         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \
+00580         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \
+00581         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \
+00582         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
+00583         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
+00584         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \
+00585         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \
+00586         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
+00587         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
+00588         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \
+00589         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \
+00590         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \
+00591         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \
+00592         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \
+00593         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \
+00594         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \
+00595         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \
+00596         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \
+00597         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \
+00598         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
+00599         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
+00600         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \
+00601         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \
+00602         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
+00603         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \
+00604         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \
+00605         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \
+00606         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \
+00607         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \
+00608         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \
+00609         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \
+00610         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \
+00611         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \
+00612         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \
+00613         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \
+00614         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \
+00615         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \
+00616         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \
+00617         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \
+00618         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \
+00619         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \
+00620         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \
+00621         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \
+00622         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \
+00623         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \
+00624         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \
+00625         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \
+00626         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \
+00627         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \
+00628         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \
+00629         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \
+00630         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \
+00631         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \
+00632         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \
+00633         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \
+00634         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \
+00635         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \
+00636         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \
+00637         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \
+00638         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \
+00639         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \
+00640         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \
+00641         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \
+00642         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \
+00643         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \
+00644         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \
+00645         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \
+00646         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \
+00647         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \
+00648         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \
+00649         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \
+00650         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \
+00651         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \
+00652         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \
+00653         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \
+00654         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \
+00655         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \
+00656         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \
+00657         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \
+00658         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \
+00659         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \
+00660         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \
+00661         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \
+00662         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \
+00663         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \
+00664         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \
+00665         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \
+00666         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \
+00667         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \
+00668         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \
+00669         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \
+00670         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \
+00671         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \
+00672         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \
+00673         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \
+00674         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \
+00675         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \
+00676         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \
+00677         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \
+00678         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \
+00679         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \
+00680         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \
+00681         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \
+00682         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \
+00683         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \
+00684         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \
+00685         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \
+00686         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \
+00687         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \
+00688         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \
+00689         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \
+00690         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \
+00691         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \
+00692         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \
+00693         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \
+00694         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \
+00695         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \
+00696         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \
+00697         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \
+00698         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \
+00699         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \
+00700         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \
+00701         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \
+00702         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \
+00703         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \
+00704         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \
+00705         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \
+00706         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \
+00707         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \
+00708         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \
+00709         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \
+00710         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \
+00711         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \
+00712         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \
+00713         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \
+00714         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \
+00715         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \
+00716         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \
+00717         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \
+00718         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \
+00719         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \
+00720         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \
+00721         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \
+00722         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \
+00723         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \
+00724         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \
+00725         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \
+00726         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \
+00727         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \
+00728         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \
+00729         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \
+00730         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \
+00731         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \
+00732         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \
+00733         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \
+00734         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \
+00735         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \
+00736         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \
+00737         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \
+00738         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \
+00739         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \
+00740         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \
+00741         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \
+00742         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \
+00743         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \
+00744         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \
+00745         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \
+00746         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \
+00747         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \
+00748         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \
+00749         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \
+00750         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \
+00751         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \
+00752         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \
+00753         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \
+00754         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \
+00755         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \
+00756         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \
+00757         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \
+00758         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \
+00759         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \
+00760         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \
+00761         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \
+00762         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \
+00763         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \
+00764         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \
+00765         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \
+00766         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \
+00767         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \
+00768         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \
+00769         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \
+00770         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \
+00771         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \
+00772         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \
+00773         GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D)
+00774 
+00775 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \
+00776         GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \
+00777         GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \
+00778         GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)
+00779 
+00780 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
+00781         GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \
+00782         GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \
+00783         GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q, p)
+00784 
+00785 //GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)
+00786 
+00787 #endif//glm_core_swizzle_func
+
+
+ + + + + + diff --git a/doc/api/a00008.html b/doc/api/a00008.html new file mode 100644 index 00000000..c9f44ad8 --- /dev/null +++ b/doc/api/a00008.html @@ -0,0 +1,77 @@ + + + + + +_vectorize.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
_vectorize.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2011-10-14 / 2011-10-14
+
Author:
Christophe Riccio
+ +

Definition in file _vectorize.hpp.

+
+ + + + + + diff --git a/doc/api/a00008_source.html b/doc/api/a00008_source.html new file mode 100644 index 00000000..79d873ed --- /dev/null +++ b/doc/api/a00008_source.html @@ -0,0 +1,224 @@ + + + + + +_vectorize.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
_vectorize.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #define VECTORIZE2_VEC(func) \
+00030     template <typename T> \
+00031     GLM_FUNC_QUALIFIER detail::tvec2<T> func( \
+00032                 detail::tvec2<T> const & v) \
+00033     { \
+00034         return detail::tvec2<T>( \
+00035             func(v.x), \
+00036             func(v.y)); \
+00037     }
+00038 
+00039 #define VECTORIZE3_VEC(func) \
+00040     template <typename T> \
+00041     GLM_FUNC_QUALIFIER detail::tvec3<T> func( \
+00042                 detail::tvec3<T> const & v) \
+00043     { \
+00044         return detail::tvec3<T>( \
+00045             func(v.x), \
+00046             func(v.y), \
+00047             func(v.z)); \
+00048     }
+00049 
+00050 #define VECTORIZE4_VEC(func) \
+00051     template <typename T> \
+00052     GLM_FUNC_QUALIFIER detail::tvec4<T> func( \
+00053                 detail::tvec4<T> const & v) \
+00054     { \
+00055         return detail::tvec4<T>( \
+00056             func(v.x), \
+00057             func(v.y), \
+00058             func(v.z), \
+00059             func(v.w)); \
+00060     }
+00061 
+00062 #define VECTORIZE_VEC(func) \
+00063         VECTORIZE2_VEC(func) \
+00064         VECTORIZE3_VEC(func) \
+00065         VECTORIZE4_VEC(func)
+00066 
+00067 #define VECTORIZE2_VEC_SCA(func) \
+00068     template <typename T> \
+00069     GLM_FUNC_QUALIFIER detail::tvec2<T> func \
+00070         ( \
+00071                 detail::tvec2<T> const & x,  \
+00072                 typename detail::tvec2<T>::value_type const & y \
+00073         ) \
+00074     { \
+00075         return detail::tvec2<T>( \
+00076             func(x.x, y), \
+00077             func(x.y, y)); \
+00078     }
+00079 
+00080 #define VECTORIZE3_VEC_SCA(func) \
+00081     template <typename T> \
+00082     GLM_FUNC_QUALIFIER detail::tvec3<T> func \
+00083         ( \
+00084                 detail::tvec3<T> const & x,  \
+00085                 typename detail::tvec3<T>::value_type const & y \
+00086         ) \
+00087     { \
+00088         return detail::tvec3<T>( \
+00089             func(x.x, y), \
+00090             func(x.y, y), \
+00091             func(x.z, y)); \
+00092     }
+00093 
+00094 #define VECTORIZE4_VEC_SCA(func) \
+00095     template <typename T> \
+00096     GLM_FUNC_QUALIFIER detail::tvec4<T> func \
+00097         ( \
+00098                 detail::tvec4<T> const & x,  \
+00099                 typename detail::tvec4<T>::value_type const & y \
+00100         ) \
+00101     { \
+00102         return detail::tvec4<T>( \
+00103             func(x.x, y), \
+00104             func(x.y, y), \
+00105             func(x.z, y), \
+00106             func(x.w, y)); \
+00107     }
+00108 
+00109 #define VECTORIZE_VEC_SCA(func) \
+00110         VECTORIZE2_VEC_SCA(func) \
+00111         VECTORIZE3_VEC_SCA(func) \
+00112         VECTORIZE4_VEC_SCA(func)
+00113 
+00114 #define VECTORIZE2_VEC_VEC(func) \
+00115     template <typename T> \
+00116     GLM_FUNC_QUALIFIER detail::tvec2<T> func \
+00117         ( \
+00118                 detail::tvec2<T> const & x,  \
+00119                 detail::tvec2<T> const & y \
+00120         ) \
+00121     { \
+00122         return detail::tvec2<T>( \
+00123             func(x.x, y.x), \
+00124             func(x.y, y.y)); \
+00125     }
+00126 
+00127 #define VECTORIZE3_VEC_VEC(func) \
+00128     template <typename T> \
+00129     GLM_FUNC_QUALIFIER detail::tvec3<T> func \
+00130         ( \
+00131                 detail::tvec3<T> const & x,  \
+00132                 detail::tvec3<T> const & y \
+00133         ) \
+00134     { \
+00135         return detail::tvec3<T>( \
+00136             func(x.x, y.x), \
+00137             func(x.y, y.y), \
+00138             func(x.z, y.z)); \
+00139     }
+00140 
+00141 #define VECTORIZE4_VEC_VEC(func) \
+00142     template <typename T> \
+00143     GLM_FUNC_QUALIFIER detail::tvec4<T> func \
+00144         ( \
+00145                 detail::tvec4<T> const & x,  \
+00146                 detail::tvec4<T> const & y \
+00147         ) \
+00148     { \
+00149         return detail::tvec4<T>( \
+00150             func(x.x, y.x), \
+00151             func(x.y, y.y), \
+00152             func(x.z, y.z), \
+00153             func(x.w, y.w)); \
+00154     }
+00155 
+00156 #define VECTORIZE_VEC_VEC(func) \
+00157         VECTORIZE2_VEC_VEC(func) \
+00158         VECTORIZE3_VEC_VEC(func) \
+00159         VECTORIZE4_VEC_VEC(func)
+
+
+ + + + + + diff --git a/doc/api/a00009.html b/doc/api/a00009.html new file mode 100644 index 00000000..9e6aab82 --- /dev/null +++ b/doc/api/a00009.html @@ -0,0 +1,98 @@ + + + + + +associated_min_max.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
associated_min_max.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
+

Detailed Description

+

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.

+

GLM_GTX_associated_min_max: Associated Min/Max

+
Date:
2008-03-10 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_extented_min_max: Extended min max (dependence)
+ +

Definition in file associated_min_max.hpp.

+
+ + + + + + diff --git a/doc/api/a00009_source.html b/doc/api/a00009_source.html new file mode 100644 index 00000000..4e831d99 --- /dev/null +++ b/doc/api/a00009_source.html @@ -0,0 +1,156 @@ + + + + + +associated_min_max.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
associated_min_max.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_associated_min_max
+00039 #define GLM_GTX_associated_min_max GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_associated_min_max extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template<typename genTypeT, typename genTypeU>
+00056         genTypeU associatedMin(
+00057                 const genTypeT& x, const genTypeU& a, 
+00058                 const genTypeT& y, const genTypeU& b);
+00059 
+00062         template<typename genTypeT, typename genTypeU>
+00063         genTypeU associatedMin(
+00064                 const genTypeT& x, const genTypeU& a, 
+00065                 const genTypeT& y, const genTypeU& b, 
+00066                 const genTypeT& z, const genTypeU& c);
+00067 
+00070         template<typename genTypeT, typename genTypeU>
+00071         genTypeU associatedMin(
+00072                 const genTypeT& x, const genTypeU& a, 
+00073                 const genTypeT& y, const genTypeU& b, 
+00074                 const genTypeT& z, const genTypeU& c, 
+00075                 const genTypeT& w, const genTypeU& d);
+00076 
+00079         template<typename genTypeT, typename genTypeU>
+00080         genTypeU associatedMax(
+00081                 const genTypeT& x, const genTypeU& a, 
+00082                 const genTypeT& y, const genTypeU& b);
+00083 
+00086         template<typename genTypeT, typename genTypeU>
+00087         genTypeU associatedMax(
+00088                 const genTypeT& x, const genTypeU& a, 
+00089                 const genTypeT& y, const genTypeU& b, 
+00090                 const genTypeT& z, const genTypeU& c);
+00091 
+00094         template<typename genTypeT, typename genTypeU>
+00095         genTypeU associatedMax(
+00096                 const genTypeT& x, const genTypeU& a, 
+00097                 const genTypeT& y, const genTypeU& b, 
+00098                 const genTypeT& z, const genTypeU& c, 
+00099                 const genTypeT& w, const genTypeU& d);
+00100 
+00102 } //namespace glm
+00103 
+00104 #include "associated_min_max.inl"
+00105 
+00106 #endif//GLM_GTX_associated_min_max
+
+
+ + + + + + diff --git a/doc/api/a00010.html b/doc/api/a00010.html new file mode 100644 index 00000000..8d5dc1c6 --- /dev/null +++ b/doc/api/a00010.html @@ -0,0 +1,121 @@ + + + + + +bit.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
bit.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
genType bitRevert (genType const &value)
template<typename genType >
genType bitRotateLeft (genType const &In, std::size_t Shift)
template<typename genType >
genType bitRotateRight (genType const &In, std::size_t Shift)
template<typename genIUType , typename sizeType >
genIUType extractField (genIUType const &v, sizeType const &first, sizeType const &count)
template<typename genIUType >
genIUType fillBitfieldWithOne (genIUType const &Value, int const &FromBit, int const &ToBit)
template<typename genIUType >
genIUType fillBitfieldWithZero (genIUType const &Value, int const &FromBit, int const &ToBit)
template<typename genType >
int highestBit (genType const &value)
template<typename genType >
genType highestBitValue (genType const &value)
template<typename genType >
bool isPowerOfTwo (genType const &value)
template<typename genType >
int lowestBit (genType const &value)
template<typename genIType >
genIType mask (genIType const &count)
template<typename genType >
genType powerOfTwoAbove (genType const &value)
template<typename genType >
genType powerOfTwoBelow (genType const &value)
template<typename genType >
genType powerOfTwoNearest (genType const &value)
+

Detailed Description

+

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.

+

GLM_GTX_bit: Extended bitwise operations

+
Date:
2007-03-14 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_half_float: Half-precision floating-point based types and functions (dependence)
+

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.

+

GLM_GTX_bit: Extended bitwise operations

+
Date:
2005-12-30 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file bit.hpp.

+
+ + + + + + diff --git a/doc/api/a00010_source.html b/doc/api/a00010_source.html new file mode 100644 index 00000000..36cdbfe3 --- /dev/null +++ b/doc/api/a00010_source.html @@ -0,0 +1,173 @@ + + + + + +bit.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
bit.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_bit
+00040 #define GLM_GTX_bit GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtc/half_float.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_bit extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename genIType>
+00058         genIType mask(genIType const & count);
+00059 
+00063         template <typename genIUType, typename sizeType>
+00064         genIUType extractField(
+00065                 genIUType const & v, 
+00066                 sizeType const & first, 
+00067                 sizeType const & count);
+00068 
+00071         template <typename genType> 
+00072         int lowestBit(genType const & value);
+00073 
+00076         template <typename genType> 
+00077         int highestBit(genType const & value);
+00078 
+00081         template <typename genType> 
+00082         genType highestBitValue(genType const & value);
+00083 
+00086         template <typename genType> 
+00087         bool isPowerOfTwo(genType const & value);
+00088 
+00091         template <typename genType> 
+00092         genType powerOfTwoAbove(genType const & value);
+00093 
+00096         template <typename genType> 
+00097         genType powerOfTwoBelow(genType const & value);
+00098 
+00101         template <typename genType> 
+00102         genType powerOfTwoNearest(genType const & value);
+00103 
+00106         template <typename genType> 
+00107         genType bitRevert(genType const & value);
+00108 
+00111         template <typename genType>
+00112         genType bitRotateRight(genType const & In, std::size_t Shift);
+00113 
+00116         template <typename genType>
+00117         genType bitRotateLeft(genType const & In, std::size_t Shift);
+00118 
+00121         template <typename genIUType>
+00122         genIUType fillBitfieldWithOne(
+00123                 genIUType const & Value,
+00124                 int const & FromBit, 
+00125                 int const & ToBit);
+00126 
+00129         template <typename genIUType>
+00130         genIUType fillBitfieldWithZero(
+00131                 genIUType const & Value,
+00132                 int const & FromBit, 
+00133                 int const & ToBit);
+00134 
+00136 } //namespace glm
+00137 
+00138 #include "bit.inl"
+00139 
+00140 #endif//GLM_GTX_bit
+
+
+ + + + + + diff --git a/doc/api/a00011_source.html b/doc/api/a00011_source.html new file mode 100644 index 00000000..9c70aaff --- /dev/null +++ b/doc/api/a00011_source.html @@ -0,0 +1,126 @@ + + + + + +closest_point.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
closest_point.hpp
+
+
+
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_closest_point
+00039 #define GLM_GTX_closest_point GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_closest_point extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename T> 
+00056         detail::tvec3<T> closestPointOnLine(
+00057                 detail::tvec3<T> const & point, 
+00058                 detail::tvec3<T> const & a, 
+00059                 detail::tvec3<T> const & b);
+00060 
+00062 }// namespace glm
+00063 
+00064 #include "closest_point.inl"
+00065 
+00066 #endif//GLM_GTX_closest_point
+
+
+ + + + + + diff --git a/doc/api/a00012.html b/doc/api/a00012.html new file mode 100644 index 00000000..f533df9b --- /dev/null +++ b/doc/api/a00012.html @@ -0,0 +1,219 @@ + + + + + +color_cast.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
color_cast.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+template<typename T >
f16vec4 f16_abgr_cast (T c)
+template<typename T >
f16vec4 f16_argb_cast (T c)
+template<typename T >
f16vec4 f16_bgra_cast (T c)
+template<typename T >
f16vec3 f16_bgrx_cast (T c)
+template<typename T >
f16 f16_channel_cast (T a)
+template<typename T >
f16vec4 f16_rgba_cast (T c)
+template<typename T >
f16vec3 f16_rgbx_cast (T c)
+template<typename T >
f16vec3 f16_xbgr_cast (T c)
+template<typename T >
f16vec3 f16_xrgb_cast (T c)
+template<typename T >
f32vec4 f32_abgr_cast (T c)
+template<typename T >
f32vec4 f32_argb_cast (T c)
+template<typename T >
f32vec4 f32_bgra_cast (T c)
+template<typename T >
f32vec3 f32_bgrx_cast (T c)
+template<typename T >
f32 f32_channel_cast (T a)
+template<typename T >
f32vec4 f32_rgba_cast (T c)
+template<typename T >
f32vec3 f32_rgbx_cast (T c)
+template<typename T >
f32vec3 f32_xbgr_cast (T c)
+template<typename T >
f32vec3 f32_xrgb_cast (T c)
+template<typename T >
f64vec4 f64_abgr_cast (T c)
+template<typename T >
f64vec4 f64_argb_cast (T c)
+template<typename T >
f64vec4 f64_bgra_cast (T c)
+template<typename T >
f64vec3 f64_bgrx_cast (T c)
+template<typename T >
f64 f64_channel_cast (T a)
+template<typename T >
f64vec4 f64_rgba_cast (T c)
+template<typename T >
f64vec3 f64_rgbx_cast (T c)
+template<typename T >
f64vec3 f64_xbgr_cast (T c)
+template<typename T >
f64vec3 f64_xrgb_cast (T c)
template<typename valType >
uint16 u16channel_cast (valType a)
+template<typename T >
uint32 u32_abgr_cast (const detail::tvec4< T > &c)
+template<typename T >
uint32 u32_argb_cast (const detail::tvec4< T > &c)
+template<typename T >
uint32 u32_bgra_cast (const detail::tvec4< T > &c)
+template<typename T >
uint32 u32_bgrx_cast (const detail::tvec3< T > &c)
+template<typename T >
uint32 u32_rgba_cast (const detail::tvec4< T > &c)
+template<typename T >
uint32 u32_rgbx_cast (const detail::tvec3< T > &c)
+template<typename T >
uint32 u32_xbgr_cast (const detail::tvec3< T > &c)
+template<typename T >
uint32 u32_xrgb_cast (const detail::tvec3< T > &c)
+template<typename T >
uint64 u64_abgr_cast (const detail::tvec4< T > &c)
+template<typename T >
uint64 u64_argb_cast (const detail::tvec4< T > &c)
+template<typename T >
uint64 u64_bgra_cast (const detail::tvec4< T > &c)
+template<typename T >
uint64 u64_bgrx_cast (const detail::tvec3< T > &c)
+template<typename T >
uint64 u64_rgba_cast (const detail::tvec4< T > &c)
+template<typename T >
uint64 u64_rgbx_cast (const detail::tvec3< T > &c)
+template<typename T >
uint64 u64_xbgr_cast (const detail::tvec3< T > &c)
+template<typename T >
uint64 u64_xrgb_cast (const detail::tvec3< T > &c)
template<typename valType >
uint8 u8channel_cast (valType a)
+

Detailed Description

+

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.

+

GLM_GTX_color_cast: Color conversion

+
Date:
2007-06-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_number_precision: Number precision (dependence)
+ +

Definition in file color_cast.hpp.

+
+ + + + + + diff --git a/doc/api/a00012_source.html b/doc/api/a00012_source.html new file mode 100644 index 00000000..5efb2e32 --- /dev/null +++ b/doc/api/a00012_source.html @@ -0,0 +1,182 @@ + + + + + +color_cast.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
color_cast.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_color_cast
+00040 #define GLM_GTX_color_cast GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtx/number_precision.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_color_cast extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename valType> uint8 u8channel_cast(valType a);
+00058 
+00061         template <typename valType>     uint16 u16channel_cast(valType a);
+00062 
+00063         template <typename T> uint32 u32_rgbx_cast(const detail::tvec3<T>& c);          
+00064         template <typename T> uint32 u32_xrgb_cast(const detail::tvec3<T>& c);          
+00065         template <typename T> uint32 u32_bgrx_cast(const detail::tvec3<T>& c);          
+00066         template <typename T> uint32 u32_xbgr_cast(const detail::tvec3<T>& c);          
+00067 
+00068         template <typename T> uint32 u32_rgba_cast(const detail::tvec4<T>& c);          
+00069         template <typename T> uint32 u32_argb_cast(const detail::tvec4<T>& c);          
+00070         template <typename T> uint32 u32_bgra_cast(const detail::tvec4<T>& c);          
+00071         template <typename T> uint32 u32_abgr_cast(const detail::tvec4<T>& c);          
+00072 
+00073         template <typename T> uint64 u64_rgbx_cast(const detail::tvec3<T>& c);          
+00074         template <typename T> uint64 u64_xrgb_cast(const detail::tvec3<T>& c);          
+00075         template <typename T> uint64 u64_bgrx_cast(const detail::tvec3<T>& c);          
+00076         template <typename T> uint64 u64_xbgr_cast(const detail::tvec3<T>& c);          
+00077 
+00078         template <typename T> uint64 u64_rgba_cast(const detail::tvec4<T>& c);          
+00079         template <typename T> uint64 u64_argb_cast(const detail::tvec4<T>& c);          
+00080         template <typename T> uint64 u64_bgra_cast(const detail::tvec4<T>& c);          
+00081         template <typename T> uint64 u64_abgr_cast(const detail::tvec4<T>& c);          
+00082 
+00083         template <typename T> f16 f16_channel_cast(T a);        
+00084 
+00085         template <typename T> f16vec3 f16_rgbx_cast(T c);               
+00086         template <typename T> f16vec3 f16_xrgb_cast(T c);               
+00087         template <typename T> f16vec3 f16_bgrx_cast(T c);               
+00088         template <typename T> f16vec3 f16_xbgr_cast(T c);               
+00089 
+00090         template <typename T> f16vec4 f16_rgba_cast(T c);               
+00091         template <typename T> f16vec4 f16_argb_cast(T c);               
+00092         template <typename T> f16vec4 f16_bgra_cast(T c);               
+00093         template <typename T> f16vec4 f16_abgr_cast(T c);               
+00094 
+00095         template <typename T> f32 f32_channel_cast(T a);                
+00096 
+00097         template <typename T> f32vec3 f32_rgbx_cast(T c);               
+00098         template <typename T> f32vec3 f32_xrgb_cast(T c);               
+00099         template <typename T> f32vec3 f32_bgrx_cast(T c);               
+00100         template <typename T> f32vec3 f32_xbgr_cast(T c);               
+00101 
+00102         template <typename T> f32vec4 f32_rgba_cast(T c);               
+00103         template <typename T> f32vec4 f32_argb_cast(T c);               
+00104         template <typename T> f32vec4 f32_bgra_cast(T c);               
+00105         template <typename T> f32vec4 f32_abgr_cast(T c);               
+00106 
+00107         template <typename T> f64 f64_channel_cast(T a);                
+00108 
+00109         template <typename T> f64vec3 f64_rgbx_cast(T c);               
+00110         template <typename T> f64vec3 f64_xrgb_cast(T c);               
+00111         template <typename T> f64vec3 f64_bgrx_cast(T c);               
+00112         template <typename T> f64vec3 f64_xbgr_cast(T c);               
+00113 
+00114         template <typename T> f64vec4 f64_rgba_cast(T c);               
+00115         template <typename T> f64vec4 f64_argb_cast(T c);               
+00116         template <typename T> f64vec4 f64_bgra_cast(T c);               
+00117         template <typename T> f64vec4 f64_abgr_cast(T c);               
+00118 
+00120 }//namespace glm
+00121 
+00122 #include "color_cast.inl"
+00123 
+00124 #endif//GLM_GTX_color_cast
+
+
+ + + + + + diff --git a/doc/api/a00013.html b/doc/api/a00013.html new file mode 100644 index 00000000..3e29bbad --- /dev/null +++ b/doc/api/a00013.html @@ -0,0 +1,96 @@ + + + + + +color_space.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
color_space.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename valType >
detail::tvec3< valType > hsvColor (detail::tvec3< valType > const &rgbValue)
template<typename valType >
valType luminosity (detail::tvec3< valType > const &color)
template<typename valType >
detail::tvec3< valType > rgbColor (detail::tvec3< valType > const &hsvValue)
template<typename valType >
detail::tmat4x4< valType > saturation (valType const s)
template<typename valType >
detail::tvec3< valType > saturation (valType const s, detail::tvec3< valType > const &color)
template<typename valType >
detail::tvec4< valType > saturation (valType const s, detail::tvec4< valType > const &color)
+

Detailed Description

+

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.

+

GLM_GTX_color_space: RGB to HSV conversion

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file color_space.hpp.

+
+ + + + + + diff --git a/doc/api/a00013_source.html b/doc/api/a00013_source.html new file mode 100644 index 00000000..16bbffe9 --- /dev/null +++ b/doc/api/a00013_source.html @@ -0,0 +1,146 @@ + + + + + +color_space.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
color_space.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_color_space
+00039 #define GLM_GTX_color_space GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_color_space extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055     template <typename valType> 
+00056         detail::tvec3<valType> rgbColor(
+00057                 detail::tvec3<valType> const & hsvValue);
+00058 
+00061     template <typename valType> 
+00062         detail::tvec3<valType> hsvColor(
+00063                 detail::tvec3<valType> const & rgbValue);
+00064                 
+00067     template <typename valType> 
+00068         detail::tmat4x4<valType> saturation(
+00069                 valType const s);
+00070 
+00073         template <typename valType> 
+00074         detail::tvec3<valType> saturation(
+00075                 valType const s, 
+00076                 detail::tvec3<valType> const & color);
+00077                 
+00080     template <typename valType> 
+00081         detail::tvec4<valType> saturation(
+00082                 valType const s, 
+00083                 detail::tvec4<valType> const & color);
+00084                 
+00087         template <typename valType> 
+00088         valType luminosity(
+00089                 detail::tvec3<valType> const & color);
+00090 
+00092 }//namespace glm
+00093 
+00094 #include "color_space.inl"
+00095 
+00096 #endif//GLM_GTX_color_space
+
+
+ + + + + + diff --git a/doc/api/a00014.html b/doc/api/a00014.html new file mode 100644 index 00000000..886f5ab7 --- /dev/null +++ b/doc/api/a00014.html @@ -0,0 +1,92 @@ + + + + + +color_space_YCoCg.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
color_space_YCoCg.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename valType >
detail::tvec3< valType > rgb2YCoCg (detail::tvec3< valType > const &rgbColor)
template<typename valType >
detail::tvec3< valType > rgb2YCoCgR (detail::tvec3< valType > const &rgbColor)
template<typename valType >
detail::tvec3< valType > YCoCg2rgb (detail::tvec3< valType > const &YCoCgColor)
template<typename valType >
detail::tvec3< valType > YCoCgR2rgb (detail::tvec3< valType > const &YCoCgColor)
+

Detailed Description

+

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.

+

GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion

+
Date:
2008-10-28 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file color_space_YCoCg.hpp.

+
+ + + + + + diff --git a/doc/api/a00014_source.html b/doc/api/a00014_source.html new file mode 100644 index 00000000..44bd2606 --- /dev/null +++ b/doc/api/a00014_source.html @@ -0,0 +1,136 @@ + + + + + +color_space_YCoCg.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
color_space_YCoCg.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef glm_gtx_color_space_YCoCg
+00039 #define glm_gtx_color_space_YCoCg GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename valType> 
+00056         detail::tvec3<valType> rgb2YCoCg(
+00057                 detail::tvec3<valType> const & rgbColor);
+00058 
+00061     template <typename valType> 
+00062         detail::tvec3<valType> YCoCg2rgb(
+00063                 detail::tvec3<valType> const & YCoCgColor);
+00064 
+00068         template <typename valType> 
+00069         detail::tvec3<valType> rgb2YCoCgR(
+00070                 detail::tvec3<valType> const & rgbColor);
+00071 
+00075     template <typename valType> 
+00076         detail::tvec3<valType> YCoCgR2rgb(
+00077                 detail::tvec3<valType> const & YCoCgColor);
+00078 
+00080 }//namespace glm
+00081 
+00082 #include "color_space_YCoCg.inl"
+00083 
+00084 #endif//glm_gtx_color_space_YCoCg
+
+
+ + + + + + diff --git a/doc/api/a00015.html b/doc/api/a00015.html new file mode 100644 index 00000000..142c92be --- /dev/null +++ b/doc/api/a00015.html @@ -0,0 +1,332 @@ + + + + + +compatibility.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
compatibility.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef bool bool1
+typedef bool bool1x1
+typedef detail::tvec2< bool > bool2
+typedef detail::tmat2x2< bool > bool2x2
+typedef detail::tmat2x3< bool > bool2x3
+typedef detail::tmat2x4< bool > bool2x4
+typedef detail::tvec3< bool > bool3
+typedef detail::tmat3x2< bool > bool3x2
+typedef detail::tmat3x3< bool > bool3x3
+typedef detail::tmat3x4< bool > bool3x4
+typedef detail::tvec4< bool > bool4
+typedef detail::tmat4x2< bool > bool4x2
+typedef detail::tmat4x3< bool > bool4x3
+typedef detail::tmat4x4< bool > bool4x4
+typedef double double1
+typedef double double1x1
+typedef detail::tvec2< double > double2
+typedef detail::tmat2x2< double > double2x2
+typedef detail::tmat2x3< double > double2x3
+typedef detail::tmat2x4< double > double2x4
+typedef detail::tvec3< double > double3
+typedef detail::tmat3x2< double > double3x2
+typedef detail::tmat3x3< double > double3x3
+typedef detail::tmat3x4< double > double3x4
+typedef detail::tvec4< double > double4
+typedef detail::tmat4x2< double > double4x2
+typedef detail::tmat4x3< double > double4x3
+typedef detail::tmat4x4< double > double4x4
+typedef float float1
+typedef float float1x1
+typedef detail::tvec2< float > float2
+typedef detail::tmat2x2< float > float2x2
+typedef detail::tmat2x3< float > float2x3
+typedef detail::tmat2x4< float > float2x4
+typedef detail::tvec3< float > float3
+typedef detail::tmat3x2< float > float3x2
+typedef detail::tmat3x3< float > float3x3
+typedef detail::tmat3x4< float > float3x4
+typedef detail::tvec4< float > float4
+typedef detail::tmat4x2< float > float4x2
+typedef detail::tmat4x3< float > float4x3
+typedef detail::tmat4x4< float > float4x4
+typedef detail::half half1
+typedef detail::half half1x1
+typedef detail::tvec2
+< detail::half > 
half2
+typedef detail::tmat2x2
+< detail::half > 
half2x2
+typedef detail::tmat2x3
+< detail::half > 
half2x3
+typedef detail::tmat2x4
+< detail::half > 
half2x4
+typedef detail::tvec3
+< detail::half > 
half3
+typedef detail::tmat3x2
+< detail::half > 
half3x2
+typedef detail::tmat3x3
+< detail::half > 
half3x3
+typedef detail::tmat3x4
+< detail::half > 
half3x4
+typedef detail::tvec4
+< detail::half > 
half4
+typedef detail::tmat4x2
+< detail::half > 
half4x2
+typedef detail::tmat4x3
+< detail::half > 
half4x3
+typedef detail::tmat4x4
+< detail::half > 
half4x4
+typedef int int1
+typedef int int1x1
+typedef detail::tvec2< int > int2
+typedef detail::tmat2x2< int > int2x2
+typedef detail::tmat2x3< int > int2x3
+typedef detail::tmat2x4< int > int2x4
+typedef detail::tvec3< int > int3
+typedef detail::tmat3x2< int > int3x2
+typedef detail::tmat3x3< int > int3x3
+typedef detail::tmat3x4< int > int3x4
+typedef detail::tvec4< int > int4
+typedef detail::tmat4x2< int > int4x2
+typedef detail::tmat4x3< int > int4x3
+typedef detail::tmat4x4< int > int4x4

+Functions

+template<typename T >
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec2< T > 
atan2 (const detail::tvec2< T > &x, const detail::tvec2< T > &y)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec3< T > 
atan2 (const detail::tvec3< T > &x, const detail::tvec3< T > &y)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec4< T > 
atan2 (const detail::tvec4< T > &x, const detail::tvec4< T > &y)
+template<typename genType >
bool isfinite (genType const &x)
+template<typename valType >
detail::tvec2< bool > isfinite (const detail::tvec2< valType > &x)
+template<typename valType >
detail::tvec3< bool > isfinite (const detail::tvec3< valType > &x)
+template<typename valType >
detail::tvec4< bool > isfinite (const detail::tvec4< valType > &x)
+template<typename genType >
detail::tvec2< bool > isinf (const detail::tvec2< genType > &x)
+template<typename genType >
detail::tvec3< bool > isinf (const detail::tvec3< genType > &x)
+template<typename genType >
detail::tvec4< bool > isinf (const detail::tvec4< genType > &x)
template<typename genType >
genType::bool_type isinf (genType const &x)
+template<typename genType >
detail::tvec2< bool > isnan (const detail::tvec2< genType > &x)
+template<typename genType >
detail::tvec3< bool > isnan (const detail::tvec3< genType > &x)
+template<typename genType >
detail::tvec4< bool > isnan (const detail::tvec4< genType > &x)
template<typename genType >
genType::bool_type isnan (genType const &x)
+template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec2< T > 
lerp (const detail::tvec2< T > &x, const detail::tvec2< T > &y, T a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec3< T > 
lerp (const detail::tvec3< T > &x, const detail::tvec3< T > &y, T a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec4< T > 
lerp (const detail::tvec4< T > &x, const detail::tvec4< T > &y, T a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec2< T > 
lerp (const detail::tvec2< T > &x, const detail::tvec2< T > &y, const detail::tvec2< T > &a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec3< T > 
lerp (const detail::tvec3< T > &x, const detail::tvec3< T > &y, const detail::tvec3< T > &a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec4< T > 
lerp (const detail::tvec4< T > &x, const detail::tvec4< T > &y, const detail::tvec4< T > &a)
+template<typename T >
GLM_FUNC_QUALIFIER T saturate (T x)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec2< T > 
saturate (const detail::tvec2< T > &x)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec3< T > 
saturate (const detail::tvec3< T > &x)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec4< T > 
saturate (const detail::tvec4< T > &x)
+

Detailed Description

+

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.

+

GLM_GTX_compatibility: Cg and HLSL compatibility

+
Date:
2007-01-24 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_half_float: Half-precision floating-point based types and functions (dependence)
+ +

Definition in file compatibility.hpp.

+
+ + + + + + diff --git a/doc/api/a00015_source.html b/doc/api/a00015_source.html new file mode 100644 index 00000000..a92f5762 --- /dev/null +++ b/doc/api/a00015_source.html @@ -0,0 +1,242 @@ + + + + + +compatibility.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
compatibility.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_compatibility
+00040 #define GLM_GTX_compatibility GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"  
+00044 #include "../gtc/half_float.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_compatibility extension included")
+00048 #endif
+00049 
+00050 #if(GLM_COMPILER & GLM_COMPILER_VC)
+00051 #include <cfloat>
+00052 #elif(GLM_COMPILER & GLM_COMPILER_GCC)
+00053 #include <cmath>
+00054 #endif//GLM_COMPILER
+00055 
+00056 namespace glm
+00057 {
+00060 
+00061         template <typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);}                                                                                                                                                                    
+00062         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, T a){return mix(x, y, a);}                                                 
+00063         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, T a){return mix(x, y, a);}                                                 
+00064         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> lerp(const detail::tvec4<T>& x, const detail::tvec4<T>& y, T a){return mix(x, y, a);}                                                 
+00065         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, const detail::tvec2<T>& a){return mix(x, y, a);}   
+00066         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, const detail::tvec3<T>& a){return mix(x, y, a);}   
+00067         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> lerp(const detail::tvec4<T>& x, const detail::tvec4<T>& y, const detail::tvec4<T>& a){return mix(x, y, a);}   
+00068 
+00069         template <typename T> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));}                                                                                                          
+00070         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> saturate(const detail::tvec2<T>& x){return clamp(x, T(0), T(1));}                                     
+00071         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> saturate(const detail::tvec3<T>& x){return clamp(x, T(0), T(1));}                                     
+00072         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> saturate(const detail::tvec4<T>& x){return clamp(x, T(0), T(1));}                                     
+00073 
+00074         template <typename T> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);}                                                                                                                          
+00075         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> atan2(const detail::tvec2<T>& x, const detail::tvec2<T>& y){return atan(x, y);}       
+00076         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> atan2(const detail::tvec3<T>& x, const detail::tvec3<T>& y){return atan(x, y);}       
+00077         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> atan2(const detail::tvec4<T>& x, const detail::tvec4<T>& y){return atan(x, y);}       
+00078 
+00079         template <typename genType> bool isfinite(genType const & x);                                                                                   
+00080         template <typename valType> detail::tvec2<bool> isfinite(const detail::tvec2<valType>& x);                              
+00081         template <typename valType> detail::tvec3<bool> isfinite(const detail::tvec3<valType>& x);                              
+00082         template <typename valType> detail::tvec4<bool> isfinite(const detail::tvec4<valType>& x);                              
+00083 
+00084         template <typename genType> bool isinf(genType const & x);                                                                                                              
+00085         template <typename genType> detail::tvec2<bool> isinf(const detail::tvec2<genType>& x);                                 
+00086         template <typename genType> detail::tvec3<bool> isinf(const detail::tvec3<genType>& x);                                 
+00087         template <typename genType> detail::tvec4<bool> isinf(const detail::tvec4<genType>& x);                                 
+00088 
+00089         template <typename genType> bool isnan(genType const & x);                                                                                                              
+00090         template <typename genType> detail::tvec2<bool> isnan(const detail::tvec2<genType>& x);                                 
+00091         template <typename genType> detail::tvec3<bool> isnan(const detail::tvec3<genType>& x);                                 
+00092         template <typename genType> detail::tvec4<bool> isnan(const detail::tvec4<genType>& x);                                 
+00093 
+00094         typedef bool                                            bool1;                  
+00095         typedef detail::tvec2<bool>                     bool2;                  
+00096         typedef detail::tvec3<bool>                     bool3;                  
+00097         typedef detail::tvec4<bool>                     bool4;                  
+00098 
+00099         typedef bool                                            bool1x1;                
+00100         typedef detail::tmat2x2<bool>           bool2x2;                
+00101         typedef detail::tmat2x3<bool>           bool2x3;                
+00102         typedef detail::tmat2x4<bool>           bool2x4;                
+00103         typedef detail::tmat3x2<bool>           bool3x2;                
+00104         typedef detail::tmat3x3<bool>           bool3x3;                
+00105         typedef detail::tmat3x4<bool>           bool3x4;                
+00106         typedef detail::tmat4x2<bool>           bool4x2;                
+00107         typedef detail::tmat4x3<bool>           bool4x3;                
+00108         typedef detail::tmat4x4<bool>           bool4x4;                
+00109 
+00110         typedef int                                                     int1;                   
+00111         typedef detail::tvec2<int>                      int2;                   
+00112         typedef detail::tvec3<int>                      int3;                   
+00113         typedef detail::tvec4<int>                      int4;                   
+00114 
+00115         typedef int                                                     int1x1;                 
+00116         typedef detail::tmat2x2<int>            int2x2;                 
+00117         typedef detail::tmat2x3<int>            int2x3;                 
+00118         typedef detail::tmat2x4<int>            int2x4;                 
+00119         typedef detail::tmat3x2<int>            int3x2;                 
+00120         typedef detail::tmat3x3<int>            int3x3;                 
+00121         typedef detail::tmat3x4<int>            int3x4;                 
+00122         typedef detail::tmat4x2<int>            int4x2;                 
+00123         typedef detail::tmat4x3<int>            int4x3;                 
+00124         typedef detail::tmat4x4<int>            int4x4;                 
+00125 
+00126         typedef detail::half                                    half1;                  
+00127         typedef detail::tvec2<detail::half>     half2;                  
+00128         typedef detail::tvec3<detail::half>     half3;                  
+00129         typedef detail::tvec4<detail::half>     half4;                  
+00130 
+00131         typedef detail::half                                    half1x1;                
+00132         typedef detail::tmat2x2<detail::half>   half2x2;                
+00133         typedef detail::tmat2x3<detail::half>   half2x3;                
+00134         typedef detail::tmat2x4<detail::half>   half2x4;                
+00135         typedef detail::tmat3x2<detail::half>   half3x2;                
+00136         typedef detail::tmat3x3<detail::half>   half3x3;                
+00137         typedef detail::tmat3x4<detail::half>   half3x4;                
+00138         typedef detail::tmat4x2<detail::half>   half4x2;                
+00139         typedef detail::tmat4x3<detail::half>   half4x3;                
+00140         typedef detail::tmat4x4<detail::half>   half4x4;                
+00141 
+00142         typedef float                                           float1;                 
+00143         typedef detail::tvec2<float>            float2;                 
+00144         typedef detail::tvec3<float>            float3;                 
+00145         typedef detail::tvec4<float>            float4;                 
+00146 
+00147         typedef float                                           float1x1;               
+00148         typedef detail::tmat2x2<float>          float2x2;               
+00149         typedef detail::tmat2x3<float>          float2x3;               
+00150         typedef detail::tmat2x4<float>          float2x4;               
+00151         typedef detail::tmat3x2<float>          float3x2;               
+00152         typedef detail::tmat3x3<float>          float3x3;               
+00153         typedef detail::tmat3x4<float>          float3x4;               
+00154         typedef detail::tmat4x2<float>          float4x2;               
+00155         typedef detail::tmat4x3<float>          float4x3;               
+00156         typedef detail::tmat4x4<float>          float4x4;               
+00157 
+00158         typedef double                                          double1;                
+00159         typedef detail::tvec2<double>           double2;                
+00160         typedef detail::tvec3<double>           double3;                
+00161         typedef detail::tvec4<double>           double4;                
+00162 
+00163         typedef double                                          double1x1;              
+00164         typedef detail::tmat2x2<double>         double2x2;              
+00165         typedef detail::tmat2x3<double>         double2x3;              
+00166         typedef detail::tmat2x4<double>         double2x4;              
+00167         typedef detail::tmat3x2<double>         double3x2;              
+00168         typedef detail::tmat3x3<double>         double3x3;              
+00169         typedef detail::tmat3x4<double>         double3x4;              
+00170         typedef detail::tmat4x2<double>         double4x2;              
+00171         typedef detail::tmat4x3<double>         double4x3;              
+00172         typedef detail::tmat4x4<double>         double4x4;              
+00173 
+00175 }//namespace glm
+00176 
+00177 #include "compatibility.inl"
+00178     
+00179 #endif//GLM_GTX_compatibility
+00180 
+
+
+ + + + + + diff --git a/doc/api/a00016.html b/doc/api/a00016.html new file mode 100644 index 00000000..009fe594 --- /dev/null +++ b/doc/api/a00016.html @@ -0,0 +1,92 @@ + + + + + +component_wise.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
component_wise.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename genType >
genType::value_type compAdd (genType const &v)
template<typename genType >
genType::value_type compMax (genType const &v)
template<typename genType >
genType::value_type compMin (genType const &v)
template<typename genType >
genType::value_type compMul (genType const &v)
+

Detailed Description

+

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.

+

GLM_GTX_component_wise: Component wise

+
Date:
2007-05-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file component_wise.hpp.

+
+ + + + + + diff --git a/doc/api/a00016_source.html b/doc/api/a00016_source.html new file mode 100644 index 00000000..2b0dda2d --- /dev/null +++ b/doc/api/a00016_source.html @@ -0,0 +1,136 @@ + + + + + +component_wise.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
component_wise.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_component_wise
+00039 #define GLM_GTX_component_wise GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_component_wise extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename genType> 
+00056         typename genType::value_type compAdd(
+00057                 genType const & v);
+00058 
+00061         template <typename genType> 
+00062         typename genType::value_type compMul(
+00063                 genType const & v);
+00064 
+00067         template <typename genType> 
+00068         typename genType::value_type compMin(
+00069                 genType const & v);
+00070 
+00073         template <typename genType> 
+00074         typename genType::value_type compMax(
+00075                 genType const & v);
+00076 
+00078 }//namespace glm
+00079 
+00080 #include "component_wise.inl"
+00081 
+00082 #endif//GLM_GTX_component_wise
+
+
+ + + + + + diff --git a/doc/api/a00017.html b/doc/api/a00017.html new file mode 100644 index 00000000..e5bd1452 --- /dev/null +++ b/doc/api/a00017.html @@ -0,0 +1,136 @@ + + + + + +constants.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
constants.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
e ()
template<typename T >
epsilon ()
template<typename T >
euler ()
template<typename T >
golden_ratio ()
template<typename T >
half_pi ()
template<typename T >
ln_ln_two ()
template<typename T >
ln_ten ()
template<typename T >
ln_two ()
template<typename T >
one ()
template<typename T >
one_over_pi ()
template<typename T >
one_over_root_two ()
template<typename T >
pi ()
template<typename T >
quarter_pi ()
template<typename T >
root_five ()
template<typename T >
root_half_pi ()
template<typename T >
root_ln_four ()
template<typename T >
root_pi ()
template<typename T >
root_three ()
template<typename T >
root_two ()
template<typename T >
root_two_pi ()
template<typename T >
third ()
template<typename T >
two_over_pi ()
template<typename T >
two_over_root_pi ()
template<typename T >
two_thirds ()
template<typename T >
zero ()
+

Detailed Description

+

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.

+

GLM_GTX_constants: Provide build-in constants

+
Date:
2011-09-30 / 2011-09-30
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_half_float: Half-precision floating-point based types and functions (dependence)
+ +

Definition in file constants.hpp.

+
+ + + + + + diff --git a/doc/api/a00017_source.html b/doc/api/a00017_source.html new file mode 100644 index 00000000..617af77d --- /dev/null +++ b/doc/api/a00017_source.html @@ -0,0 +1,197 @@ + + + + + +constants.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
constants.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_constants
+00040 #define GLM_GTX_constants GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtc/half_float.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_constants extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00058         template <typename T>
+00059         T epsilon();
+00060 
+00063         template <typename T>
+00064         T zero();
+00065 
+00068         template <typename T>
+00069         T one();
+00070 
+00073         template <typename T>
+00074         T pi();
+00075 
+00078         template <typename T>
+00079         T root_pi();
+00080 
+00083         template <typename T>
+00084         T half_pi();
+00085 
+00088         template <typename T>
+00089         T quarter_pi();
+00090 
+00093         template <typename T>
+00094         T one_over_pi();
+00095 
+00098         template <typename T>
+00099         T two_over_pi();
+00100 
+00103         template <typename T>
+00104         T two_over_root_pi();
+00105 
+00108         template <typename T>
+00109         T one_over_root_two();
+00110 
+00113         template <typename T>
+00114         T root_half_pi();
+00115 
+00118         template <typename T>
+00119         T root_two_pi();
+00120 
+00123         template <typename T>
+00124         T root_ln_four();
+00125 
+00128         template <typename T>
+00129         T e();
+00130 
+00133         template <typename T>
+00134         T euler();
+00135 
+00138         template <typename T>
+00139         T root_two();
+00140 
+00143         template <typename T>
+00144         T root_three();
+00145 
+00148         template <typename T>
+00149         T root_five();
+00150 
+00153         template <typename T>
+00154         T ln_two();
+00155 
+00158         template <typename T>
+00159         T ln_ten();
+00160 
+00163         template <typename T>
+00164         T ln_ln_two();
+00165 
+00168         template <typename T>
+00169         T third();
+00170 
+00173         template <typename T>
+00174         T two_thirds();
+00175 
+00178         template <typename T>
+00179         T golden_ratio();
+00180 
+00182 } //namespace glm
+00183 
+00184 #include "constants.inl"
+00185 
+00186 #endif//GLM_GTX_constants
+
+
+ + + + + + diff --git a/doc/api/a00018.html b/doc/api/a00018.html new file mode 100644 index 00000000..e8a88eab --- /dev/null +++ b/doc/api/a00018.html @@ -0,0 +1,92 @@ + + + + + +epsilon.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
epsilon.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename genTypeT , typename genTypeU >
bool equalEpsilon (genTypeT const &x, genTypeT const &y, genTypeU const &epsilon)
template<typename genTypeT , typename genTypeU >
bool notEqualEpsilon (genTypeT const &x, genTypeT const &y, genTypeU const &epsilon)
+

Detailed Description

+

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.

+

GLM_GTX_epsilon: Epsilon comparison

+
Date:
2007-05-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_half_float: Half-precision floating-point based types and functions (dependence)
+
+GLM_GTC_quaternion: Quaternion types and functions (dependence)
+ +

Definition in file epsilon.hpp.

+
+ + + + + + diff --git a/doc/api/a00018_source.html b/doc/api/a00018_source.html new file mode 100644 index 00000000..65b303ca --- /dev/null +++ b/doc/api/a00018_source.html @@ -0,0 +1,136 @@ + + + + + +epsilon.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
epsilon.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 #ifndef GLM_GTX_epsilon
+00041 #define GLM_GTX_epsilon GLM_VERSION
+00042 
+00043 // Dependency:
+00044 #include "../glm.hpp"
+00045 #include "../gtc/half_float.hpp"
+00046 #include "../gtc/quaternion.hpp"
+00047 
+00048 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00049 #       pragma message("GLM: GLM_GTX_epsilon extension included")
+00050 #endif
+00051 
+00052 namespace glm
+00053 {
+00056 
+00059         template <typename genTypeT, typename genTypeU> 
+00060         bool equalEpsilon(
+00061                 genTypeT const & x, 
+00062                 genTypeT const & y, 
+00063                 genTypeU const & epsilon);
+00064                 
+00067         template <typename genTypeT, typename genTypeU>
+00068         bool notEqualEpsilon(
+00069                 genTypeT const & x, 
+00070                 genTypeT const & y, 
+00071                 genTypeU const & epsilon);
+00072 
+00074 }//namespace glm
+00075 
+00076 #include "epsilon.inl"
+00077 
+00078 #endif//GLM_GTX_epsilon
+
+
+ + + + + + diff --git a/doc/api/a00019.html b/doc/api/a00019.html new file mode 100644 index 00000000..f4625c10 --- /dev/null +++ b/doc/api/a00019.html @@ -0,0 +1,116 @@ + + + + + +euler_angles.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
euler_angles.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename valType >
detail::tmat4x4< valType > eulerAngleX (valType const &angleX)
template<typename valType >
detail::tmat4x4< valType > eulerAngleXY (valType const &angleX, valType const &angleY)
template<typename valType >
detail::tmat4x4< valType > eulerAngleXZ (valType const &angleX, valType const &angleZ)
template<typename valType >
detail::tmat4x4< valType > eulerAngleY (valType const &angleY)
template<typename valType >
detail::tmat4x4< valType > eulerAngleYX (valType const &angleY, valType const &angleX)
template<typename valType >
detail::tmat4x4< valType > eulerAngleYXZ (valType const &yaw, valType const &pitch, valType const &roll)
template<typename valType >
detail::tmat4x4< valType > eulerAngleYZ (valType const &angleY, valType const &angleZ)
template<typename valType >
detail::tmat4x4< valType > eulerAngleZ (valType const &angleZ)
template<typename valType >
detail::tmat4x4< valType > eulerAngleZX (valType const &angleZ, valType const &angleX)
template<typename valType >
detail::tmat4x4< valType > eulerAngleZY (valType const &angleZ, valType const &angleY)
template<typename T >
detail::tmat2x2< T > orientate2 (T const &angle)
template<typename T >
detail::tmat3x3< T > orientate3 (T const &angle)
template<typename T >
detail::tmat3x3< T > orientate3 (detail::tvec3< T > const &angles)
template<typename T >
detail::tmat4x4< T > orientate4 (detail::tvec3< T > const &angles)
template<typename valType >
detail::tmat4x4< valType > yawPitchRoll (valType const &yaw, valType const &pitch, valType const &roll)
+

Detailed Description

+

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.

+

GLM_GTX_euler_angles: Matrix from euler angles

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_half_float: Half-precision floating-point based types and functions (dependence)
+ +

Definition in file euler_angles.hpp.

+
+ + + + + + diff --git a/doc/api/a00019_source.html b/doc/api/a00019_source.html new file mode 100644 index 00000000..40bbcc1d --- /dev/null +++ b/doc/api/a00019_source.html @@ -0,0 +1,188 @@ + + + + + +euler_angles.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
euler_angles.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_euler_angles
+00040 #define GLM_GTX_euler_angles GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtc/half_float.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_euler_angles extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename valType> 
+00058         detail::tmat4x4<valType> eulerAngleX(
+00059                 valType const & angleX);
+00060 
+00063         template <typename valType> 
+00064         detail::tmat4x4<valType> eulerAngleY(
+00065                 valType const & angleY);
+00066 
+00069         template <typename valType> 
+00070         detail::tmat4x4<valType> eulerAngleZ(
+00071                 valType const & angleZ);
+00072 
+00075         template <typename valType> 
+00076         detail::tmat4x4<valType> eulerAngleXY(
+00077                 valType const & angleX, 
+00078                 valType const & angleY);
+00079 
+00082         template <typename valType> 
+00083         detail::tmat4x4<valType> eulerAngleYX(
+00084                 valType const & angleY, 
+00085                 valType const & angleX);
+00086 
+00089         template <typename valType> 
+00090         detail::tmat4x4<valType> eulerAngleXZ(
+00091                 valType const & angleX, 
+00092                 valType const & angleZ);
+00093 
+00096         template <typename valType> 
+00097         detail::tmat4x4<valType> eulerAngleZX(
+00098                 valType const & angleZ, 
+00099                 valType const & angleX);
+00100 
+00103         template <typename valType> 
+00104         detail::tmat4x4<valType> eulerAngleYZ(
+00105                 valType const & angleY, 
+00106                 valType const & angleZ);
+00107 
+00110         template <typename valType> 
+00111         detail::tmat4x4<valType> eulerAngleZY(
+00112                 valType const & angleZ, 
+00113                 valType const & angleY);
+00114 
+00117         template <typename valType> 
+00118         detail::tmat4x4<valType> eulerAngleYXZ(
+00119                 valType const & yaw, 
+00120                 valType const & pitch, 
+00121                 valType const & roll);
+00122 
+00125         template <typename valType> 
+00126         detail::tmat4x4<valType> yawPitchRoll(
+00127                 valType const & yaw, 
+00128                 valType const & pitch, 
+00129                 valType const & roll);
+00130 
+00133         template <typename T> 
+00134         detail::tmat2x2<T> orientate2(T const & angle);
+00135 
+00138         template <typename T> 
+00139         detail::tmat3x3<T> orientate3(T const & angle);
+00140 
+00143         template <typename T> 
+00144         detail::tmat3x3<T> orientate3(detail::tvec3<T> const & angles);
+00145                 
+00148         template <typename T> 
+00149         detail::tmat4x4<T> orientate4(detail::tvec3<T> const & angles);
+00150 
+00152 }//namespace glm
+00153 
+00154 #include "euler_angles.inl"
+00155 
+00156 #endif//GLM_GTX_euler_angles
+
+
+ + + + + + diff --git a/doc/api/a00020_source.html b/doc/api/a00020_source.html new file mode 100644 index 00000000..1d921735 --- /dev/null +++ b/doc/api/a00020_source.html @@ -0,0 +1,209 @@ + + + + + +ext.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
ext.hpp
+
+
+
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 
+00041 
+00042 
+00043 
+00044 
+00045 
+00046 
+00047 
+00048 
+00049 
+00050 
+00051 
+00052 
+00053 
+00054 
+00055 
+00056 
+00057 
+00058 #ifndef glm_ext
+00059 #define glm_ext
+00060 
+00061 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED))
+00062 #       define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED
+00063 #       pragma message("GLM: All extensions included (not recommanded)")
+00064 #endif//GLM_MESSAGES
+00065 
+00066 #include "./gtc/half_float.hpp"
+00067 #include "./gtc/matrix_access.hpp"
+00068 #include "./gtc/matrix_integer.hpp"
+00069 #include "./gtc/matrix_inverse.hpp"
+00070 #include "./gtc/matrix_transform.hpp"
+00071 #include "./gtc/quaternion.hpp"
+00072 #include "./gtc/swizzle.hpp"
+00073 #include "./gtc/type_precision.hpp"
+00074 #include "./gtc/type_ptr.hpp"
+00075 
+00076 #include "./gtx/associated_min_max.hpp"
+00077 #include "./gtx/bit.hpp"
+00078 #include "./gtx/closest_point.hpp"
+00079 #include "./gtx/color_cast.hpp"
+00080 #include "./gtx/color_space.hpp"
+00081 #include "./gtx/color_space_YCoCg.hpp"
+00082 #include "./gtx/compatibility.hpp"
+00083 #include "./gtx/component_wise.hpp"
+00084 #include "./gtx/epsilon.hpp"
+00085 #include "./gtx/euler_angles.hpp"
+00086 #include "./gtx/extend.hpp"
+00087 #include "./gtx/extented_min_max.hpp"
+00088 #include "./gtx/fast_exponential.hpp"
+00089 #include "./gtx/fast_square_root.hpp"
+00090 #include "./gtx/fast_trigonometry.hpp"
+00091 #include "./gtx/gradient_paint.hpp"
+00092 #include "./gtx/handed_coordinate_space.hpp"
+00093 #include "./gtx/inertia.hpp"
+00094 #include "./gtx/int_10_10_10_2.hpp"
+00095 #include "./gtx/integer.hpp"
+00096 #include "./gtx/intersect.hpp"
+00097 #include "./gtx/log_base.hpp"
+00098 #include "./gtx/matrix_cross_product.hpp"
+00099 #include "./gtx/matrix_interpolation.hpp"
+00100 #include "./gtx/matrix_major_storage.hpp"
+00101 #include "./gtx/matrix_operation.hpp"
+00102 #include "./gtx/matrix_query.hpp"
+00103 #include "./gtx/mixed_product.hpp"
+00104 #include "./gtx/multiple.hpp"
+00105 #include "./gtx/noise.hpp"
+00106 #include "./gtx/norm.hpp"
+00107 #include "./gtx/normal.hpp"
+00108 #include "./gtx/normalize_dot.hpp"
+00109 #include "./gtx/number_precision.hpp"
+00110 #include "./gtx/ocl_type.hpp"
+00111 #include "./gtx/optimum_pow.hpp"
+00112 #include "./gtx/orthonormalize.hpp"
+00113 #include "./gtx/perpendicular.hpp"
+00114 #include "./gtx/polar_coordinates.hpp"
+00115 #include "./gtx/projection.hpp"
+00116 #include "./gtx/quaternion.hpp"
+00117 #include "./gtx/random.hpp"
+00118 #include "./gtx/raw_data.hpp"
+00119 #include "./gtx/reciprocal.hpp"
+00120 #include "./gtx/rotate_vector.hpp"
+00121 #include "./gtx/spline.hpp"
+00122 #include "./gtx/std_based_type.hpp"
+00123 #include "./gtx/string_cast.hpp"
+00124 #include "./gtx/transform.hpp"
+00125 #include "./gtx/transform2.hpp"
+00126 #include "./gtx/ulp.hpp"
+00127 #include "./gtx/vec1.hpp"
+00128 #include "./gtx/vector_access.hpp"
+00129 #include "./gtx/vector_angle.hpp"
+00130 #include "./gtx/vector_query.hpp"
+00131 #include "./gtx/verbose_operator.hpp"
+00132 #include "./gtx/wrap.hpp"
+00133 
+00134 #if(GLM_ARCH & GLM_ARCH_SSE2)
+00135 #       include "./gtx/simd_vec4.hpp"
+00136 #       include "./gtx/simd_mat4.hpp"
+00137 #endif
+00138 
+00139 #include "./virtrev/xstream.hpp"
+00140 
+00141 //const float goldenRatio = 1.618033988749894848f;
+00142 //const float pi = 3.141592653589793238f;
+00143 
+00144 #endif //glm_ext
+
+
+ + + + + + diff --git a/doc/api/a00021.html b/doc/api/a00021.html new file mode 100644 index 00000000..446a15ff --- /dev/null +++ b/doc/api/a00021.html @@ -0,0 +1,86 @@ + + + + + +extend.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
extend.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

template<typename genType >
genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
+

Detailed Description

+

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.

+

GLM_GTX_extend: Position extending

+
Date:
2006-01-07 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file extend.hpp.

+
+ + + + + + diff --git a/doc/api/a00021_source.html b/doc/api/a00021_source.html new file mode 100644 index 00000000..c5be2e85 --- /dev/null +++ b/doc/api/a00021_source.html @@ -0,0 +1,126 @@ + + + + + +extend.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
extend.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_extend
+00039 #define GLM_GTX_extend GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_extend extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename genType> 
+00056         genType extend(
+00057                 genType const & Origin, 
+00058                 genType const & Source, 
+00059                 typename genType::value_type const Length);
+00060 
+00062 }//namespace glm
+00063 
+00064 #include "extend.inl"
+00065 
+00066 #endif//GLM_GTX_extend
+
+
+ + + + + + diff --git a/doc/api/a00022.html b/doc/api/a00022.html new file mode 100644 index 00000000..f8dfba18 --- /dev/null +++ b/doc/api/a00022.html @@ -0,0 +1,110 @@ + + + + + +extented_min_max.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
extented_min_max.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
max (T const &x, T const &y, T const &z)
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, typename C< T >::value_type const &y, typename C< T >::value_type const &z)
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, C< T > const &y, C< T > const &z)
template<typename T >
max (T const &x, T const &y, T const &z, T const &w)
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, typename C< T >::value_type const &y, typename C< T >::value_type const &z, typename C< T >::value_type const &w)
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
template<typename T >
min (T const &x, T const &y, T const &z)
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, typename C< T >::value_type const &y, typename C< T >::value_type const &z)
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, C< T > const &y, C< T > const &z)
template<typename T >
min (T const &x, T const &y, T const &z, T const &w)
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, typename C< T >::value_type const &y, typename C< T >::value_type const &z, typename C< T >::value_type const &w)
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
+

Detailed Description

+

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.

+

GLM_GTX_extented_min_max: Extended min max

+
Date:
2007-03-14 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+gtx_half_float (dependence)
+ +

Definition in file extented_min_max.hpp.

+
+ + + + + + diff --git a/doc/api/a00022_source.html b/doc/api/a00022_source.html new file mode 100644 index 00000000..8beb4a4d --- /dev/null +++ b/doc/api/a00022_source.html @@ -0,0 +1,232 @@ + + + + + +extented_min_max.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
extented_min_max.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_extented_min_max
+00040 #define GLM_GTX_extented_min_max GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtc/half_float.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_extented_min_max extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename T>
+00058         T min(
+00059                 T const & x, 
+00060                 T const & y, 
+00061                 T const & z);
+00062 
+00065         template 
+00066         <
+00067                 typename T, 
+00068                 template <typename> class C
+00069         >
+00070         C<T> min(
+00071                 C<T> const & x, 
+00072                 typename C<T>::value_type const & y, 
+00073                 typename C<T>::value_type const & z);
+00074 
+00077         template 
+00078         <
+00079                 typename T, 
+00080                 template <typename> class C
+00081         >
+00082         C<T> min(
+00083                 C<T> const & x, 
+00084                 C<T> const & y, 
+00085                 C<T> const & z);
+00086 
+00089         template <typename T>
+00090         T min(
+00091                 T const & x, 
+00092                 T const & y, 
+00093                 T const & z, 
+00094                 T const & w);
+00095 
+00098         template 
+00099         <
+00100                 typename T, 
+00101                 template <typename> class C
+00102         >
+00103         C<T> min(
+00104                 C<T> const & x, 
+00105                 typename C<T>::value_type const & y, 
+00106                 typename C<T>::value_type const & z, 
+00107                 typename C<T>::value_type const & w);
+00108 
+00111         template 
+00112         <
+00113                 typename T, 
+00114                 template <typename> class C
+00115         >
+00116         C<T> min(
+00117                 C<T> const & x, 
+00118                 C<T> const & y, 
+00119                 C<T> const & z,
+00120                 C<T> const & w);
+00121 
+00124         template <typename T>
+00125         T max(
+00126                 T const & x, 
+00127                 T const & y, 
+00128                 T const & z);
+00129 
+00132         template 
+00133         <
+00134                 typename T, 
+00135                 template <typename> class C
+00136         >
+00137         C<T> max(
+00138                 C<T> const & x, 
+00139                 typename C<T>::value_type const & y, 
+00140                 typename C<T>::value_type const & z);
+00141 
+00144         template 
+00145         <
+00146                 typename T, 
+00147                 template <typename> class C
+00148         >
+00149         C<T> max(
+00150                 C<T> const & x, 
+00151                 C<T> const & y, 
+00152                 C<T> const & z);
+00153 
+00156         template <typename T>
+00157         T max(
+00158                 T const & x, 
+00159                 T const & y, 
+00160                 T const & z, 
+00161                 T const & w);
+00162 
+00165         template 
+00166         <
+00167                 typename T, 
+00168                 template <typename> class C
+00169         >
+00170         C<T> max(
+00171                 C<T> const & x, 
+00172                 typename C<T>::value_type const & y, 
+00173                 typename C<T>::value_type const & z, 
+00174                 typename C<T>::value_type const & w);
+00175 
+00178         template 
+00179         <
+00180                 typename T, 
+00181                 template <typename> class C
+00182         >
+00183         C<T> max(
+00184                 C<T> const & x, 
+00185                 C<T> const & y, 
+00186                 C<T> const & z, 
+00187                 C<T> const & w);
+00188 
+00190 }//namespace glm
+00191 
+00192 #include "extented_min_max.inl"
+00193 
+00194 #endif//GLM_GTX_extented_min_max
+
+
+ + + + + + diff --git a/doc/api/a00023.html b/doc/api/a00023.html new file mode 100644 index 00000000..bbd81932 --- /dev/null +++ b/doc/api/a00023.html @@ -0,0 +1,100 @@ + + + + + +fast_exponential.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
fast_exponential.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + +

+Functions

template<typename T >
fastExp (const T &x)
template<typename T >
fastExp2 (const T &x)
template<typename T >
fastLn (const T &x)
template<typename T >
fastLog (const T &x)
template<typename T >
fastLog2 (const T &x)
template<typename genType >
genType fastPow (genType const &x, genType const &y)
template<typename genTypeT , typename genTypeU >
genTypeT fastPow (genTypeT const &x, genTypeU const &y)
+

Detailed Description

+

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.

+

GLM_GTX_fast_exponential: Fast exponentiation functions

+
Date:
2006-01-09 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+gtx_half_float (dependence)
+ +

Definition in file fast_exponential.hpp.

+
+ + + + + + diff --git a/doc/api/a00023_source.html b/doc/api/a00023_source.html new file mode 100644 index 00000000..cdf97caa --- /dev/null +++ b/doc/api/a00023_source.html @@ -0,0 +1,147 @@ + + + + + +fast_exponential.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
fast_exponential.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_fast_exponential
+00040 #define GLM_GTX_fast_exponential GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtc/half_float.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_fast_exponential extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename genType> 
+00058         genType fastPow(
+00059                 genType const & x, 
+00060                 genType const & y);
+00061 
+00064         template <typename genTypeT, typename genTypeU> 
+00065         genTypeT fastPow(
+00066                 genTypeT const & x, 
+00067                 genTypeU const & y);
+00068                 
+00071         template <typename T> 
+00072         T fastExp(const T& x);
+00073                 
+00076         template <typename T> 
+00077         T fastLog(const T& x);
+00078 
+00081         template <typename T> 
+00082         T fastExp2(const T& x);
+00083                 
+00086         template <typename T> 
+00087         T fastLog2(const T& x);
+00088 
+00091         template <typename T> 
+00092         T fastLn(const T& x);
+00093 
+00095 }//namespace glm
+00096 
+00097 #include "fast_exponential.inl"
+00098 
+00099 #endif//GLM_GTX_fast_exponential
+
+
+ + + + + + diff --git a/doc/api/a00024.html b/doc/api/a00024.html new file mode 100644 index 00000000..6bd281ee --- /dev/null +++ b/doc/api/a00024.html @@ -0,0 +1,94 @@ + + + + + +fast_square_root.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
fast_square_root.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + +

+Functions

template<typename genType >
genType::value_type fastDistance (genType const &x, genType const &y)
template<typename genType >
genType fastInverseSqrt (genType const &x)
template<typename genType >
genType::value_type fastLength (genType const &x)
template<typename genType >
genType fastNormalize (genType const &x)
template<typename genType >
genType fastSqrt (genType const &x)
+

Detailed Description

+

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.

+

GLM_GTX_fast_square_root: Fast square root functions

+
Date:
2006-01-04 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file fast_square_root.hpp.

+
+ + + + + + diff --git a/doc/api/a00024_source.html b/doc/api/a00024_source.html new file mode 100644 index 00000000..388bcd16 --- /dev/null +++ b/doc/api/a00024_source.html @@ -0,0 +1,137 @@ + + + + + +fast_square_root.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
fast_square_root.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 #ifndef GLM_GTX_fast_square_root
+00041 #define GLM_GTX_fast_square_root GLM_VERSION
+00042 
+00043 // Dependency:
+00044 #include "../glm.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_fast_square_root extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename genType> 
+00058         genType fastSqrt(genType const & x);
+00059 
+00062         template <typename genType> 
+00063         genType fastInverseSqrt(genType const & x);
+00064                 
+00067         template <typename genType> 
+00068         typename genType::value_type fastLength(genType const & x);
+00069 
+00072         template <typename genType> 
+00073         typename genType::value_type fastDistance(genType const & x, genType const & y);
+00074 
+00077         template <typename genType> 
+00078         genType fastNormalize(genType const & x);
+00079 
+00081 }// namespace glm
+00082 
+00083 #include "fast_square_root.inl"
+00084 
+00085 #endif//GLM_GTX_fast_square_root
+
+
+ + + + + + diff --git a/doc/api/a00025.html b/doc/api/a00025.html new file mode 100644 index 00000000..502b92c6 --- /dev/null +++ b/doc/api/a00025.html @@ -0,0 +1,98 @@ + + + + + +fast_trigonometry.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
fast_trigonometry.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + +

+Functions

template<typename T >
fastAcos (const T &angle)
template<typename T >
fastAsin (const T &angle)
template<typename T >
fastAtan (const T &y, const T &x)
template<typename T >
fastAtan (const T &angle)
template<typename T >
fastCos (const T &angle)
template<typename T >
fastSin (const T &angle)
template<typename T >
fastTan (const T &angle)
+

Detailed Description

+

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.

+

GLM_GTX_fast_trigonometry: Fast trigonometric functions

+
Date:
2006-01-08 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file fast_trigonometry.hpp.

+
+ + + + + + diff --git a/doc/api/a00025_source.html b/doc/api/a00025_source.html new file mode 100644 index 00000000..8ae18def --- /dev/null +++ b/doc/api/a00025_source.html @@ -0,0 +1,141 @@ + + + + + +fast_trigonometry.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
fast_trigonometry.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_fast_trigonometry
+00039 #define GLM_GTX_fast_trigonometry GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_fast_trigonometry extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00056     template <typename T> 
+00057         T fastSin(const T& angle);
+00058 
+00062         template <typename T> 
+00063         T fastCos(const T& angle);
+00064 
+00068         template <typename T> 
+00069         T fastTan(const T& angle);
+00070 
+00074         template <typename T> 
+00075         T fastAsin(const T& angle);
+00076 
+00080     template <typename T> 
+00081         T fastAcos(const T& angle);
+00082 
+00086         template <typename T> 
+00087         T fastAtan(const T& y, const T& x);
+00088 
+00092     template <typename T> 
+00093         T fastAtan(const T& angle);
+00094 
+00096 }//namespace glm
+00097 
+00098 #include "fast_trigonometry.inl"
+00099 
+00100 #endif//GLM_GTX_fast_trigonometry
+
+
+ + + + + + diff --git a/doc/api/a00026.html b/doc/api/a00026.html new file mode 100644 index 00000000..943f046a --- /dev/null +++ b/doc/api/a00026.html @@ -0,0 +1,136 @@ + + + + + +func_common.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
func_common.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
genType abs (genType const &x)
template<typename genType >
genType ceil (genType const &x)
template<typename genType >
genType clamp (genType const &x, genType const &minVal, genType const &maxVal)
template<typename genType , typename genIType >
genIType floatBitsToInt (genType const &value)
template<typename genType , typename genUType >
genUType floatBitsToUint (genType const &value)
template<typename genType >
genType floor (genType const &x)
template<typename genType >
genType fma (genType const &a, genType const &b, genType const &c)
template<typename genType >
genType fract (genType const &x)
template<typename genType , typename genIType >
genType frexp (genType const &x, genIType &exp)
template<typename genType , typename genIType >
genType intBitsToFloat (genIType const &value)
template<typename genType >
genType::bool_type isinf (genType const &x)
template<typename genType >
genType::bool_type isnan (genType const &x)
template<typename genType , typename genIType >
genType ldexp (genType const &x, genIType const &exp)
template<typename genType >
genType max (genType const &x, genType const &y)
template<typename genType >
genType min (genType const &x, genType const &y)
template<typename genTypeT , typename genTypeU >
genTypeT mix (genTypeT const &x, genTypeT const &y, genTypeU const &a)
template<typename genType >
genType mod (genType const &x, genType const &y)
template<typename genType >
genType mod (genType const &x, typename genType::value_type const &y)
template<typename genType >
genType modf (genType const &x, genType &i)
template<typename genType >
genType round (genType const &x)
template<typename genType >
genType roundEven (genType const &x)
template<typename genType >
genType sign (genType const &x)
template<typename genType >
genType smoothstep (genType const &edge0, genType const &edge1, genType const &x)
template<typename genType >
genType step (genType const &edge, genType const &x)
template<typename genType >
genType trunc (genType const &x)
template<typename genType , typename genUType >
genType uintBitsToFloat (genUType const &value)
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-03-08 / 2010-01-26
+
Author:
Christophe Riccio
+
See also:
GLSL 4.20.8 specification, section 8.3 Common Functions
+ +

Definition in file func_common.hpp.

+
+ + + + + + diff --git a/doc/api/a00026_source.html b/doc/api/a00026_source.html new file mode 100644 index 00000000..7cfaf113 --- /dev/null +++ b/doc/api/a00026_source.html @@ -0,0 +1,236 @@ + + + + + +func_common.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
func_common.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 #ifndef GLM_CORE_func_common
+00037 #define GLM_CORE_func_common GLM_VERSION
+00038 
+00039 #include "_fixes.hpp"
+00040 
+00041 namespace glm
+00042 {
+00045 
+00052     template <typename genType> 
+00053         genType abs(genType const & x);
+00054 
+00061         template <typename genType> 
+00062         genType sign(genType const & x);
+00063 
+00070         template <typename genType> 
+00071         genType floor(genType const & x);
+00072 
+00080         template <typename genType> 
+00081         genType trunc(genType const & x);
+00082 
+00093         template <typename genType> 
+00094         genType round(genType const & x);
+00095 
+00105         template <typename genType> 
+00106         genType roundEven(genType const & x);
+00107 
+00115     template <typename genType> 
+00116         genType ceil(genType const & x);
+00117 
+00124     template <typename genType> 
+00125         genType fract(genType const & x);
+00126 
+00134     template <typename genType> 
+00135         genType mod(
+00136                 genType const & x, 
+00137                 genType const & y);
+00138 
+00146     template <typename genType> 
+00147         genType mod(
+00148                 genType const & x, 
+00149                 typename genType::value_type const & y);
+00150 
+00160         template <typename genType> 
+00161         genType modf(
+00162                 genType const & x, 
+00163                 genType & i);
+00164 
+00171         template <typename genType> 
+00172         genType min(
+00173                 genType const & x, 
+00174                 genType const & y);
+00175 
+00176         template <typename genType> 
+00177         genType min(
+00178                 genType const & x, 
+00179                 typename genType::value_type const & y);
+00180 
+00187         template <typename genType> 
+00188         genType max(
+00189                 genType const & x, 
+00190                 genType const & y);
+00191 
+00192         template <typename genType> 
+00193         genType max(
+00194                 genType const & x, 
+00195                 typename genType::value_type const & y);
+00196 
+00204         template <typename genType> 
+00205         genType clamp(
+00206                 genType const & x, 
+00207                 genType const & minVal, 
+00208                 genType const & maxVal); 
+00209 
+00210         template <typename genType> 
+00211         genType clamp(
+00212                 genType const & x, 
+00213                 typename genType::value_type const & minVal, 
+00214                 typename genType::value_type const & maxVal); 
+00215 
+00258         template <typename genTypeT, typename genTypeU> 
+00259         genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a);
+00260 
+00265         template <typename genType> 
+00266         genType step(
+00267                 genType const & edge, 
+00268                 genType const & x);
+00269 
+00270         template <typename genType> 
+00271         genType step(
+00272                 typename genType::value_type const & edge, 
+00273                 genType const & x);
+00274 
+00289         template <typename genType> 
+00290         genType smoothstep(
+00291                 genType const & edge0, 
+00292                 genType const & edge1, 
+00293                 genType const & x);
+00294 
+00295         template <typename genType> 
+00296         genType smoothstep(
+00297                 typename genType::value_type const & edge0, 
+00298                 typename genType::value_type const & edge1, 
+00299                 genType const & x);
+00300 
+00311         template <typename genType> 
+00312         typename genType::bool_type isnan(genType const & x);
+00313 
+00324         template <typename genType> 
+00325         typename genType::bool_type isinf(genType const & x);
+00326 
+00336         template <typename genType, typename genIType>
+00337         genIType floatBitsToInt(genType const & value);
+00338 
+00348         template <typename genType, typename genUType>
+00349         genUType floatBitsToUint(genType const & value);
+00350 
+00364         template <typename genType, typename genIType>
+00365         genType intBitsToFloat(genIType const & value);
+00366         
+00380     template <typename genType, typename genUType>
+00381     genType uintBitsToFloat(genUType const & value);
+00382         
+00389         template <typename genType>
+00390         genType fma(genType const & a, genType const & b, genType const & c);
+00391 
+00406         template <typename genType, typename genIType>
+00407         genType frexp(genType const & x, genIType & exp);
+00408 
+00420         template <typename genType, typename genIType>
+00421         genType ldexp(genType const & x, genIType const & exp);
+00422 
+00424 }//namespace glm
+00425 
+00426 #include "func_common.inl"
+00427 
+00428 #endif//GLM_CORE_func_common
+
+
+ + + + + + diff --git a/doc/api/a00027.html b/doc/api/a00027.html new file mode 100644 index 00000000..3749d0fe --- /dev/null +++ b/doc/api/a00027.html @@ -0,0 +1,98 @@ + + + + + +func_exponential.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
func_exponential.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
genType exp (genType const &x)
template<typename genType >
genType exp2 (genType const &x)
template<typename genType >
genType inversesqrt (genType const &x)
template<typename genType >
genType log (genType const &x)
template<typename genType >
genType log2 (genType const &x)
template<typename genType >
genType pow (genType const &x, genType const &y)
template<typename genType >
genType sqrt (genType const &x)
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-08 / 2011-06-14
+
Author:
Christophe Riccio
+
See also:
GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +

Definition in file func_exponential.hpp.

+
+ + + + + + diff --git a/doc/api/a00027_source.html b/doc/api/a00027_source.html new file mode 100644 index 00000000..b9f45f99 --- /dev/null +++ b/doc/api/a00027_source.html @@ -0,0 +1,132 @@ + + + + + +func_exponential.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
func_exponential.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 #ifndef glm_core_func_exponential
+00037 #define glm_core_func_exponential GLM_VERSION
+00038 
+00039 namespace glm
+00040 {
+00043 
+00052         template <typename genType> 
+00053         genType pow(genType const & x, genType const & y);
+00054 
+00062         template <typename genType> 
+00063         genType exp(genType const & x);
+00064 
+00074         template <typename genType> 
+00075         genType log(genType const & x);
+00076 
+00084         template <typename genType> 
+00085         genType exp2(genType const & x);
+00086 
+00095         template <typename genType> 
+00096         genType log2(genType const & x);
+00097 
+00105         template <typename genType> 
+00106         genType sqrt(genType const & x);
+00107     
+00115         template <typename genType> 
+00116         genType inversesqrt(genType const & x);
+00117 
+00119 }//namespace glm
+00120 
+00121 #include "func_exponential.inl"
+00122 
+00123 #endif//glm_core_func_exponential
+
+
+ + + + + + diff --git a/doc/api/a00028.html b/doc/api/a00028.html new file mode 100644 index 00000000..4fbf030d --- /dev/null +++ b/doc/api/a00028.html @@ -0,0 +1,100 @@ + + + + + +func_geometric.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
func_geometric.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename valType >
detail::tvec3< valType > cross (detail::tvec3< valType > const &x, detail::tvec3< valType > const &y)
template<typename genType >
genType::value_type distance (genType const &p0, genType const &p1)
template<typename genType >
genType::value_type dot (genType const &x, genType const &y)
template<typename genType >
genType faceforward (genType const &N, genType const &I, genType const &Nref)
template<typename genType >
genType::value_type length (genType const &x)
template<typename genType >
genType normalize (genType const &x)
template<typename genType >
genType reflect (genType const &I, genType const &N)
template<typename genType >
genType refract (genType const &I, genType const &N, typename genType::value_type const &eta)
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-03 / 2011-06-14
+
Author:
Christophe Riccio
+
See also:
GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +

Definition in file func_geometric.hpp.

+
+ + + + + + diff --git a/doc/api/a00028_source.html b/doc/api/a00028_source.html new file mode 100644 index 00000000..d3e40858 --- /dev/null +++ b/doc/api/a00028_source.html @@ -0,0 +1,151 @@ + + + + + +func_geometric.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
func_geometric.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 #ifndef glm_core_func_geometric
+00037 #define glm_core_func_geometric GLM_VERSION
+00038 
+00039 namespace glm
+00040 {
+00043 
+00050         template <typename genType> 
+00051         typename genType::value_type length(
+00052                 genType const & x); 
+00053 
+00060         template <typename genType> 
+00061         typename genType::value_type distance(
+00062                 genType const & p0, 
+00063                 genType const & p1);
+00064 
+00071     template <typename genType> 
+00072         typename genType::value_type dot(
+00073                 genType const & x, 
+00074                 genType const & y);
+00075 
+00082     template <typename valType> 
+00083         detail::tvec3<valType> cross(
+00084                 detail::tvec3<valType> const & x, 
+00085                 detail::tvec3<valType> const & y);
+00086 
+00091         template <typename genType> 
+00092         genType normalize(
+00093                 genType const & x);
+00094 
+00101     template <typename genType> 
+00102         genType faceforward(
+00103                 genType const & N, 
+00104                 genType const & I, 
+00105                 genType const & Nref);
+00106   
+00114     template <typename genType> 
+00115         genType reflect(
+00116                 genType const & I, 
+00117                 genType const & N);
+00118   
+00127     template <typename genType> 
+00128         genType refract(
+00129                 genType const & I, 
+00130                 genType const & N, 
+00131                 typename genType::value_type const & eta);
+00132 
+00134 }//namespace glm
+00135 
+00136 #include "func_geometric.inl"
+00137 
+00138 #endif//glm_core_func_geometric
+
+
+ + + + + + diff --git a/doc/api/a00029.html b/doc/api/a00029.html new file mode 100644 index 00000000..2caa64cc --- /dev/null +++ b/doc/api/a00029.html @@ -0,0 +1,104 @@ + + + + + +func_integer.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
func_integer.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , template< typename > class genIUType>
genIUType< T >::signed_type bitCount (genIUType< T > const &Value)
template<typename genIUType >
genIUType bitfieldExtract (genIUType const &Value, int const &Offset, int const &Bits)
template<typename genIUType >
genIUType bitfieldInsert (genIUType const &Base, genIUType const &Insert, int const &Offset, int const &Bits)
template<typename genIUType >
genIUType bitfieldReverse (genIUType const &value)
template<typename T , template< typename > class genIUType>
genIUType< T >::signed_type findLSB (genIUType< T > const &Value)
template<typename T , template< typename > class genIUType>
genIUType< T >::signed_type findMSB (genIUType< T > const &Value)
template<typename genIType >
void imulExtended (genIType const &x, genIType const &y, genIType &msb, genIType &lsb)
template<typename genUType >
genUType uaddCarry (genUType const &x, genUType const &y, genUType &carry)
template<typename genUType >
void umulExtended (genUType const &x, genUType const &y, genUType &msb, genUType &lsb)
template<typename genUType >
genUType usubBorrow (genUType const &x, genUType const &y, genUType &borrow)
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2010-03-17 / 2011-06-18
+
Author:
Christophe Riccio
+
See also:
GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +

Definition in file func_integer.hpp.

+
+ + + + + + diff --git a/doc/api/a00029_source.html b/doc/api/a00029_source.html new file mode 100644 index 00000000..651d2757 --- /dev/null +++ b/doc/api/a00029_source.html @@ -0,0 +1,165 @@ + + + + + +func_integer.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
func_integer.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef glm_core_func_integer
+00039 #define glm_core_func_integer GLM_VERSION
+00040 
+00041 namespace glm
+00042 {
+00045 
+00054         template <typename genUType>
+00055         genUType uaddCarry(
+00056                 genUType const & x, 
+00057                 genUType const & y, 
+00058                 genUType & carry);
+00059 
+00068         template <typename genUType>
+00069         genUType usubBorrow(
+00070                 genUType const & x, 
+00071                 genUType const & y, 
+00072                 genUType & borrow);
+00073                 
+00082         template <typename genUType>
+00083         void umulExtended(
+00084                 genUType const & x, 
+00085                 genUType const & y, 
+00086                 genUType & msb, 
+00087                 genUType & lsb);
+00088                 
+00097         template <typename genIType>
+00098         void imulExtended(
+00099                 genIType const & x, 
+00100                 genIType const & y, 
+00101                 genIType & msb, 
+00102                 genIType & lsb);
+00103 
+00119         template <typename genIUType>
+00120         genIUType bitfieldExtract(
+00121                 genIUType const & Value, 
+00122                 int const & Offset, 
+00123                 int const & Bits);
+00124 
+00139         template <typename genIUType>
+00140         genIUType bitfieldInsert(
+00141                 genIUType const & Base, 
+00142                 genIUType const & Insert, 
+00143                 int const & Offset, 
+00144                 int const & Bits);
+00145 
+00154         template <typename genIUType>
+00155         genIUType bitfieldReverse(genIUType const & value);
+00156                 
+00165         template <typename T, template <typename> class genIUType>
+00166         typename genIUType<T>::signed_type bitCount(genIUType<T> const & Value);
+00167 
+00178         template <typename T, template <typename> class genIUType>
+00179         typename genIUType<T>::signed_type findLSB(genIUType<T> const & Value);
+00180 
+00192         template <typename T, template <typename> class genIUType>
+00193         typename genIUType<T>::signed_type findMSB(genIUType<T> const & Value);
+00194 
+00196 }//namespace glm
+00197 
+00198 #include "func_integer.inl"
+00199 
+00200 #endif//glm_core_func_integer
+00201 
+
+
+ + + + + + diff --git a/doc/api/a00030.html b/doc/api/a00030.html new file mode 100644 index 00000000..772584db --- /dev/null +++ b/doc/api/a00030.html @@ -0,0 +1,105 @@ + + + + + +func_matrix.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
func_matrix.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename valType >
detail::tmat2x2< valType >
+::value_type 
determinant (detail::tmat2x2< valType > const &m)
template<typename valType >
detail::tmat3x3< valType >
+::value_type 
determinant (detail::tmat3x3< valType > const &m)
template<typename valType >
detail::tmat4x4< valType >
+::value_type 
determinant (detail::tmat4x4< valType > const &m)
template<typename valType >
detail::tmat2x2< valType > inverse (detail::tmat2x2< valType > const &m)
template<typename valType >
detail::tmat3x3< valType > inverse (detail::tmat3x3< valType > const &m)
template<typename valType >
detail::tmat4x4< valType > inverse (detail::tmat4x4< valType > const &m)
template<typename matType >
matType matrixCompMult (matType const &x, matType const &y)
template<typename vecType , typename matType >
matType outerProduct (vecType const &c, vecType const &r)
template<typename matType >
matType::transpose_type transpose (matType const &x)
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-03 / 2011-06-15
+
Author:
Christophe Riccio
+
See also:
GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +

Definition in file func_matrix.hpp.

+
+ + + + + + diff --git a/doc/api/a00030_source.html b/doc/api/a00030_source.html new file mode 100644 index 00000000..fdaa588b --- /dev/null +++ b/doc/api/a00030_source.html @@ -0,0 +1,153 @@ + + + + + +func_matrix.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
func_matrix.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 #ifndef GLM_CORE_func_matrix
+00041 #define GLM_CORE_func_matrix GLM_VERSION
+00042 
+00043 namespace glm
+00044 {
+00047 
+00055         template <typename matType> 
+00056         matType matrixCompMult(
+00057                 matType const & x, 
+00058                 matType const & y);
+00059 
+00070     template <typename vecType, typename matType> 
+00071         matType outerProduct(
+00072                 vecType const & c, 
+00073                 vecType const & r);
+00074 
+00081     template <typename matType> 
+00082         typename matType::transpose_type transpose(
+00083                 matType const & x);
+00084         
+00091         template <typename valType> 
+00092         typename detail::tmat2x2<valType>::value_type determinant(
+00093                 detail::tmat2x2<valType> const & m);
+00094 
+00101         template <typename valType> 
+00102         typename detail::tmat3x3<valType>::value_type determinant(
+00103                 detail::tmat3x3<valType> const & m);
+00104 
+00111     template <typename valType> 
+00112         typename detail::tmat4x4<valType>::value_type determinant(
+00113                 detail::tmat4x4<valType> const & m);
+00114 
+00121         template <typename valType> 
+00122         detail::tmat2x2<valType> inverse(
+00123                 detail::tmat2x2<valType> const & m);
+00124 
+00131         template <typename valType> 
+00132         detail::tmat3x3<valType> inverse(
+00133                 detail::tmat3x3<valType> const & m);
+00134 
+00141         template <typename valType> 
+00142         detail::tmat4x4<valType> inverse(
+00143                 detail::tmat4x4<valType> const & m);
+00144 
+00146 }//namespace glm
+00147 
+00148 #include "func_matrix.inl"
+00149 
+00150 #endif//GLM_CORE_func_matrix
+
+
+ + + + + + diff --git a/doc/api/a00031.html b/doc/api/a00031.html new file mode 100644 index 00000000..b743aa4a --- /dev/null +++ b/doc/api/a00031.html @@ -0,0 +1,95 @@ + + + + + +func_noise.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
func_noise.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename genType >
genType::value_type noise1 (genType const &x)
template<typename genType >
detail::tvec2< typename
+genType::value_type > 
noise2 (genType const &x)
template<typename genType >
detail::tvec3< typename
+genType::value_type > 
noise3 (genType const &x)
template<typename genType >
detail::tvec4< typename
+genType::value_type > 
noise4 (genType const &x)
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-01 / 2011-06-18
+
Author:
Christophe Riccio
+
See also:
GLSL 4.20.8 specification, section 8.13 Noise Functions
+ +

Definition in file func_noise.hpp.

+
+ + + + + + diff --git a/doc/api/a00031_source.html b/doc/api/a00031_source.html new file mode 100644 index 00000000..4e5ac590 --- /dev/null +++ b/doc/api/a00031_source.html @@ -0,0 +1,125 @@ + + + + + +func_noise.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
func_noise.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef glm_core_func_noise
+00039 #define glm_core_func_noise GLM_VERSION
+00040 
+00041 namespace glm
+00042 {
+00045 
+00052         template <typename genType>
+00053         typename genType::value_type noise1(genType const & x);
+00054 
+00061         template <typename genType>
+00062         detail::tvec2<typename genType::value_type> noise2(genType const & x);
+00063 
+00070         template <typename genType>
+00071         detail::tvec3<typename genType::value_type> noise3(genType const & x);
+00072 
+00079         template <typename genType>
+00080         detail::tvec4<typename genType::value_type> noise4(genType const & x);
+00081 
+00083 }//namespace glm
+00084 
+00085 #include "func_noise.inl"
+00086 
+00087 #endif//glm_core_func_noise
+
+
+ + + + + + diff --git a/doc/api/a00032.html b/doc/api/a00032.html new file mode 100644 index 00000000..50305fd0 --- /dev/null +++ b/doc/api/a00032.html @@ -0,0 +1,96 @@ + + + + + +func_packing.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
func_packing.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

double packDouble2x32 (detail::tvec2< detail::uint32 > const &v)
uint packHalf2x16 (vec2 const &v)
detail::uint32 packSnorm2x16 (detail::tvec2< detail::float32 > const &v)
detail::uint32 packSnorm4x8 (detail::tvec4< detail::float32 > const &v)
detail::uint32 packUnorm2x16 (detail::tvec2< detail::float32 > const &v)
detail::uint32 packUnorm4x8 (detail::tvec4< detail::float32 > const &v)
detail::tvec2< detail::uint32 > unpackDouble2x32 (double const &v)
vec2 unpackHalf2x16 (uint const &v)
detail::tvec2< detail::float32 > unpackSnorm2x16 (detail::uint32 const &p)
detail::tvec4< detail::float32 > unpackSnorm4x8 (detail::uint32 const &p)
detail::tvec2< detail::float32 > unpackUnorm2x16 (detail::uint32 const &p)
detail::tvec4< detail::float32 > unpackUnorm4x8 (detail::uint32 const &p)
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2010-03-17 / 2011-06-15
+
Author:
Christophe Riccio
+
See also:
GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +

Definition in file func_packing.hpp.

+
+ + + + + + diff --git a/doc/api/a00032_source.html b/doc/api/a00032_source.html new file mode 100644 index 00000000..055f52f8 --- /dev/null +++ b/doc/api/a00032_source.html @@ -0,0 +1,137 @@ + + + + + +func_packing.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
func_packing.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 #ifndef GLM_CORE_func_packing
+00037 #define GLM_CORE_func_packing GLM_VERSION
+00038 
+00039 namespace glm
+00040 {       
+00043 
+00055         detail::uint32 packUnorm2x16(detail::tvec2<detail::float32> const & v);
+00056 
+00068         detail::uint32 packSnorm2x16(detail::tvec2<detail::float32> const & v);
+00069         
+00081         detail::uint32 packUnorm4x8(detail::tvec4<detail::float32> const & v);
+00082         
+00094         detail::uint32 packSnorm4x8(detail::tvec4<detail::float32> const & v);
+00095 
+00107         detail::tvec2<detail::float32> unpackUnorm2x16(detail::uint32 const & p);
+00108 
+00120         detail::tvec2<detail::float32> unpackSnorm2x16(detail::uint32 const & p);
+00121         
+00133     detail::tvec4<detail::float32> unpackUnorm4x8(detail::uint32 const & p);
+00134         
+00146         detail::tvec4<detail::float32> unpackSnorm4x8(detail::uint32 const & p);
+00147 
+00156         double packDouble2x32(detail::tvec2<detail::uint32> const & v);
+00157         
+00165         detail::tvec2<detail::uint32> unpackDouble2x32(double const & v);
+00166 
+00167         
+00176         uint packHalf2x16(vec2 const & v);
+00177         
+00186         vec2 unpackHalf2x16(uint const & v);
+00187         
+00189 }//namespace glm
+00190 
+00191 #include "func_packing.inl"
+00192 
+00193 #endif//GLM_CORE_func_packing
+00194 
+
+
+ + + + + + diff --git a/doc/api/a00033.html b/doc/api/a00033.html new file mode 100644 index 00000000..17810bab --- /dev/null +++ b/doc/api/a00033.html @@ -0,0 +1,114 @@ + + + + + +func_trigonometric.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
func_trigonometric.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
genType acos (genType const &x)
template<typename genType >
genType acosh (genType const &x)
template<typename genType >
genType asin (genType const &x)
template<typename genType >
genType asinh (genType const &x)
template<typename genType >
genType atan (genType const &y, genType const &x)
template<typename genType >
genType atan (genType const &y_over_x)
template<typename genType >
genType atanh (genType const &x)
template<typename genType >
genType cos (genType const &angle)
template<typename genType >
genType cosh (genType const &angle)
template<typename genType >
genType degrees (genType const &radians)
template<typename genType >
genType radians (genType const &degrees)
template<typename genType >
genType sin (genType const &angle)
template<typename genType >
genType sinh (genType const &angle)
template<typename genType >
genType tan (genType const &angle)
template<typename genType >
genType tanh (genType const &angle)
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-01 / 2011-06-15
+
Author:
Christophe Riccio
+
See also:
GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +

Definition in file func_trigonometric.hpp.

+
+ + + + + + diff --git a/doc/api/a00033_source.html b/doc/api/a00033_source.html new file mode 100644 index 00000000..f54e8390 --- /dev/null +++ b/doc/api/a00033_source.html @@ -0,0 +1,162 @@ + + + + + +func_trigonometric.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
func_trigonometric.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 #ifndef GLM_CORE_func_trigonometric
+00041 #define GLM_CORE_func_trigonometric GLM_VERSION
+00042 
+00043 namespace glm
+00044 {
+00047 
+00054         template <typename genType> 
+00055         genType radians(genType const & degrees);
+00056 
+00063         template <typename genType> 
+00064         genType degrees(genType const & radians);
+00065 
+00073         template <typename genType> 
+00074         genType sin(genType const & angle);
+00075 
+00083         template <typename genType> 
+00084         genType cos(genType const & angle);
+00085 
+00092         template <typename genType> 
+00093         genType tan(genType const & angle); 
+00094 
+00103         template <typename genType> 
+00104         genType asin(genType const & x);
+00105 
+00114         template <typename genType> 
+00115         genType acos(genType const & x);
+00116 
+00127         template <typename genType> 
+00128         genType atan(genType const & y, genType const & x);
+00129 
+00137         template <typename genType> 
+00138         genType atan(genType const & y_over_x);
+00139 
+00146         template <typename genType> 
+00147         genType sinh(genType const & angle);
+00148 
+00155         template <typename genType> 
+00156         genType cosh(genType const & angle);
+00157 
+00164         template <typename genType> 
+00165         genType tanh(genType const & angle);
+00166 
+00173         template <typename genType> 
+00174         genType asinh(genType const & x);
+00175         
+00183         template <typename genType> 
+00184         genType acosh(genType const & x);
+00185 
+00193         template <typename genType> 
+00194         genType atanh(genType const & x);
+00195 
+00197 }//namespace glm
+00198 
+00199 #include "func_trigonometric.inl"
+00200 
+00201 #endif//GLM_CORE_func_trigonometric
+00202 
+00203 
+
+
+ + + + + + diff --git a/doc/api/a00034.html b/doc/api/a00034.html new file mode 100644 index 00000000..b5feca30 --- /dev/null +++ b/doc/api/a00034.html @@ -0,0 +1,102 @@ + + + + + +func_vector_relational.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
func_vector_relational.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<template< typename > class vecType>
bool all (vecType< bool > const &v)
template<template< typename > class vecType>
bool any (vecType< bool > const &v)
template<typename vecType >
vecType::bool_type equal (vecType const &x, vecType const &y)
template<typename vecType >
vecType::bool_type greaterThan (vecType const &x, vecType const &y)
template<typename vecType >
vecType::bool_type greaterThanEqual (vecType const &x, vecType const &y)
template<typename vecType >
vecType::bool_type lessThan (vecType const &x, vecType const &y)
template<typename vecType >
vecType::bool_type lessThanEqual (vecType const &x, vecType const &y)
template<template< typename > class vecType>
vecType< bool > not_ (vecType< bool > const &v)
template<typename vecType >
vecType::bool_type notEqual (vecType const &x, vecType const &y)
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-03 / 2011-06-15
+
Author:
Christophe Riccio
+
See also:
GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +

Definition in file func_vector_relational.hpp.

+
+ + + + + + diff --git a/doc/api/a00034_source.html b/doc/api/a00034_source.html new file mode 100644 index 00000000..9d3fec32 --- /dev/null +++ b/doc/api/a00034_source.html @@ -0,0 +1,145 @@ + + + + + +func_vector_relational.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
func_vector_relational.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 
+00041 #ifndef GLM_CORE_func_vector_relational
+00042 #define GLM_CORE_func_vector_relational GLM_VERSION
+00043 
+00044 #include "_detail.hpp"
+00045 
+00046 namespace glm
+00047 {
+00050 
+00057     template <typename vecType> 
+00058         typename vecType::bool_type lessThan(vecType const & x, vecType const & y);
+00059 
+00066         template <typename vecType> 
+00067         typename vecType::bool_type lessThanEqual(vecType const & x, vecType const & y);
+00068 
+00075         template <typename vecType> 
+00076         typename vecType::bool_type greaterThan(vecType const & x, vecType const & y);
+00077 
+00084         template <typename vecType> 
+00085         typename vecType::bool_type greaterThanEqual(vecType const & x, vecType const & y);
+00086 
+00093         template <typename vecType> 
+00094         typename vecType::bool_type equal(vecType const & x, vecType const & y);
+00095 
+00102         template <typename vecType> 
+00103         typename vecType::bool_type notEqual(vecType const & x, vecType const & y);
+00104 
+00111         template <template <typename> class vecType> 
+00112         bool any(vecType<bool> const & v);
+00113 
+00120         template <template <typename> class vecType> 
+00121         bool all(vecType<bool> const & v);
+00122 
+00130         template <template <typename> class vecType> 
+00131         vecType<bool> not_(vecType<bool> const & v);
+00132 
+00134 }//namespace glm
+00135 
+00136 #include "func_vector_relational.inl"
+00137 
+00138 #endif//GLM_CORE_func_vector_relational
+
+
+ + + + + + diff --git a/doc/api/a00035.html b/doc/api/a00035.html new file mode 100644 index 00000000..4f57c07a --- /dev/null +++ b/doc/api/a00035.html @@ -0,0 +1,83 @@ + + + + + +glm.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
glm.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+
Date:
2009-05-01 / 2011-05-16
+
Author:
Christophe Riccio
+

GLM Core (Dependence)

+

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.

+

GLM Core

+
Date:
2005-01-14 / 2011-10-24
+
Author:
Christophe Riccio
+ +

Definition in file glm.hpp.

+
+ + + + + + diff --git a/doc/api/a00035_source.html b/doc/api/a00035_source.html new file mode 100644 index 00000000..bedb4bfe --- /dev/null +++ b/doc/api/a00035_source.html @@ -0,0 +1,192 @@ + + + + + +glm.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
glm.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 
+00041 
+00042 
+00043 
+00044 
+00045 
+00046 
+00047 
+00048 
+00049 
+00050 
+00051 
+00052 
+00053 
+00054 
+00055 
+00056 
+00057 
+00058 
+00059 
+00060 
+00061 
+00062 
+00063 
+00064 
+00065 
+00066 
+00067 
+00068 
+00069 
+00070 
+00071 
+00072 
+00073 
+00074 
+00075 
+00076 
+00077 
+00078 #include "core/_fixes.hpp"
+00079 
+00080 #ifndef glm_glm
+00081 #define glm_glm
+00082 
+00083 #include <cmath>
+00084 #include <climits>
+00085 #include <cfloat>
+00086 #include <limits>
+00087 #include <cstdio>
+00088 //#include <type_traits>
+00089 #include "core/setup.hpp"
+00090 
+00091 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED))
+00092 #       define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED
+00093 #       pragma message("GLM: Core library included")
+00094 #endif//GLM_MESSAGE
+00095 
+00096 #include "./core/_detail.hpp"
+00097 #include "./core/type.hpp"
+00098 
+00099 #include "./core/func_trigonometric.hpp"
+00100 #include "./core/func_exponential.hpp"
+00101 #include "./core/func_common.hpp"
+00102 #include "./core/func_packing.hpp"
+00103 #include "./core/func_geometric.hpp"
+00104 #include "./core/func_matrix.hpp"
+00105 #include "./core/func_vector_relational.hpp"
+00106 #include "./core/func_integer.hpp"
+00107 #include "./core/func_noise.hpp"
+00108 #include "./core/_swizzle.hpp"
+00109 
+00111 // check type sizes
+00112 #ifndef GLM_STATIC_ASSERT_NULL
+00113         GLM_STATIC_ASSERT(sizeof(glm::detail::int8) == 1, "int8 size isn't 1 byte on this platform");
+00114         GLM_STATIC_ASSERT(sizeof(glm::detail::int16) == 2, "int16 size isn't 2 bytes on this platform");
+00115         GLM_STATIC_ASSERT(sizeof(glm::detail::int32) == 4, "int32 size isn't 4 bytes on this platform");
+00116         GLM_STATIC_ASSERT(sizeof(glm::detail::int64) == 8, "int64 size isn't 8 bytes on this platform");
+00117 
+00118         GLM_STATIC_ASSERT(sizeof(glm::detail::uint8) == 1, "uint8 size isn't 1 byte on this platform");
+00119         GLM_STATIC_ASSERT(sizeof(glm::detail::uint16) == 2, "uint16 size isn't 2 bytes on this platform");
+00120         GLM_STATIC_ASSERT(sizeof(glm::detail::uint32) == 4, "uint32 size isn't 4 bytes on this platform");
+00121         GLM_STATIC_ASSERT(sizeof(glm::detail::uint64) == 8, "uint64 size isn't 8 bytes on this platform");
+00122 
+00123         GLM_STATIC_ASSERT(sizeof(glm::detail::float16) == 2, "float16 size isn't 2 bytes on this platform");
+00124         GLM_STATIC_ASSERT(sizeof(glm::detail::float32) == 4, "float32 size isn't 4 bytes on this platform");
+00125         GLM_STATIC_ASSERT(sizeof(glm::detail::float64) == 8, "float64 size isn't 8 bytes on this platform");
+00126 #endif//GLM_STATIC_ASSERT_NULL
+00127 
+00128 #endif//glm_glm
+
+
+ + + + + + diff --git a/doc/api/a00036.html b/doc/api/a00036.html new file mode 100644 index 00000000..b46edda4 --- /dev/null +++ b/doc/api/a00036.html @@ -0,0 +1,90 @@ + + + + + +gradient_paint.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
gradient_paint.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename valType >
valType linearGradient (detail::tvec2< valType > const &Point0, detail::tvec2< valType > const &Point1, detail::tvec2< valType > const &Position)
template<typename valType >
valType radialGradient (detail::tvec2< valType > const &Center, valType const &Radius, detail::tvec2< valType > const &Focal, detail::tvec2< valType > const &Position)
+

Detailed Description

+

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.

+

GLM_GTX_gradient_paint: Procedural gradient color

+
Date:
2009-03-06 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_optimum_pow: Optimum pow (dependence)
+ +

Definition in file gradient_paint.hpp.

+
+ + + + + + diff --git a/doc/api/a00036_source.html b/doc/api/a00036_source.html new file mode 100644 index 00000000..e1950b70 --- /dev/null +++ b/doc/api/a00036_source.html @@ -0,0 +1,134 @@ + + + + + +gradient_paint.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
gradient_paint.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_gradient_paint
+00039 #define GLM_GTX_gradient_paint GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 #include "../gtx/optimum_pow.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_gradient_paint extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053 
+00056         template <typename valType>
+00057         valType radialGradient(
+00058                 detail::tvec2<valType> const & Center,
+00059                 valType const & Radius,
+00060                 detail::tvec2<valType> const & Focal,
+00061                 detail::tvec2<valType> const & Position);
+00062 
+00065         template <typename valType>
+00066         valType linearGradient(
+00067                 detail::tvec2<valType> const & Point0,
+00068                 detail::tvec2<valType> const & Point1,
+00069                 detail::tvec2<valType> const & Position);
+00070 
+00072 }// namespace glm
+00073 
+00074 #include "gradient_paint.inl"
+00075 
+00076 #endif//GLM_GTX_gradient_paint
+
+
+ + + + + + diff --git a/doc/api/a00037.html b/doc/api/a00037.html new file mode 100644 index 00000000..681b54e7 --- /dev/null +++ b/doc/api/a00037.html @@ -0,0 +1,115 @@ + + + + + +half_float.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
half_float.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Typedefs

typedef detail::half half
typedef detail::tmat2x2
+< detail::half > 
hmat2
typedef detail::tmat2x2
+< detail::half > 
hmat2x2
typedef detail::tmat2x3
+< detail::half > 
hmat2x3
typedef detail::tmat2x4
+< detail::half > 
hmat2x4
typedef detail::tmat3x3
+< detail::half > 
hmat3
typedef detail::tmat3x2
+< detail::half > 
hmat3x2
typedef detail::tmat3x3
+< detail::half > 
hmat3x3
typedef detail::tmat3x4
+< detail::half > 
hmat3x4
typedef detail::tmat4x4
+< detail::half > 
hmat4
typedef detail::tmat4x2
+< detail::half > 
hmat4x2
typedef detail::tmat4x3
+< detail::half > 
hmat4x3
typedef detail::tmat4x4
+< detail::half > 
hmat4x4
typedef detail::tvec2
+< detail::half > 
hvec2
typedef detail::tvec3
+< detail::half > 
hvec3
typedef detail::tvec4
+< detail::half > 
hvec4
+

Detailed Description

+

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.

+

GLM_GTC_half_float: Half-precision floating-point based types and functions

+
Date:
2009-04-29 / 2011-06-05
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file half_float.hpp.

+
+ + + + + + diff --git a/doc/api/a00037_source.html b/doc/api/a00037_source.html new file mode 100644 index 00000000..ebaee240 --- /dev/null +++ b/doc/api/a00037_source.html @@ -0,0 +1,407 @@ + + + + + +half_float.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
half_float.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 #ifndef GLM_GTC_half_float
+00038 #define GLM_GTC_half_float GLM_VERSION
+00039 
+00040 // Dependency:
+00041 #include "../glm.hpp"
+00042 
+00043 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00044 #       pragma message("GLM: GLM_GTC_half_float extension included")
+00045 #endif
+00046 
+00047 namespace glm{
+00048 namespace detail
+00049 {
+00050 #if(!GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE())
+00051         template <>
+00052         struct tvec2<half>
+00053         {
+00054                 enum ctor{null};
+00055                 typedef half value_type;
+00056                 typedef std::size_t size_type;
+00057 
+00058         GLM_FUNC_DECL size_type length() const;
+00059                 static GLM_FUNC_DECL size_type value_size();
+00060 
+00061                 typedef tvec2<half> type;
+00062                 typedef tvec2<bool> bool_type;
+00063 
+00065                 // Data
+00066 
+00067                 half x, y;
+00068 
+00070                 // Accesses
+00071 
+00072                 half & operator[](size_type i);
+00073                 half const & operator[](size_type i) const;
+00074 
+00076                 // Implicit basic constructors
+00077 
+00078                 tvec2();
+00079                 tvec2(tvec2<half> const & v);
+00080 
+00082                 // Explicit basic constructors
+00083 
+00084                 explicit tvec2(ctor);
+00085                 explicit tvec2(
+00086                         half const & s);
+00087                 explicit tvec2(
+00088                         half const & s1, 
+00089                         half const & s2);
+00090 
+00092                 // Swizzle constructors
+00093 
+00094                 tvec2(tref2<half> const & r);
+00095 
+00097                 // Convertion scalar constructors
+00098 
+00100                 template <typename U> 
+00101                 explicit tvec2(U const & x);
+00103                 template <typename U, typename V> 
+00104                 explicit tvec2(U const & x, V const & y);                       
+00105 
+00107                 // Convertion vector constructors
+00108 
+00110                 template <typename U> 
+00111                 explicit tvec2(tvec2<U> const & v);
+00113                 template <typename U> 
+00114                 explicit tvec2(tvec3<U> const & v);
+00116                 template <typename U> 
+00117                 explicit tvec2(tvec4<U> const & v);
+00118 
+00120                 // Unary arithmetic operators
+00121 
+00122                 tvec2<half>& operator= (tvec2<half> const & v);
+00123 
+00124                 tvec2<half>& operator+=(half const & s);
+00125                 tvec2<half>& operator+=(tvec2<half> const & v);
+00126                 tvec2<half>& operator-=(half const & s);
+00127                 tvec2<half>& operator-=(tvec2<half> const & v);
+00128                 tvec2<half>& operator*=(half const & s);
+00129                 tvec2<half>& operator*=(tvec2<half> const & v);
+00130                 tvec2<half>& operator/=(half const & s);
+00131                 tvec2<half>& operator/=(tvec2<half> const & v);
+00132                 tvec2<half>& operator++();
+00133                 tvec2<half>& operator--();
+00134 
+00136                 // Swizzle operators
+00137 
+00138                 half swizzle(comp X) const;
+00139                 tvec2<half> swizzle(comp X, comp Y) const;
+00140                 tvec3<half> swizzle(comp X, comp Y, comp Z) const;
+00141                 tvec4<half> swizzle(comp X, comp Y, comp Z, comp W) const;
+00142                 tref2<half> swizzle(comp X, comp Y);
+00143         };
+00144 
+00145         template <>
+00146         struct tvec3<half>
+00147         {
+00148                 enum ctor{null};
+00149                 typedef half value_type;
+00150                 typedef std::size_t size_type;
+00151         GLM_FUNC_DECL size_type length() const;
+00152                 static GLM_FUNC_DECL size_type value_size();
+00153 
+00154                 typedef tvec3<half> type;
+00155                 typedef tvec3<bool> bool_type;
+00156 
+00158                 // Data
+00159 
+00160                 half x, y, z;
+00161 
+00163                 // Accesses
+00164 
+00165                 half & operator[](size_type i);
+00166                 half const & operator[](size_type i) const;
+00167 
+00169                 // Implicit basic constructors
+00170 
+00171                 tvec3();
+00172                 tvec3(tvec3<half> const & v);
+00173 
+00175                 // Explicit basic constructors
+00176 
+00177                 explicit tvec3(ctor);
+00178                 explicit tvec3(
+00179                         half const & s);
+00180                 explicit tvec3(
+00181                         half const & s1, 
+00182                         half const & s2, 
+00183                         half const & s3);
+00184 
+00186                 // Swizzle constructors
+00187 
+00188                 tvec3(tref3<half> const & r);
+00189 
+00191                 // Convertion scalar constructors
+00192 
+00194                 template <typename U> 
+00195                 explicit tvec3(U const & x);
+00197                 template <typename U, typename V, typename W> 
+00198                 explicit tvec3(U const & x, V const & y, W const & z);                  
+00199 
+00201                 // Convertion vector constructors
+00202 
+00204                 template <typename A, typename B> 
+00205                 explicit tvec3(tvec2<A> const & v, B const & s);
+00207                 template <typename A, typename B> 
+00208                 explicit tvec3(A const & s, tvec2<B> const & v);
+00210                 template <typename U> 
+00211                 explicit tvec3(tvec3<U> const & v);
+00213                 template <typename U> 
+00214                 explicit tvec3(tvec4<U> const & v);
+00215 
+00217                 // Unary arithmetic operators
+00218 
+00219                 tvec3<half>& operator= (tvec3<half> const & v);
+00220 
+00221                 tvec3<half>& operator+=(half const & s);
+00222                 tvec3<half>& operator+=(tvec3<half> const & v);
+00223                 tvec3<half>& operator-=(half const & s);
+00224                 tvec3<half>& operator-=(tvec3<half> const & v);
+00225                 tvec3<half>& operator*=(half const & s);
+00226                 tvec3<half>& operator*=(tvec3<half> const & v);
+00227                 tvec3<half>& operator/=(half const & s);
+00228                 tvec3<half>& operator/=(tvec3<half> const & v);
+00229                 tvec3<half>& operator++();
+00230                 tvec3<half>& operator--();
+00231 
+00233                 // Swizzle operators
+00234 
+00235                 half swizzle(comp X) const;
+00236                 tvec2<half> swizzle(comp X, comp Y) const;
+00237                 tvec3<half> swizzle(comp X, comp Y, comp Z) const;
+00238                 tvec4<half> swizzle(comp X, comp Y, comp Z, comp W) const;
+00239                 tref3<half> swizzle(comp X, comp Y, comp Z);
+00240         };
+00241 
+00242         template <>
+00243         struct tvec4<half>
+00244         {
+00245                 enum ctor{null};
+00246                 typedef half value_type;
+00247                 typedef std::size_t size_type;
+00248         GLM_FUNC_DECL size_type length() const;
+00249                 static GLM_FUNC_DECL size_type value_size();
+00250 
+00251                 typedef tvec4<half> type;
+00252                 typedef tvec4<bool> bool_type;
+00253 
+00255                 // Data
+00256 
+00257                 half x, y, z, w;
+00258 
+00260                 // Accesses
+00261 
+00262                 half & operator[](size_type i);
+00263                 half const & operator[](size_type i) const;
+00264 
+00266                 // Implicit basic constructors
+00267 
+00268                 tvec4();
+00269                 tvec4(tvec4<half> const & v);
+00270 
+00272                 // Explicit basic constructors
+00273 
+00274                 explicit tvec4(ctor);
+00275                 explicit tvec4(
+00276                         half const & s);
+00277                 explicit tvec4(
+00278                         half const & s0, 
+00279                         half const & s1, 
+00280                         half const & s2, 
+00281                         half const & s3);
+00282 
+00284                 // Swizzle constructors
+00285 
+00286                 tvec4(tref4<half> const & r);
+00287 
+00289                 // Convertion scalar constructors
+00290 
+00292                 template <typename U> 
+00293                 explicit tvec4(U const & x);
+00295                 template <typename A, typename B, typename C, typename D> 
+00296                 explicit tvec4(A const & x, B const & y, C const & z, D const & w);                     
+00297 
+00299                 // Convertion vector constructors
+00300 
+00302                 template <typename A, typename B, typename C> 
+00303                 explicit tvec4(tvec2<A> const & v, B const & s1, C const & s2);
+00305                 template <typename A, typename B, typename C> 
+00306                 explicit tvec4(A const & s1, tvec2<B> const & v, C const & s2);
+00308                 template <typename A, typename B, typename C> 
+00309                 explicit tvec4(A const & s1, B const & s2, tvec2<C> const & v);
+00311                 template <typename A, typename B> 
+00312                 explicit tvec4(tvec3<A> const & v, B const & s);
+00314                 template <typename A, typename B> 
+00315                 explicit tvec4(A const & s, tvec3<B> const & v);
+00317                 template <typename A, typename B> 
+00318                 explicit tvec4(tvec2<A> const & v1, tvec2<B> const & v2);
+00320                 template <typename U> 
+00321                 explicit tvec4(tvec4<U> const & v);
+00322 
+00324                 // Unary arithmetic operators
+00325 
+00326                 tvec4<half>& operator= (tvec4<half> const & v);
+00327 
+00328                 tvec4<half>& operator+=(half const & s);
+00329                 tvec4<half>& operator+=(tvec4<half> const & v);
+00330                 tvec4<half>& operator-=(half const & s);
+00331                 tvec4<half>& operator-=(tvec4<half> const & v);
+00332                 tvec4<half>& operator*=(half const & s);
+00333                 tvec4<half>& operator*=(tvec4<half> const & v);
+00334                 tvec4<half>& operator/=(half const & s);
+00335                 tvec4<half>& operator/=(tvec4<half> const & v);
+00336                 tvec4<half>& operator++();
+00337                 tvec4<half>& operator--();
+00338 
+00340                 // Swizzle operators
+00341 
+00342                 half swizzle(comp X) const;
+00343                 tvec2<half> swizzle(comp X, comp Y) const;
+00344                 tvec3<half> swizzle(comp X, comp Y, comp Z) const;
+00345                 tvec4<half> swizzle(comp X, comp Y, comp Z, comp W) const;
+00346                 tref4<half> swizzle(comp X, comp Y, comp Z, comp W);
+00347         };
+00348 #endif//(!GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE())
+00349 }
+00350 //namespace detail
+00351 
+00354 
+00357         typedef detail::half                                    half;
+00358 
+00361         typedef detail::tvec2<detail::half>     hvec2;
+00362 
+00365         typedef detail::tvec3<detail::half>     hvec3;
+00366 
+00369         typedef detail::tvec4<detail::half>     hvec4;
+00370 
+00373         typedef detail::tmat2x2<detail::half>   hmat2;
+00374     
+00377         typedef detail::tmat3x3<detail::half>   hmat3;
+00378 
+00381         typedef detail::tmat4x4<detail::half>   hmat4;
+00382 
+00385         typedef detail::tmat2x2<detail::half>   hmat2x2;
+00386     
+00389         typedef detail::tmat2x3<detail::half>   hmat2x3;
+00390     
+00393         typedef detail::tmat2x4<detail::half>   hmat2x4;
+00394 
+00397         typedef detail::tmat3x2<detail::half>   hmat3x2;
+00398     
+00401         typedef detail::tmat3x3<detail::half>   hmat3x3;
+00402     
+00405         typedef detail::tmat3x4<detail::half>   hmat3x4;
+00406 
+00409         typedef detail::tmat4x2<detail::half>   hmat4x2;    
+00410 
+00413         typedef detail::tmat4x3<detail::half>   hmat4x3;
+00414     
+00417         typedef detail::tmat4x4<detail::half>   hmat4x4;
+00418     
+00420 }// namespace glm
+00421 
+00422 #include "half_float.inl"
+00423 
+00424 #endif//GLM_GTC_half_float
+
+
+ + + + + + diff --git a/doc/api/a00038.html b/doc/api/a00038.html new file mode 100644 index 00000000..48b582c2 --- /dev/null +++ b/doc/api/a00038.html @@ -0,0 +1,88 @@ + + + + + +handed_coordinate_space.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
handed_coordinate_space.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename T >
bool leftHanded (detail::tvec3< T > const &tangent, detail::tvec3< T > const &binormal, detail::tvec3< T > const &normal)
template<typename T >
bool rightHanded (detail::tvec3< T > const &tangent, detail::tvec3< T > const &binormal, detail::tvec3< T > const &normal)
+

Detailed Description

+

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.

+

GLM_GTX_handed_coordinate_space: Space Handedness

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file handed_coordinate_space.hpp.

+
+ + + + + + diff --git a/doc/api/a00038_source.html b/doc/api/a00038_source.html new file mode 100644 index 00000000..1a48a465 --- /dev/null +++ b/doc/api/a00038_source.html @@ -0,0 +1,132 @@ + + + + + +handed_coordinate_space.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
handed_coordinate_space.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_handed_coordinate_space
+00039 #define GLM_GTX_handed_coordinate_space GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename T> 
+00056         bool rightHanded(
+00057                 detail::tvec3<T> const & tangent, 
+00058                 detail::tvec3<T> const & binormal, 
+00059                 detail::tvec3<T> const & normal);
+00060 
+00063         template <typename T> 
+00064         bool leftHanded(
+00065                 detail::tvec3<T> const & tangent, 
+00066                 detail::tvec3<T> const & binormal, 
+00067                 detail::tvec3<T> const & normal);
+00068 
+00070 }// namespace glm
+00071 
+00072 #include "handed_coordinate_space.inl"
+00073 
+00074 #endif//GLM_GTX_handed_coordinate_space
+
+
+ + + + + + diff --git a/doc/api/a00039.html b/doc/api/a00039.html new file mode 100644 index 00000000..35dee466 --- /dev/null +++ b/doc/api/a00039.html @@ -0,0 +1,77 @@ + + + + + +hint.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
hint.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-14 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file hint.hpp.

+
+ + + + + + diff --git a/doc/api/a00039_source.html b/doc/api/a00039_source.html new file mode 100644 index 00000000..6440bcb9 --- /dev/null +++ b/doc/api/a00039_source.html @@ -0,0 +1,105 @@ + + + + + +hint.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
hint.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type
+00030 #define glm_core_type
+00031 
+00032 namespace glm
+00033 {
+00034         // Use dont_care, nicest and fastest to optimize implementations.
+00035         class dont_care {};
+00036         class nicest {};
+00037         class fastest {};
+00038 }//namespace glm
+00039 
+00040 #endif//glm_core_type
+
+
+ + + + + + diff --git a/doc/api/a00040.html b/doc/api/a00040.html new file mode 100644 index 00000000..ac65714f --- /dev/null +++ b/doc/api/a00040.html @@ -0,0 +1,102 @@ + + + + + +inertia.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
inertia.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat3x3< T > ballInertia3 (T const &Mass, T const &Radius)
template<typename T >
detail::tmat4x4< T > ballInertia4 (T const &Mass, T const &Radius)
template<typename T >
detail::tmat3x3< T > boxInertia3 (T const &Mass, detail::tvec3< T > const &Scale)
template<typename T >
detail::tmat4x4< T > boxInertia4 (T const &Mass, detail::tvec3< T > const &Scale)
template<typename T >
detail::tmat3x3< T > diskInertia3 (T const &Mass, T const &Radius)
template<typename T >
detail::tmat4x4< T > diskInertia4 (T const &Mass, T const &Radius)
template<typename T >
detail::tmat3x3< T > sphereInertia3 (T const &Mass, T const &Radius)
template<typename T >
detail::tmat4x4< T > sphereInertia4 (T const &Mass, T const &Radius)
+

Detailed Description

+

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.

+

GLM_GTX_inertia: Intertial matrix

+
Date:
2006-04-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_extented_min_max: Extended min max (dependence)
+ +

Definition in file inertia.hpp.

+
+ + + + + + diff --git a/doc/api/a00040_source.html b/doc/api/a00040_source.html new file mode 100644 index 00000000..6308f68a --- /dev/null +++ b/doc/api/a00040_source.html @@ -0,0 +1,161 @@ + + + + + +inertia.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
inertia.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_inertia
+00040 #define GLM_GTX_inertia GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_inertia extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053 
+00056         template <typename T> 
+00057         detail::tmat3x3<T> boxInertia3(
+00058                 T const & Mass, 
+00059                 detail::tvec3<T> const & Scale);
+00060                 
+00063         template <typename T> 
+00064         detail::tmat4x4<T> boxInertia4(
+00065                 T const & Mass, 
+00066                 detail::tvec3<T> const & Scale);
+00067                 
+00070         template <typename T> 
+00071         detail::tmat3x3<T> diskInertia3(
+00072                 T const & Mass, 
+00073                 T const & Radius);
+00074 
+00077         template <typename T> 
+00078         detail::tmat4x4<T> diskInertia4(
+00079                 T const & Mass, 
+00080                 T const & Radius);
+00081 
+00084         template <typename T> 
+00085         detail::tmat3x3<T> ballInertia3(
+00086                 T const & Mass, 
+00087                 T const & Radius);
+00088                 
+00091         template <typename T> 
+00092         detail::tmat4x4<T> ballInertia4(
+00093                 T const & Mass, 
+00094                 T const & Radius);
+00095 
+00098         template <typename T> 
+00099         detail::tmat3x3<T> sphereInertia3(
+00100                 T const & Mass, 
+00101                 T const & Radius);
+00102 
+00105         template <typename T> 
+00106         detail::tmat4x4<T> sphereInertia4(
+00107                 T const & Mass, 
+00108                 T const & Radius);
+00109 
+00111 }// namespace glm
+00112 
+00113 #include "inertia.inl"
+00114 
+00115 #endif//GLM_GTX_inertia
+
+
+ + + + + + diff --git a/doc/api/a00041.html b/doc/api/a00041.html new file mode 100644 index 00000000..daf3176a --- /dev/null +++ b/doc/api/a00041.html @@ -0,0 +1,87 @@ + + + + + +int_10_10_10_2.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
int_10_10_10_2.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + +

+Functions

dword uint10_10_10_2_cast (glm::vec4 const &v)
+

Detailed Description

+

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.

+

GLM_GTX_int_10_10_10_2: Packed integer

+
Date:
2010-07-07 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_raw_data: Raw data (dependence)
+ +

Definition in file int_10_10_10_2.hpp.

+
+ + + + + + diff --git a/doc/api/a00041_source.html b/doc/api/a00041_source.html new file mode 100644 index 00000000..930fe15a --- /dev/null +++ b/doc/api/a00041_source.html @@ -0,0 +1,124 @@ + + + + + +int_10_10_10_2.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
int_10_10_10_2.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_int_10_10_10_2
+00040 #define GLM_GTX_int_10_10_10_2 GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtx/raw_data.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_int_10_10_10_2 extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         dword uint10_10_10_2_cast(glm::vec4 const & v);
+00058 
+00060 }//namespace glm
+00061 
+00062 #include "int_10_10_10_2.inl"
+00063 
+00064 #endif//GLM_GTX_int_10_10_10_2
+
+
+ + + + + + diff --git a/doc/api/a00042.html b/doc/api/a00042.html new file mode 100644 index 00000000..f0f43f9f --- /dev/null +++ b/doc/api/a00042.html @@ -0,0 +1,100 @@ + + + + + +integer.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
integer.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + +

+Typedefs

typedef signed int sint

+Functions

template<typename genType >
genType factorial (genType const &x)
unsigned int floor_log2 (unsigned int x)
template<typename genIUType >
genIUType log2 (genIUType const &x)
int mod (int x, int y)
uint mod (uint x, uint y)
uint nlz (uint x)
int pow (int x, int y)
uint pow (uint x, uint y)
int sqrt (int x)
uint sqrt (uint x)
+

Detailed Description

+

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.

+

GLM_GTX_integer: Extended integer functions

+
Date:
2005-12-24 / 2011-10-13
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file integer.hpp.

+
+ + + + + + diff --git a/doc/api/a00042_source.html b/doc/api/a00042_source.html new file mode 100644 index 00000000..b47f5dba --- /dev/null +++ b/doc/api/a00042_source.html @@ -0,0 +1,144 @@ + + + + + +integer.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
integer.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_integer
+00039 #define GLM_GTX_integer GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_integer extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         int pow(int x, int y);
+00056 
+00059         int sqrt(int x);
+00060 
+00063         template <typename genIUType>
+00064         genIUType log2(genIUType const & x);
+00065 
+00068         unsigned int floor_log2(unsigned int x);
+00069 
+00072         int mod(int x, int y);
+00073 
+00076         template <typename genType> 
+00077         genType factorial(genType const & x);
+00078 
+00081         typedef signed int                                      sint;
+00082 
+00085         uint pow(uint x, uint y);
+00086 
+00089         uint sqrt(uint x);
+00090 
+00093         uint mod(uint x, uint y);
+00094 
+00097         uint nlz(uint x);
+00098 
+00100 }//namespace glm
+00101 
+00102 #include "integer.inl"
+00103 
+00104 #endif//GLM_GTX_integer
+
+
+ + + + + + diff --git a/doc/api/a00043.html b/doc/api/a00043.html new file mode 100644 index 00000000..e3054aa8 --- /dev/null +++ b/doc/api/a00043.html @@ -0,0 +1,94 @@ + + + + + +intersect.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
intersect.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename genType >
bool intersectLineSphere (genType const &point0, genType const &point1, genType const &center, typename genType::value_type radius, genType &position, genType &normal)
template<typename genType >
bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
template<typename genType >
bool intersectRaySphere (genType const &orig, genType const &dir, genType const &center, typename genType::value_type radius, genType &position, genType &normal)
template<typename genType >
bool intersectRayTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
+

Detailed Description

+

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.

+

GLM_GTX_intersect: Intersection tests

+
Date:
2007-04-03 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_closest_point: Find closest point (dependence)
+ +

Definition in file intersect.hpp.

+
+ + + + + + diff --git a/doc/api/a00043_source.html b/doc/api/a00043_source.html new file mode 100644 index 00000000..323f76e2 --- /dev/null +++ b/doc/api/a00043_source.html @@ -0,0 +1,146 @@ + + + + + +intersect.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
intersect.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_intersect
+00040 #define GLM_GTX_intersect GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtx/closest_point.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_closest_point extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename genType>
+00058         bool intersectRayTriangle(
+00059                 genType const & orig, genType const & dir,
+00060                 genType const & vert0, genType const & vert1, genType const & vert2,
+00061                 genType & baryPosition);
+00062 
+00065         template <typename genType>
+00066         bool intersectLineTriangle(
+00067                 genType const & orig, genType const & dir,
+00068                 genType const & vert0, genType const & vert1, genType const & vert2,
+00069                 genType & position);
+00070 
+00073         template <typename genType>
+00074         bool intersectRaySphere(
+00075                 genType const & orig, genType const & dir,
+00076                 genType const & center, typename genType::value_type radius,
+00077                 genType & position, genType & normal);
+00078 
+00081         template <typename genType>
+00082         bool intersectLineSphere(
+00083                 genType const & point0, genType const & point1,
+00084                 genType const & center, typename genType::value_type radius,
+00085                 genType & position, genType & normal);
+00086 
+00088 }//namespace glm
+00089 
+00090 #include "intersect.inl"
+00091 
+00092 #endif//GLM_GTX_intersect
+
+
+ + + + + + diff --git a/doc/api/a00044.html b/doc/api/a00044.html new file mode 100644 index 00000000..807eba5d --- /dev/null +++ b/doc/api/a00044.html @@ -0,0 +1,83 @@ + + + + + +intrinsic_common.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
intrinsic_common.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2009-05-11 / 2011-06-15
+
Author:
Christophe Riccio
+

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.

+

GLM Core

+
Date:
2009-06-05 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file intrinsic_common.hpp.

+
+ + + + + + diff --git a/doc/api/a00044_source.html b/doc/api/a00044_source.html new file mode 100644 index 00000000..8fb64b50 --- /dev/null +++ b/doc/api/a00044_source.html @@ -0,0 +1,154 @@ + + + + + +intrinsic_common.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
intrinsic_common.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_detail_intrinsic_common
+00030 #define glm_detail_intrinsic_common
+00031 
+00032 #include "setup.hpp"
+00033 
+00034 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
+00035 #       error "SSE2 instructions not supported or enabled"
+00036 #else
+00037 
+00038 namespace glm{
+00039 namespace detail
+00040 {
+00041         __m128 sse_abs_ps(__m128 x);
+00042 
+00043         __m128 sse_sgn_ps(__m128 x);
+00044 
+00045         //floor
+00046         __m128 sse_flr_ps(__m128 v);
+00047 
+00048         //trunc
+00049         __m128 sse_trc_ps(__m128 v);
+00050 
+00051         //round
+00052         __m128 sse_nd_ps(__m128 v);
+00053 
+00054         //roundEven
+00055         __m128 sse_rde_ps(__m128 v);
+00056 
+00057         __m128 sse_rnd_ps(__m128 x);
+00058 
+00059         __m128 sse_ceil_ps(__m128 v);
+00060 
+00061         __m128 sse_frc_ps(__m128 x);
+00062 
+00063         __m128 sse_mod_ps(__m128 x, __m128 y);
+00064 
+00065         __m128 sse_modf_ps(__m128 x, __m128i & i);
+00066 
+00067         //GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)
+00068 
+00069         //GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)
+00070 
+00071         __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal);
+00072 
+00073         __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a);
+00074 
+00075         __m128 sse_stp_ps(__m128 edge, __m128 x);
+00076 
+00077         __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x);
+00078 
+00079         __m128 sse_nan_ps(__m128 x);
+00080 
+00081         __m128 sse_inf_ps(__m128 x);
+00082 
+00083 }//namespace detail
+00084 }//namespace glm
+00085 
+00086 #include "intrinsic_common.inl"
+00087 
+00088 #endif//GLM_ARCH
+00089 #endif//glm_detail_intrinsic_common
+
+
+ + + + + + diff --git a/doc/api/a00045.html b/doc/api/a00045.html new file mode 100644 index 00000000..1aeaefc5 --- /dev/null +++ b/doc/api/a00045.html @@ -0,0 +1,77 @@ + + + + + +intrinsic_exponential.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
intrinsic_exponential.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2009-05-11 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file intrinsic_exponential.hpp.

+
+ + + + + + diff --git a/doc/api/a00045_source.html b/doc/api/a00045_source.html new file mode 100644 index 00000000..636e6763 --- /dev/null +++ b/doc/api/a00045_source.html @@ -0,0 +1,144 @@ + + + + + +intrinsic_exponential.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
intrinsic_exponential.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_detail_intrinsic_exponential
+00030 #define glm_detail_intrinsic_exponential
+00031 
+00032 #include "setup.hpp"
+00033 
+00034 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
+00035 #       error "SSE2 instructions not supported or enabled"
+00036 #else
+00037 
+00038 namespace glm{
+00039 namespace detail
+00040 {
+00041 /*
+00042 GLM_FUNC_QUALIFIER __m128 sse_rsqrt_nr_ss(__m128 const x)
+00043 {
+00044         __m128 recip = _mm_rsqrt_ss( x );  // "estimate" opcode
+00045         const static __m128 three = { 3, 3, 3, 3 }; // aligned consts for fast load
+00046         const static __m128 half = { 0.5,0.5,0.5,0.5 };
+00047         __m128 halfrecip = _mm_mul_ss( half, recip );
+00048         __m128 threeminus_xrr = _mm_sub_ss( three, _mm_mul_ss( x, _mm_mul_ss ( recip, recip ) ) );
+00049         return _mm_mul_ss( halfrecip, threeminus_xrr );
+00050 }
+00051  
+00052 GLM_FUNC_QUALIFIER __m128 sse_normalize_fast_ps(  float * RESTRICT vOut, float * RESTRICT vIn )
+00053 {
+00054         __m128 x = _mm_load_ss(&vIn[0]);
+00055         __m128 y = _mm_load_ss(&vIn[1]);
+00056         __m128 z = _mm_load_ss(&vIn[2]);
+00057  
+00058         const __m128 l =  // compute x*x + y*y + z*z
+00059                 _mm_add_ss(
+00060                  _mm_add_ss( _mm_mul_ss(x,x),
+00061                              _mm_mul_ss(y,y)
+00062                             ),
+00063                  _mm_mul_ss( z, z )
+00064                 );
+00065  
+00066  
+00067         const __m128 rsqt = _mm_rsqrt_nr_ss( l );
+00068         _mm_store_ss( &vOut[0] , _mm_mul_ss( rsqt, x ) );
+00069         _mm_store_ss( &vOut[1] , _mm_mul_ss( rsqt, y ) );
+00070         _mm_store_ss( &vOut[2] , _mm_mul_ss( rsqt, z ) );
+00071  
+00072         return _mm_mul_ss( l , rsqt );
+00073 }
+00074 */
+00075 }//namespace detail
+00076 }//namespace glm
+00077 
+00078 #endif//GLM_ARCH
+00079 #endif//glm_detail_intrinsic_exponential
+
+
+ + + + + + diff --git a/doc/api/a00046.html b/doc/api/a00046.html new file mode 100644 index 00000000..8d59ba4b --- /dev/null +++ b/doc/api/a00046.html @@ -0,0 +1,77 @@ + + + + + +intrinsic_geometric.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
intrinsic_geometric.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2009-05-08 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file intrinsic_geometric.hpp.

+
+ + + + + + diff --git a/doc/api/a00046_source.html b/doc/api/a00046_source.html new file mode 100644 index 00000000..7c338374 --- /dev/null +++ b/doc/api/a00046_source.html @@ -0,0 +1,141 @@ + + + + + +intrinsic_geometric.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
intrinsic_geometric.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_intrinsic_geometric
+00030 #define glm_core_intrinsic_geometric
+00031 
+00032 #include "setup.hpp"
+00033 
+00034 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
+00035 #       error "SSE2 instructions not supported or enabled"
+00036 #else
+00037 
+00038 #include "intrinsic_common.hpp"
+00039 
+00040 namespace glm{
+00041 namespace detail
+00042 {
+00043         //length
+00044         __m128 sse_len_ps(__m128 x);
+00045 
+00046         //distance
+00047         __m128 sse_dst_ps(__m128 p0, __m128 p1);
+00048 
+00049         //dot
+00050         __m128 sse_dot_ps(__m128 v1, __m128 v2);
+00051 
+00052         // SSE1
+00053         __m128 sse_dot_ss(__m128 v1, __m128 v2);
+00054 
+00055         //cross
+00056         __m128 sse_xpd_ps(__m128 v1, __m128 v2);
+00057 
+00058         //normalize
+00059         __m128 sse_nrm_ps(__m128 v);
+00060 
+00061         //faceforward
+00062         __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);
+00063 
+00064         //reflect
+00065         __m128 sse_rfe_ps(__m128 I, __m128 N);
+00066 
+00067         //refract
+00068         __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);
+00069 
+00070 }//namespace detail
+00071 }//namespace glm
+00072 
+00073 #include "intrinsic_geometric.inl"
+00074 
+00075 #endif//GLM_ARCH
+00076 #endif//glm_core_intrinsic_geometric
+
+
+ + + + + + diff --git a/doc/api/a00047_source.html b/doc/api/a00047_source.html new file mode 100644 index 00000000..3f6193ea --- /dev/null +++ b/doc/api/a00047_source.html @@ -0,0 +1,134 @@ + + + + + +intrinsic_matrix.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
intrinsic_matrix.hpp
+
+
+
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_detail_intrinsic_matrix
+00030 #define glm_detail_intrinsic_matrix
+00031 
+00032 #include "setup.hpp"
+00033 
+00034 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
+00035 #       error "SSE2 instructions not supported or enabled"
+00036 #else
+00037 
+00038 #include "intrinsic_geometric.hpp"
+00039 
+00040 namespace glm{
+00041 namespace detail
+00042 {
+00043         void sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
+00044 
+00045         void sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
+00046 
+00047         __m128 sse_mul_ps(__m128 m[4], __m128 v);
+00048 
+00049         __m128 sse_mul_ps(__m128 v, __m128 m[4]);
+00050 
+00051         void sse_mul_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4]);
+00052 
+00053         void sse_transpose_ps(__m128 const in[4], __m128 out[4]);
+00054 
+00055         void sse_inverse_ps(__m128 const in[4], __m128 out[4]);
+00056 
+00057         void sse_rotate_ps(__m128 const in[4], float Angle, float const v[3], __m128 out[4]);
+00058 
+00059         __m128 sse_det_ps(__m128 const m[4]);
+00060 
+00061         __m128 sse_slow_det_ps(__m128 const m[4]);
+00062 
+00063 }//namespace detail
+00064 }//namespace glm
+00065 
+00066 #include "intrinsic_matrix.inl"
+00067 
+00068 #endif//GLM_ARCH
+00069 #endif//glm_detail_intrinsic_matrix
+
+
+ + + + + + diff --git a/doc/api/a00048.html b/doc/api/a00048.html new file mode 100644 index 00000000..7fd110e6 --- /dev/null +++ b/doc/api/a00048.html @@ -0,0 +1,77 @@ + + + + + +intrinsic_trigonometric.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
intrinsic_trigonometric.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2009-06-09 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file intrinsic_trigonometric.hpp.

+
+ + + + + + diff --git a/doc/api/a00048_source.html b/doc/api/a00048_source.html new file mode 100644 index 00000000..b412565e --- /dev/null +++ b/doc/api/a00048_source.html @@ -0,0 +1,113 @@ + + + + + +intrinsic_trigonometric.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
intrinsic_trigonometric.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_detail_intrinsic_trigonometric
+00030 #define glm_detail_intrinsic_trigonometric
+00031 
+00032 #include "setup.hpp"
+00033 
+00034 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
+00035 #       error "SSE2 instructions not supported or enabled"
+00036 #else
+00037 
+00038 namespace glm{
+00039 namespace detail
+00040 {
+00041 
+00042 }//namespace detail
+00043 }//namespace glm
+00044 
+00045 #include "intrinsic_trigonometric.inl"
+00046 
+00047 #endif//GLM_ARCH
+00048 #endif//glm_detail_intrinsic_trigonometric
+
+
+ + + + + + diff --git a/doc/api/a00049.html b/doc/api/a00049.html new file mode 100644 index 00000000..de5fdfaf --- /dev/null +++ b/doc/api/a00049.html @@ -0,0 +1,77 @@ + + + + + +intrinsic_vector_relational.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
intrinsic_vector_relational.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2009-06-09 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file intrinsic_vector_relational.hpp.

+
+ + + + + + diff --git a/doc/api/a00049_source.html b/doc/api/a00049_source.html new file mode 100644 index 00000000..ad7c48fc --- /dev/null +++ b/doc/api/a00049_source.html @@ -0,0 +1,113 @@ + + + + + +intrinsic_vector_relational.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
intrinsic_vector_relational.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_detail_intrinsic_vector_relational
+00030 #define glm_detail_intrinsic_vector_relational
+00031 
+00032 #include "setup.hpp"
+00033 
+00034 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
+00035 #       error "SSE2 instructions not supported or enabled"
+00036 #else
+00037 
+00038 namespace glm{
+00039 namespace detail
+00040 {
+00041 
+00042 }//namespace detail
+00043 }//namespace glm
+00044 
+00045 #include "intrinsic_vector_relational.inl"
+00046 
+00047 #endif//GLM_ARCH
+00048 #endif//glm_detail_intrinsic_vector_relational
+
+
+ + + + + + diff --git a/doc/api/a00050.html b/doc/api/a00050.html new file mode 100644 index 00000000..a66c2499 --- /dev/null +++ b/doc/api/a00050.html @@ -0,0 +1,86 @@ + + + + + +log_base.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
log_base.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

template<typename genType >
genType log (genType const &x, genType const &base)
+

Detailed Description

+

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.

+

GLM_GTX_log_base: Log with base

+
Date:
2008-10-24 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file log_base.hpp.

+
+ + + + + + diff --git a/doc/api/a00050_source.html b/doc/api/a00050_source.html new file mode 100644 index 00000000..7bfc15e6 --- /dev/null +++ b/doc/api/a00050_source.html @@ -0,0 +1,125 @@ + + + + + +log_base.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
log_base.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_log_base
+00039 #define GLM_GTX_log_base GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_log_base extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename genType> 
+00056         genType log(
+00057                 genType const & x, 
+00058                 genType const & base);
+00059 
+00061 }//namespace glm
+00062 
+00063 #include "log_base.inl"
+00064 
+00065 #endif//GLM_GTX_log_base
+
+
+ + + + + + diff --git a/doc/api/a00051_source.html b/doc/api/a00051_source.html new file mode 100644 index 00000000..9655437c --- /dev/null +++ b/doc/api/a00051_source.html @@ -0,0 +1,1838 @@ + + + + + +man.doxy Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
man.doxy
+
+
+
00001 # Doxyfile 1.7.6
+00002 
+00003 # This file describes the settings to be used by the documentation system
+00004 # doxygen (www.doxygen.org) for a project
+00005 #
+00006 # All text after a hash (#) is considered a comment and will be ignored
+00007 # The format is:
+00008 #       TAG = value [value, ...]
+00009 # For lists items can also be appended using:
+00010 #       TAG += value [value, ...]
+00011 # Values that contain spaces should be placed between quotes (" ")
+00012 
+00013 #---------------------------------------------------------------------------
+00014 # Project related configuration options
+00015 #---------------------------------------------------------------------------
+00016 
+00017 # This tag specifies the encoding used for all characters in the config file 
+00018 # that follow. The default is UTF-8 which is also the encoding used for all 
+00019 # text before the first occurrence of this tag. Doxygen uses libiconv (or the 
+00020 # iconv built into libc) for the transcoding. See 
+00021 # http://www.gnu.org/software/libiconv for the list of possible encodings.
+00022 
+00023 DOXYFILE_ENCODING      = UTF-8
+00024 
+00025 # The PROJECT_NAME tag is a single word (or sequence of words) that should 
+00026 # identify the project. Note that if you do not use Doxywizard you need 
+00027 # to put quotes around the project name if it contains spaces.
+00028 
+00029 PROJECT_NAME           = 
+00030 
+00031 # The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+00032 # This could be handy for archiving the generated documentation or 
+00033 # if some version control system is used.
+00034 
+00035 PROJECT_NUMBER         = 0.9.3
+00036 
+00037 # Using the PROJECT_BRIEF tag one can provide an optional one line description 
+00038 # for a project that appears at the top of each page and should give viewer 
+00039 # a quick idea about the purpose of the project. Keep the description short.
+00040 
+00041 PROJECT_BRIEF          = 
+00042 
+00043 # With the PROJECT_LOGO tag one can specify an logo or icon that is 
+00044 # included in the documentation. The maximum height of the logo should not 
+00045 # exceed 55 pixels and the maximum width should not exceed 200 pixels. 
+00046 # Doxygen will copy the logo to the output directory.
+00047 
+00048 PROJECT_LOGO           = ./image/logo-mini.png
+00049 
+00050 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+00051 # base path where the generated documentation will be put. 
+00052 # If a relative path is entered, it will be relative to the location 
+00053 # where doxygen was started. If left blank the current directory will be used.
+00054 
+00055 OUTPUT_DIRECTORY       = .
+00056 
+00057 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
+00058 # 4096 sub-directories (in 2 levels) under the output directory of each output 
+00059 # format and will distribute the generated files over these directories. 
+00060 # Enabling this option can be useful when feeding doxygen a huge amount of 
+00061 # source files, where putting all generated files in the same directory would 
+00062 # otherwise cause performance problems for the file system.
+00063 
+00064 CREATE_SUBDIRS         = NO
+00065 
+00066 # The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+00067 # documentation generated by doxygen is written. Doxygen will use this 
+00068 # information to generate all constant output in the proper language. 
+00069 # The default language is English, other supported languages are: 
+00070 # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
+00071 # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, 
+00072 # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English 
+00073 # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, 
+00074 # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, 
+00075 # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+00076 
+00077 OUTPUT_LANGUAGE        = English
+00078 
+00079 # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+00080 # include brief member descriptions after the members that are listed in 
+00081 # the file and class documentation (similar to JavaDoc). 
+00082 # Set to NO to disable this.
+00083 
+00084 BRIEF_MEMBER_DESC      = NO
+00085 
+00086 # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+00087 # the brief description of a member or function before the detailed description. 
+00088 # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+00089 # brief descriptions will be completely suppressed.
+00090 
+00091 REPEAT_BRIEF           = YES
+00092 
+00093 # This tag implements a quasi-intelligent brief description abbreviator 
+00094 # that is used to form the text in various listings. Each string 
+00095 # in this list, if found as the leading text of the brief description, will be 
+00096 # stripped from the text and the result after processing the whole list, is 
+00097 # used as the annotated text. Otherwise, the brief description is used as-is. 
+00098 # If left blank, the following values are used ("$name" is automatically 
+00099 # replaced with the name of the entity): "The $name class" "The $name widget" 
+00100 # "The $name file" "is" "provides" "specifies" "contains" 
+00101 # "represents" "a" "an" "the"
+00102 
+00103 ABBREVIATE_BRIEF       = "The $name class       " \
+00104                          "The $name widget       " \
+00105                          "The $name file       " \
+00106                          is \
+00107                          provides \
+00108                          specifies \
+00109                          contains \
+00110                          represents \
+00111                          a \
+00112                          an \
+00113                          the
+00114 
+00115 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+00116 # Doxygen will generate a detailed section even if there is only a brief 
+00117 # description.
+00118 
+00119 ALWAYS_DETAILED_SEC    = NO
+00120 
+00121 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
+00122 # inherited members of a class in the documentation of that class as if those 
+00123 # members were ordinary class members. Constructors, destructors and assignment 
+00124 # operators of the base classes will not be shown.
+00125 
+00126 INLINE_INHERITED_MEMB  = NO
+00127 
+00128 # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+00129 # path before files name in the file list and in the header files. If set 
+00130 # to NO the shortest path that makes the file name unique will be used.
+00131 
+00132 FULL_PATH_NAMES        = NO
+00133 
+00134 # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+00135 # can be used to strip a user-defined part of the path. Stripping is 
+00136 # only done if one of the specified strings matches the left-hand part of 
+00137 # the path. The tag can be used to show relative paths in the file list. 
+00138 # If left blank the directory from which doxygen is run is used as the 
+00139 # path to strip.
+00140 
+00141 STRIP_FROM_PATH        = "C:/Documents and Settings/Groove/       "
+00142 
+00143 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
+00144 # the path mentioned in the documentation of a class, which tells 
+00145 # the reader which header file to include in order to use a class. 
+00146 # If left blank only the name of the header file containing the class 
+00147 # definition is used. Otherwise one should specify the include paths that 
+00148 # are normally passed to the compiler using the -I flag.
+00149 
+00150 STRIP_FROM_INC_PATH    = 
+00151 
+00152 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+00153 # (but less readable) file names. This can be useful if your file system 
+00154 # doesn't support long names like on DOS, Mac, or CD-ROM.
+00155 
+00156 SHORT_NAMES            = YES
+00157 
+00158 # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+00159 # will interpret the first line (until the first dot) of a JavaDoc-style 
+00160 # comment as the brief description. If set to NO, the JavaDoc 
+00161 # comments will behave just like regular Qt-style comments 
+00162 # (thus requiring an explicit @brief command for a brief description.)
+00163 
+00164 JAVADOC_AUTOBRIEF      = YES
+00165 
+00166 # If the QT_AUTOBRIEF tag is set to YES then Doxygen will 
+00167 # interpret the first line (until the first dot) of a Qt-style 
+00168 # comment as the brief description. If set to NO, the comments 
+00169 # will behave just like regular Qt-style comments (thus requiring 
+00170 # an explicit \brief command for a brief description.)
+00171 
+00172 QT_AUTOBRIEF           = NO
+00173 
+00174 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
+00175 # treat a multi-line C++ special comment block (i.e. a block of //! or /// 
+00176 # comments) as a brief description. This used to be the default behaviour. 
+00177 # The new default is to treat a multi-line C++ comment block as a detailed 
+00178 # description. Set this tag to YES if you prefer the old behaviour instead.
+00179 
+00180 MULTILINE_CPP_IS_BRIEF = NO
+00181 
+00182 # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+00183 # member inherits the documentation from any documented member that it 
+00184 # re-implements.
+00185 
+00186 INHERIT_DOCS           = YES
+00187 
+00188 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
+00189 # a new page for each member. If set to NO, the documentation of a member will 
+00190 # be part of the file/class/namespace that contains it.
+00191 
+00192 SEPARATE_MEMBER_PAGES  = NO
+00193 
+00194 # The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+00195 # Doxygen uses this value to replace tabs by spaces in code fragments.
+00196 
+00197 TAB_SIZE               = 8
+00198 
+00199 # This tag can be used to specify a number of aliases that acts 
+00200 # as commands in the documentation. An alias has the form "name=value". 
+00201 # For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+00202 # put the command \sideeffect (or @sideeffect) in the documentation, which 
+00203 # will result in a user-defined paragraph with heading "Side Effects:". 
+00204 # You can put \n's in the value part of an alias to insert newlines.
+00205 
+00206 ALIASES                = 
+00207 
+00208 # This tag can be used to specify a number of word-keyword mappings (TCL only). 
+00209 # A mapping has the form "name=value". For example adding 
+00210 # "class=itcl::class" will allow you to use the command class in the 
+00211 # itcl::class meaning.
+00212 
+00213 TCL_SUBST              = 
+00214 
+00215 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
+00216 # sources only. Doxygen will then generate output that is more tailored for C. 
+00217 # For instance, some of the names that are used will be different. The list 
+00218 # of all members will be omitted, etc.
+00219 
+00220 OPTIMIZE_OUTPUT_FOR_C  = NO
+00221 
+00222 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
+00223 # sources only. Doxygen will then generate output that is more tailored for 
+00224 # Java. For instance, namespaces will be presented as packages, qualified 
+00225 # scopes will look different, etc.
+00226 
+00227 OPTIMIZE_OUTPUT_JAVA   = NO
+00228 
+00229 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 
+00230 # sources only. Doxygen will then generate output that is more tailored for 
+00231 # Fortran.
+00232 
+00233 OPTIMIZE_FOR_FORTRAN   = NO
+00234 
+00235 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 
+00236 # sources. Doxygen will then generate output that is tailored for 
+00237 # VHDL.
+00238 
+00239 OPTIMIZE_OUTPUT_VHDL   = NO
+00240 
+00241 # Doxygen selects the parser to use depending on the extension of the files it 
+00242 # parses. With this tag you can assign which parser to use for a given extension. 
+00243 # Doxygen has a built-in mapping, but you can override or extend it using this 
+00244 # tag. The format is ext=language, where ext is a file extension, and language 
+00245 # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, 
+00246 # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make 
+00247 # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C 
+00248 # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions 
+00249 # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+00250 
+00251 EXTENSION_MAPPING      = 
+00252 
+00253 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
+00254 # to include (a tag file for) the STL sources as input, then you should 
+00255 # set this tag to YES in order to let doxygen match functions declarations and 
+00256 # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
+00257 # func(std::string) {}). This also makes the inheritance and collaboration 
+00258 # diagrams that involve STL classes more complete and accurate.
+00259 
+00260 BUILTIN_STL_SUPPORT    = NO
+00261 
+00262 # If you use Microsoft's C++/CLI language, you should set this option to YES to 
+00263 # enable parsing support.
+00264 
+00265 CPP_CLI_SUPPORT        = NO
+00266 
+00267 # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 
+00268 # Doxygen will parse them like normal C++ but will assume all classes use public 
+00269 # instead of private inheritance when no explicit protection keyword is present.
+00270 
+00271 SIP_SUPPORT            = NO
+00272 
+00273 # For Microsoft's IDL there are propget and propput attributes to indicate getter 
+00274 # and setter methods for a property. Setting this option to YES (the default) 
+00275 # will make doxygen replace the get and set methods by a property in the 
+00276 # documentation. This will only work if the methods are indeed getting or 
+00277 # setting a simple type. If this is not the case, or you want to show the 
+00278 # methods anyway, you should set this option to NO.
+00279 
+00280 IDL_PROPERTY_SUPPORT   = YES
+00281 
+00282 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+00283 # tag is set to YES, then doxygen will reuse the documentation of the first 
+00284 # member in the group (if any) for the other members of the group. By default 
+00285 # all members of a group must be documented explicitly.
+00286 
+00287 DISTRIBUTE_GROUP_DOC   = NO
+00288 
+00289 # Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+00290 # the same type (for instance a group of public functions) to be put as a 
+00291 # subgroup of that type (e.g. under the Public Functions section). Set it to 
+00292 # NO to prevent subgrouping. Alternatively, this can be done per class using 
+00293 # the \nosubgrouping command.
+00294 
+00295 SUBGROUPING            = NO
+00296 
+00297 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and 
+00298 # unions are shown inside the group in which they are included (e.g. using 
+00299 # @ingroup) instead of on a separate page (for HTML and Man pages) or 
+00300 # section (for LaTeX and RTF).
+00301 
+00302 INLINE_GROUPED_CLASSES = NO
+00303 
+00304 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and 
+00305 # unions with only public data fields will be shown inline in the documentation 
+00306 # of the scope in which they are defined (i.e. file, namespace, or group 
+00307 # documentation), provided this scope is documented. If set to NO (the default), 
+00308 # structs, classes, and unions are shown on a separate page (for HTML and Man 
+00309 # pages) or section (for LaTeX and RTF).
+00310 
+00311 INLINE_SIMPLE_STRUCTS  = NO
+00312 
+00313 # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 
+00314 # is documented as struct, union, or enum with the name of the typedef. So 
+00315 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct 
+00316 # with name TypeT. When disabled the typedef will appear as a member of a file, 
+00317 # namespace, or class. And the struct will be named TypeS. This can typically 
+00318 # be useful for C code in case the coding convention dictates that all compound 
+00319 # types are typedef'ed and only the typedef is referenced, never the tag name.
+00320 
+00321 TYPEDEF_HIDES_STRUCT   = NO
+00322 
+00323 # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to 
+00324 # determine which symbols to keep in memory and which to flush to disk. 
+00325 # When the cache is full, less often used symbols will be written to disk. 
+00326 # For small to medium size projects (<1000 input files) the default value is 
+00327 # probably good enough. For larger projects a too small cache size can cause 
+00328 # doxygen to be busy swapping symbols to and from disk most of the time 
+00329 # causing a significant performance penalty. 
+00330 # If the system has enough physical memory increasing the cache will improve the 
+00331 # performance by keeping more symbols in memory. Note that the value works on 
+00332 # a logarithmic scale so increasing the size by one will roughly double the 
+00333 # memory usage. The cache size is given by this formula: 
+00334 # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, 
+00335 # corresponding to a cache size of 2^16 = 65536 symbols
+00336 
+00337 SYMBOL_CACHE_SIZE      = 0
+00338 
+00339 #---------------------------------------------------------------------------
+00340 # Build related configuration options
+00341 #---------------------------------------------------------------------------
+00342 
+00343 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+00344 # documentation are documented, even if no documentation was available. 
+00345 # Private class members and static file members will be hidden unless 
+00346 # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+00347 
+00348 EXTRACT_ALL            = NO
+00349 
+00350 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+00351 # will be included in the documentation.
+00352 
+00353 EXTRACT_PRIVATE        = NO
+00354 
+00355 # If the EXTRACT_STATIC tag is set to YES all static members of a file 
+00356 # will be included in the documentation.
+00357 
+00358 EXTRACT_STATIC         = YES
+00359 
+00360 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+00361 # defined locally in source files will be included in the documentation. 
+00362 # If set to NO only classes defined in header files are included.
+00363 
+00364 EXTRACT_LOCAL_CLASSES  = NO
+00365 
+00366 # This flag is only useful for Objective-C code. When set to YES local 
+00367 # methods, which are defined in the implementation section but not in 
+00368 # the interface are included in the documentation. 
+00369 # If set to NO (the default) only methods in the interface are included.
+00370 
+00371 EXTRACT_LOCAL_METHODS  = NO
+00372 
+00373 # If this flag is set to YES, the members of anonymous namespaces will be 
+00374 # extracted and appear in the documentation as a namespace called 
+00375 # 'anonymous_namespace{file}', where file will be replaced with the base 
+00376 # name of the file that contains the anonymous namespace. By default 
+00377 # anonymous namespaces are hidden.
+00378 
+00379 EXTRACT_ANON_NSPACES   = NO
+00380 
+00381 # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+00382 # undocumented members of documented classes, files or namespaces. 
+00383 # If set to NO (the default) these members will be included in the 
+00384 # various overviews, but no documentation section is generated. 
+00385 # This option has no effect if EXTRACT_ALL is enabled.
+00386 
+00387 HIDE_UNDOC_MEMBERS     = YES
+00388 
+00389 # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+00390 # undocumented classes that are normally visible in the class hierarchy. 
+00391 # If set to NO (the default) these classes will be included in the various 
+00392 # overviews. This option has no effect if EXTRACT_ALL is enabled.
+00393 
+00394 HIDE_UNDOC_CLASSES     = YES
+00395 
+00396 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
+00397 # friend (class|struct|union) declarations. 
+00398 # If set to NO (the default) these declarations will be included in the 
+00399 # documentation.
+00400 
+00401 HIDE_FRIEND_COMPOUNDS  = YES
+00402 
+00403 # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
+00404 # documentation blocks found inside the body of a function. 
+00405 # If set to NO (the default) these blocks will be appended to the 
+00406 # function's detailed documentation block.
+00407 
+00408 HIDE_IN_BODY_DOCS      = YES
+00409 
+00410 # The INTERNAL_DOCS tag determines if documentation 
+00411 # that is typed after a \internal command is included. If the tag is set 
+00412 # to NO (the default) then the documentation will be excluded. 
+00413 # Set it to YES to include the internal documentation.
+00414 
+00415 INTERNAL_DOCS          = NO
+00416 
+00417 # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+00418 # file names in lower-case letters. If set to YES upper-case letters are also 
+00419 # allowed. This is useful if you have classes or files whose names only differ 
+00420 # in case and if your file system supports case sensitive file names. Windows 
+00421 # and Mac users are advised to set this option to NO.
+00422 
+00423 CASE_SENSE_NAMES       = YES
+00424 
+00425 # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+00426 # will show members with their full class and namespace scopes in the 
+00427 # documentation. If set to YES the scope will be hidden.
+00428 
+00429 HIDE_SCOPE_NAMES       = YES
+00430 
+00431 # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+00432 # will put a list of the files that are included by a file in the documentation 
+00433 # of that file.
+00434 
+00435 SHOW_INCLUDE_FILES     = NO
+00436 
+00437 # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen 
+00438 # will list include files with double quotes in the documentation 
+00439 # rather than with sharp brackets.
+00440 
+00441 FORCE_LOCAL_INCLUDES   = NO
+00442 
+00443 # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+00444 # is inserted in the documentation for inline members.
+00445 
+00446 INLINE_INFO            = NO
+00447 
+00448 # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+00449 # will sort the (detailed) documentation of file and class members 
+00450 # alphabetically by member name. If set to NO the members will appear in 
+00451 # declaration order.
+00452 
+00453 SORT_MEMBER_DOCS       = YES
+00454 
+00455 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
+00456 # brief documentation of file, namespace and class members alphabetically 
+00457 # by member name. If set to NO (the default) the members will appear in 
+00458 # declaration order.
+00459 
+00460 SORT_BRIEF_DOCS        = YES
+00461 
+00462 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen 
+00463 # will sort the (brief and detailed) documentation of class members so that 
+00464 # constructors and destructors are listed first. If set to NO (the default) 
+00465 # the constructors will appear in the respective orders defined by 
+00466 # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. 
+00467 # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO 
+00468 # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+00469 
+00470 SORT_MEMBERS_CTORS_1ST = NO
+00471 
+00472 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 
+00473 # hierarchy of group names into alphabetical order. If set to NO (the default) 
+00474 # the group names will appear in their defined order.
+00475 
+00476 SORT_GROUP_NAMES       = NO
+00477 
+00478 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
+00479 # sorted by fully-qualified names, including namespaces. If set to 
+00480 # NO (the default), the class list will be sorted only by class name, 
+00481 # not including the namespace part. 
+00482 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. 
+00483 # Note: This option applies only to the class list, not to the 
+00484 # alphabetical list.
+00485 
+00486 SORT_BY_SCOPE_NAME     = YES
+00487 
+00488 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to 
+00489 # do proper type resolution of all parameters of a function it will reject a 
+00490 # match between the prototype and the implementation of a member function even 
+00491 # if there is only one candidate or it is obvious which candidate to choose 
+00492 # by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen 
+00493 # will still accept a match between prototype and implementation in such cases.
+00494 
+00495 STRICT_PROTO_MATCHING  = NO
+00496 
+00497 # The GENERATE_TODOLIST tag can be used to enable (YES) or 
+00498 # disable (NO) the todo list. This list is created by putting \todo 
+00499 # commands in the documentation.
+00500 
+00501 GENERATE_TODOLIST      = YES
+00502 
+00503 # The GENERATE_TESTLIST tag can be used to enable (YES) or 
+00504 # disable (NO) the test list. This list is created by putting \test 
+00505 # commands in the documentation.
+00506 
+00507 GENERATE_TESTLIST      = YES
+00508 
+00509 # The GENERATE_BUGLIST tag can be used to enable (YES) or 
+00510 # disable (NO) the bug list. This list is created by putting \bug 
+00511 # commands in the documentation.
+00512 
+00513 GENERATE_BUGLIST       = YES
+00514 
+00515 # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
+00516 # disable (NO) the deprecated list. This list is created by putting 
+00517 # \deprecated commands in the documentation.
+00518 
+00519 GENERATE_DEPRECATEDLIST= YES
+00520 
+00521 # The ENABLED_SECTIONS tag can be used to enable conditional 
+00522 # documentation sections, marked by \if sectionname ... \endif.
+00523 
+00524 ENABLED_SECTIONS       = 
+00525 
+00526 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+00527 # the initial value of a variable or macro consists of for it to appear in 
+00528 # the documentation. If the initializer consists of more lines than specified 
+00529 # here it will be hidden. Use a value of 0 to hide initializers completely. 
+00530 # The appearance of the initializer of individual variables and macros in the 
+00531 # documentation can be controlled using \showinitializer or \hideinitializer 
+00532 # command in the documentation regardless of this setting.
+00533 
+00534 MAX_INITIALIZER_LINES  = 30
+00535 
+00536 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+00537 # at the bottom of the documentation of classes and structs. If set to YES the 
+00538 # list will mention the files that were used to generate the documentation.
+00539 
+00540 SHOW_USED_FILES        = NO
+00541 
+00542 # If the sources in your project are distributed over multiple directories 
+00543 # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
+00544 # in the documentation. The default is NO.
+00545 
+00546 SHOW_DIRECTORIES       = NO
+00547 
+00548 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. 
+00549 # This will remove the Files entry from the Quick Index and from the 
+00550 # Folder Tree View (if specified). The default is YES.
+00551 
+00552 SHOW_FILES             = YES
+00553 
+00554 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the 
+00555 # Namespaces page.  This will remove the Namespaces entry from the Quick Index 
+00556 # and from the Folder Tree View (if specified). The default is YES.
+00557 
+00558 SHOW_NAMESPACES        = YES
+00559 
+00560 # The FILE_VERSION_FILTER tag can be used to specify a program or script that 
+00561 # doxygen should invoke to get the current version for each file (typically from 
+00562 # the version control system). Doxygen will invoke the program by executing (via 
+00563 # popen()) the command <command> <input-file>, where <command> is the value of 
+00564 # the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
+00565 # provided by doxygen. Whatever the program writes to standard output 
+00566 # is used as the file version. See the manual for examples.
+00567 
+00568 FILE_VERSION_FILTER    = 
+00569 
+00570 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed 
+00571 # by doxygen. The layout file controls the global structure of the generated 
+00572 # output files in an output format independent way. The create the layout file 
+00573 # that represents doxygen's defaults, run doxygen with the -l option. 
+00574 # You can optionally specify a file name after the option, if omitted 
+00575 # DoxygenLayout.xml will be used as the name of the layout file.
+00576 
+00577 LAYOUT_FILE            = 
+00578 
+00579 # The CITE_BIB_FILES tag can be used to specify one or more bib files 
+00580 # containing the references data. This must be a list of .bib files. The 
+00581 # .bib extension is automatically appended if omitted. Using this command 
+00582 # requires the bibtex tool to be installed. See also 
+00583 # http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style 
+00584 # of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
+00585 # feature you need bibtex and perl available in the search path.
+00586 
+00587 CITE_BIB_FILES         = 
+00588 
+00589 #---------------------------------------------------------------------------
+00590 # configuration options related to warning and progress messages
+00591 #---------------------------------------------------------------------------
+00592 
+00593 # The QUIET tag can be used to turn on/off the messages that are generated 
+00594 # by doxygen. Possible values are YES and NO. If left blank NO is used.
+00595 
+00596 QUIET                  = NO
+00597 
+00598 # The WARNINGS tag can be used to turn on/off the warning messages that are 
+00599 # generated by doxygen. Possible values are YES and NO. If left blank 
+00600 # NO is used.
+00601 
+00602 WARNINGS               = YES
+00603 
+00604 # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+00605 # for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+00606 # automatically be disabled.
+00607 
+00608 WARN_IF_UNDOCUMENTED   = YES
+00609 
+00610 # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
+00611 # potential errors in the documentation, such as not documenting some 
+00612 # parameters in a documented function, or documenting parameters that 
+00613 # don't exist or using markup commands wrongly.
+00614 
+00615 WARN_IF_DOC_ERROR      = YES
+00616 
+00617 # The WARN_NO_PARAMDOC option can be enabled to get warnings for 
+00618 # functions that are documented, but have no documentation for their parameters 
+00619 # or return value. If set to NO (the default) doxygen will only warn about 
+00620 # wrong or incomplete parameter documentation, but not about the absence of 
+00621 # documentation.
+00622 
+00623 WARN_NO_PARAMDOC       = NO
+00624 
+00625 # The WARN_FORMAT tag determines the format of the warning messages that 
+00626 # doxygen can produce. The string should contain the $file, $line, and $text 
+00627 # tags, which will be replaced by the file and line number from which the 
+00628 # warning originated and the warning text. Optionally the format may contain 
+00629 # $version, which will be replaced by the version of the file (if it could 
+00630 # be obtained via FILE_VERSION_FILTER)
+00631 
+00632 WARN_FORMAT            = "$file:$line: $text"
+00633 
+00634 # The WARN_LOGFILE tag can be used to specify a file to which warning 
+00635 # and error messages should be written. If left blank the output is written 
+00636 # to stderr.
+00637 
+00638 WARN_LOGFILE           = 
+00639 
+00640 #---------------------------------------------------------------------------
+00641 # configuration options related to the input files
+00642 #---------------------------------------------------------------------------
+00643 
+00644 # The INPUT tag can be used to specify the files and/or directories that contain 
+00645 # documented source files. You may enter file names like "myfile.cpp" or 
+00646 # directories like "/usr/src/myproject". Separate the files or directories 
+00647 # with spaces.
+00648 
+00649 INPUT                  = ../glm \
+00650                          .
+00651 
+00652 # This tag can be used to specify the character encoding of the source files 
+00653 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
+00654 # also the default input encoding. Doxygen uses libiconv (or the iconv built 
+00655 # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
+00656 # the list of possible encodings.
+00657 
+00658 INPUT_ENCODING         = UTF-8
+00659 
+00660 # If the value of the INPUT tag contains directories, you can use the 
+00661 # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+00662 # and *.h) to filter out the source-files in the directories. If left 
+00663 # blank the following patterns are tested: 
+00664 # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh 
+00665 # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py 
+00666 # *.f90 *.f *.for *.vhd *.vhdl
+00667 
+00668 FILE_PATTERNS          = *.hpp \
+00669                          *.doxy
+00670 
+00671 # The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+00672 # should be searched for input files as well. Possible values are YES and NO. 
+00673 # If left blank NO is used.
+00674 
+00675 RECURSIVE              = YES
+00676 
+00677 # The EXCLUDE tag can be used to specify files and/or directories that should be 
+00678 # excluded from the INPUT source files. This way you can easily exclude a 
+00679 # subdirectory from a directory tree whose root is specified with the INPUT tag. 
+00680 # Note that relative paths are relative to the directory from which doxygen is 
+00681 # run.
+00682 
+00683 EXCLUDE                = 
+00684 
+00685 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or 
+00686 # directories that are symbolic links (a Unix file system feature) are excluded 
+00687 # from the input.
+00688 
+00689 EXCLUDE_SYMLINKS       = NO
+00690 
+00691 # If the value of the INPUT tag contains directories, you can use the 
+00692 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+00693 # certain files from those directories. Note that the wildcards are matched 
+00694 # against the file with absolute path, so to exclude all test directories 
+00695 # for example use the pattern */test/*
+00696 
+00697 EXCLUDE_PATTERNS       = 
+00698 
+00699 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
+00700 # (namespaces, classes, functions, etc.) that should be excluded from the 
+00701 # output. The symbol name can be a fully qualified name, a word, or if the 
+00702 # wildcard * is used, a substring. Examples: ANamespace, AClass, 
+00703 # AClass::ANamespace, ANamespace::*Test
+00704 
+00705 EXCLUDE_SYMBOLS        = 
+00706 
+00707 # The EXAMPLE_PATH tag can be used to specify one or more files or 
+00708 # directories that contain example code fragments that are included (see 
+00709 # the \include command).
+00710 
+00711 EXAMPLE_PATH           = 
+00712 
+00713 # If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+00714 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+00715 # and *.h) to filter out the source-files in the directories. If left 
+00716 # blank all files are included.
+00717 
+00718 EXAMPLE_PATTERNS       = *
+00719 
+00720 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+00721 # searched for input files to be used with the \include or \dontinclude 
+00722 # commands irrespective of the value of the RECURSIVE tag. 
+00723 # Possible values are YES and NO. If left blank NO is used.
+00724 
+00725 EXAMPLE_RECURSIVE      = NO
+00726 
+00727 # The IMAGE_PATH tag can be used to specify one or more files or 
+00728 # directories that contain image that are included in the documentation (see 
+00729 # the \image command).
+00730 
+00731 IMAGE_PATH             = 
+00732 
+00733 # The INPUT_FILTER tag can be used to specify a program that doxygen should 
+00734 # invoke to filter for each input file. Doxygen will invoke the filter program 
+00735 # by executing (via popen()) the command <filter> <input-file>, where <filter> 
+00736 # is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+00737 # input file. Doxygen will then use the output that the filter program writes 
+00738 # to standard output.  If FILTER_PATTERNS is specified, this tag will be 
+00739 # ignored.
+00740 
+00741 INPUT_FILTER           = 
+00742 
+00743 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
+00744 # basis.  Doxygen will compare the file name with each pattern and apply the 
+00745 # filter if there is a match.  The filters are a list of the form: 
+00746 # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
+00747 # info on how filters are used. If FILTER_PATTERNS is empty or if 
+00748 # non of the patterns match the file name, INPUT_FILTER is applied.
+00749 
+00750 FILTER_PATTERNS        = 
+00751 
+00752 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+00753 # INPUT_FILTER) will be used to filter the input files when producing source 
+00754 # files to browse (i.e. when SOURCE_BROWSER is set to YES).
+00755 
+00756 FILTER_SOURCE_FILES    = NO
+00757 
+00758 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file 
+00759 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) 
+00760 # and it is also possible to disable source filtering for a specific pattern 
+00761 # using *.ext= (so without naming a filter). This option only has effect when 
+00762 # FILTER_SOURCE_FILES is enabled.
+00763 
+00764 FILTER_SOURCE_PATTERNS = 
+00765 
+00766 #---------------------------------------------------------------------------
+00767 # configuration options related to source browsing
+00768 #---------------------------------------------------------------------------
+00769 
+00770 # If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+00771 # be generated. Documented entities will be cross-referenced with these sources. 
+00772 # Note: To get rid of all source code in the generated output, make sure also 
+00773 # VERBATIM_HEADERS is set to NO.
+00774 
+00775 SOURCE_BROWSER         = YES
+00776 
+00777 # Setting the INLINE_SOURCES tag to YES will include the body 
+00778 # of functions and classes directly in the documentation.
+00779 
+00780 INLINE_SOURCES         = NO
+00781 
+00782 # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+00783 # doxygen to hide any special comment blocks from generated source code 
+00784 # fragments. Normal C and C++ comments will always remain visible.
+00785 
+00786 STRIP_CODE_COMMENTS    = YES
+00787 
+00788 # If the REFERENCED_BY_RELATION tag is set to YES 
+00789 # then for each documented function all documented 
+00790 # functions referencing it will be listed.
+00791 
+00792 REFERENCED_BY_RELATION = YES
+00793 
+00794 # If the REFERENCES_RELATION tag is set to YES 
+00795 # then for each documented function all documented entities 
+00796 # called/used by that function will be listed.
+00797 
+00798 REFERENCES_RELATION    = YES
+00799 
+00800 # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) 
+00801 # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from 
+00802 # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will 
+00803 # link to the source code.  Otherwise they will link to the documentation.
+00804 
+00805 REFERENCES_LINK_SOURCE = YES
+00806 
+00807 # If the USE_HTAGS tag is set to YES then the references to source code 
+00808 # will point to the HTML generated by the htags(1) tool instead of doxygen 
+00809 # built-in source browser. The htags tool is part of GNU's global source 
+00810 # tagging system (see http://www.gnu.org/software/global/global.html). You 
+00811 # will need version 4.8.6 or higher.
+00812 
+00813 USE_HTAGS              = NO
+00814 
+00815 # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+00816 # will generate a verbatim copy of the header file for each class for 
+00817 # which an include is specified. Set to NO to disable this.
+00818 
+00819 VERBATIM_HEADERS       = YES
+00820 
+00821 #---------------------------------------------------------------------------
+00822 # configuration options related to the alphabetical class index
+00823 #---------------------------------------------------------------------------
+00824 
+00825 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+00826 # of all compounds will be generated. Enable this if the project 
+00827 # contains a lot of classes, structs, unions or interfaces.
+00828 
+00829 ALPHABETICAL_INDEX     = NO
+00830 
+00831 # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+00832 # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+00833 # in which this list will be split (can be a number in the range [1..20])
+00834 
+00835 COLS_IN_ALPHA_INDEX    = 5
+00836 
+00837 # In case all classes in a project start with a common prefix, all 
+00838 # classes will be put under the same header in the alphabetical index. 
+00839 # The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+00840 # should be ignored while generating the index headers.
+00841 
+00842 IGNORE_PREFIX          = 
+00843 
+00844 #---------------------------------------------------------------------------
+00845 # configuration options related to the HTML output
+00846 #---------------------------------------------------------------------------
+00847 
+00848 # If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+00849 # generate HTML output.
+00850 
+00851 GENERATE_HTML          = YES
+00852 
+00853 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+00854 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+00855 # put in front of it. If left blank `html' will be used as the default path.
+00856 
+00857 HTML_OUTPUT            = html
+00858 
+00859 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+00860 # each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
+00861 # doxygen will generate files with .html extension.
+00862 
+00863 HTML_FILE_EXTENSION    = .html
+00864 
+00865 # The HTML_HEADER tag can be used to specify a personal HTML header for 
+00866 # each generated HTML page. If it is left blank doxygen will generate a 
+00867 # standard header. Note that when using a custom header you are responsible  
+00868 # for the proper inclusion of any scripts and style sheets that doxygen 
+00869 # needs, which is dependent on the configuration options used. 
+00870 # It is advised to generate a default header using "doxygen -w html 
+00871 # header.html footer.html stylesheet.css YourConfigFile" and then modify 
+00872 # that header. Note that the header is subject to change so you typically 
+00873 # have to redo this when upgrading to a newer version of doxygen or when 
+00874 # changing the value of configuration settings such as GENERATE_TREEVIEW!
+00875 
+00876 HTML_HEADER            = 
+00877 
+00878 # The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+00879 # each generated HTML page. If it is left blank doxygen will generate a 
+00880 # standard footer.
+00881 
+00882 HTML_FOOTER            = 
+00883 
+00884 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+00885 # style sheet that is used by each HTML page. It can be used to 
+00886 # fine-tune the look of the HTML output. If the tag is left blank doxygen 
+00887 # will generate a default style sheet. Note that doxygen will try to copy 
+00888 # the style sheet file to the HTML output directory, so don't put your own 
+00889 # style sheet in the HTML output directory as well, or it will be erased!
+00890 
+00891 HTML_STYLESHEET        = 
+00892 
+00893 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or 
+00894 # other source files which should be copied to the HTML output directory. Note 
+00895 # that these files will be copied to the base HTML output directory. Use the 
+00896 # $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these 
+00897 # files. In the HTML_STYLESHEET file, use the file name only. Also note that 
+00898 # the files will be copied as-is; there are no commands or markers available.
+00899 
+00900 HTML_EXTRA_FILES       = 
+00901 
+00902 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. 
+00903 # Doxygen will adjust the colors in the style sheet and background images 
+00904 # according to this color. Hue is specified as an angle on a colorwheel, 
+00905 # see http://en.wikipedia.org/wiki/Hue for more information. 
+00906 # For instance the value 0 represents red, 60 is yellow, 120 is green, 
+00907 # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. 
+00908 # The allowed range is 0 to 359.
+00909 
+00910 HTML_COLORSTYLE_HUE    = 220
+00911 
+00912 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of 
+00913 # the colors in the HTML output. For a value of 0 the output will use 
+00914 # grayscales only. A value of 255 will produce the most vivid colors.
+00915 
+00916 HTML_COLORSTYLE_SAT    = 100
+00917 
+00918 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to 
+00919 # the luminance component of the colors in the HTML output. Values below 
+00920 # 100 gradually make the output lighter, whereas values above 100 make 
+00921 # the output darker. The value divided by 100 is the actual gamma applied, 
+00922 # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, 
+00923 # and 100 does not change the gamma.
+00924 
+00925 HTML_COLORSTYLE_GAMMA  = 80
+00926 
+00927 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML 
+00928 # page will contain the date and time when the page was generated. Setting 
+00929 # this to NO can help when comparing the output of multiple runs.
+00930 
+00931 HTML_TIMESTAMP         = NO
+00932 
+00933 # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+00934 # files or namespaces will be aligned in HTML using tables. If set to 
+00935 # NO a bullet list will be used.
+00936 
+00937 HTML_ALIGN_MEMBERS     = YES
+00938 
+00939 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 
+00940 # documentation will contain sections that can be hidden and shown after the 
+00941 # page has loaded. For this to work a browser that supports 
+00942 # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 
+00943 # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+00944 
+00945 HTML_DYNAMIC_SECTIONS  = NO
+00946 
+00947 # If the GENERATE_DOCSET tag is set to YES, additional index files 
+00948 # will be generated that can be used as input for Apple's Xcode 3 
+00949 # integrated development environment, introduced with OSX 10.5 (Leopard). 
+00950 # To create a documentation set, doxygen will generate a Makefile in the 
+00951 # HTML output directory. Running make will produce the docset in that 
+00952 # directory and running "make install" will install the docset in 
+00953 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 
+00954 # it at startup. 
+00955 # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html 
+00956 # for more information.
+00957 
+00958 GENERATE_DOCSET        = NO
+00959 
+00960 # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 
+00961 # feed. A documentation feed provides an umbrella under which multiple 
+00962 # documentation sets from a single provider (such as a company or product suite) 
+00963 # can be grouped.
+00964 
+00965 DOCSET_FEEDNAME        = "Doxygen generated docs"
+00966 
+00967 # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 
+00968 # should uniquely identify the documentation set bundle. This should be a 
+00969 # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 
+00970 # will append .docset to the name.
+00971 
+00972 DOCSET_BUNDLE_ID       = org.doxygen.Project
+00973 
+00974 # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify 
+00975 # the documentation publisher. This should be a reverse domain-name style 
+00976 # string, e.g. com.mycompany.MyDocSet.documentation.
+00977 
+00978 DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+00979 
+00980 # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
+00981 
+00982 DOCSET_PUBLISHER_NAME  = Publisher
+00983 
+00984 # If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+00985 # will be generated that can be used as input for tools like the 
+00986 # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 
+00987 # of the generated HTML documentation.
+00988 
+00989 GENERATE_HTMLHELP      = NO
+00990 
+00991 # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
+00992 # be used to specify the file name of the resulting .chm file. You 
+00993 # can add a path in front of the file if the result should not be 
+00994 # written to the html output directory.
+00995 
+00996 CHM_FILE               = 
+00997 
+00998 # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
+00999 # be used to specify the location (absolute path including file name) of 
+01000 # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+01001 # the HTML help compiler on the generated index.hhp.
+01002 
+01003 HHC_LOCATION           = 
+01004 
+01005 # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+01006 # controls if a separate .chi index file is generated (YES) or that 
+01007 # it should be included in the master .chm file (NO).
+01008 
+01009 GENERATE_CHI           = NO
+01010 
+01011 # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING 
+01012 # is used to encode HtmlHelp index (hhk), content (hhc) and project file 
+01013 # content.
+01014 
+01015 CHM_INDEX_ENCODING     = 
+01016 
+01017 # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+01018 # controls whether a binary table of contents is generated (YES) or a 
+01019 # normal table of contents (NO) in the .chm file.
+01020 
+01021 BINARY_TOC             = NO
+01022 
+01023 # The TOC_EXPAND flag can be set to YES to add extra items for group members 
+01024 # to the contents of the HTML help documentation and to the tree view.
+01025 
+01026 TOC_EXPAND             = NO
+01027 
+01028 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and 
+01029 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated 
+01030 # that can be used as input for Qt's qhelpgenerator to generate a 
+01031 # Qt Compressed Help (.qch) of the generated HTML documentation.
+01032 
+01033 GENERATE_QHP           = NO
+01034 
+01035 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can 
+01036 # be used to specify the file name of the resulting .qch file. 
+01037 # The path specified is relative to the HTML output folder.
+01038 
+01039 QCH_FILE               = 
+01040 
+01041 # The QHP_NAMESPACE tag specifies the namespace to use when generating 
+01042 # Qt Help Project output. For more information please see 
+01043 # http://doc.trolltech.com/qthelpproject.html#namespace
+01044 
+01045 QHP_NAMESPACE          = org.doxygen.Project
+01046 
+01047 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating 
+01048 # Qt Help Project output. For more information please see 
+01049 # http://doc.trolltech.com/qthelpproject.html#virtual-folders
+01050 
+01051 QHP_VIRTUAL_FOLDER     = doc
+01052 
+01053 # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to 
+01054 # add. For more information please see 
+01055 # http://doc.trolltech.com/qthelpproject.html#custom-filters
+01056 
+01057 QHP_CUST_FILTER_NAME   = 
+01058 
+01059 # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the 
+01060 # custom filter to add. For more information please see 
+01061 # <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> 
+01062 # Qt Help Project / Custom Filters</a>.
+01063 
+01064 QHP_CUST_FILTER_ATTRS  = 
+01065 
+01066 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this 
+01067 # project's 
+01068 # filter section matches. 
+01069 # <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> 
+01070 # Qt Help Project / Filter Attributes</a>.
+01071 
+01072 QHP_SECT_FILTER_ATTRS  = 
+01073 
+01074 # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can 
+01075 # be used to specify the location of Qt's qhelpgenerator. 
+01076 # If non-empty doxygen will try to run qhelpgenerator on the generated 
+01077 # .qhp file.
+01078 
+01079 QHG_LOCATION           = 
+01080 
+01081 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files  
+01082 # will be generated, which together with the HTML files, form an Eclipse help 
+01083 # plugin. To install this plugin and make it available under the help contents 
+01084 # menu in Eclipse, the contents of the directory containing the HTML and XML 
+01085 # files needs to be copied into the plugins directory of eclipse. The name of 
+01086 # the directory within the plugins directory should be the same as 
+01087 # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before 
+01088 # the help appears.
+01089 
+01090 GENERATE_ECLIPSEHELP   = NO
+01091 
+01092 # A unique identifier for the eclipse help plugin. When installing the plugin 
+01093 # the directory name containing the HTML and XML files should also have 
+01094 # this name.
+01095 
+01096 ECLIPSE_DOC_ID         = org.doxygen.Project
+01097 
+01098 # The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) 
+01099 # at top of each HTML page. The value NO (the default) enables the index and 
+01100 # the value YES disables it. Since the tabs have the same information as the 
+01101 # navigation tree you can set this option to NO if you already set 
+01102 # GENERATE_TREEVIEW to YES.
+01103 
+01104 DISABLE_INDEX          = NO
+01105 
+01106 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index 
+01107 # structure should be generated to display hierarchical information. 
+01108 # If the tag value is set to YES, a side panel will be generated 
+01109 # containing a tree-like index structure (just like the one that 
+01110 # is generated for HTML Help). For this to work a browser that supports 
+01111 # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). 
+01112 # Windows users are probably better off using the HTML help feature. 
+01113 # Since the tree basically has the same information as the tab index you 
+01114 # could consider to set DISABLE_INDEX to NO when enabling this option.
+01115 
+01116 GENERATE_TREEVIEW      = NO
+01117 
+01118 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values 
+01119 # (range [0,1..20]) that doxygen will group on one line in the generated HTML 
+01120 # documentation. Note that a value of 0 will completely suppress the enum 
+01121 # values from appearing in the overview section.
+01122 
+01123 ENUM_VALUES_PER_LINE   = 4
+01124 
+01125 # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, 
+01126 # and Class Hierarchy pages using a tree view instead of an ordered list.
+01127 
+01128 USE_INLINE_TREES       = NO
+01129 
+01130 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+01131 # used to set the initial width (in pixels) of the frame in which the tree 
+01132 # is shown.
+01133 
+01134 TREEVIEW_WIDTH         = 250
+01135 
+01136 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open 
+01137 # links to external symbols imported via tag files in a separate window.
+01138 
+01139 EXT_LINKS_IN_WINDOW    = NO
+01140 
+01141 # Use this tag to change the font size of Latex formulas included 
+01142 # as images in the HTML documentation. The default is 10. Note that 
+01143 # when you change the font size after a successful doxygen run you need 
+01144 # to manually remove any form_*.png images from the HTML output directory 
+01145 # to force them to be regenerated.
+01146 
+01147 FORMULA_FONTSIZE       = 10
+01148 
+01149 # Use the FORMULA_TRANPARENT tag to determine whether or not the images 
+01150 # generated for formulas are transparent PNGs. Transparent PNGs are 
+01151 # not supported properly for IE 6.0, but are supported on all modern browsers. 
+01152 # Note that when changing this option you need to delete any form_*.png files 
+01153 # in the HTML output before the changes have effect.
+01154 
+01155 FORMULA_TRANSPARENT    = YES
+01156 
+01157 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax 
+01158 # (see http://www.mathjax.org) which uses client side Javascript for the 
+01159 # rendering instead of using prerendered bitmaps. Use this if you do not 
+01160 # have LaTeX installed or if you want to formulas look prettier in the HTML 
+01161 # output. When enabled you also need to install MathJax separately and 
+01162 # configure the path to it using the MATHJAX_RELPATH option.
+01163 
+01164 USE_MATHJAX            = NO
+01165 
+01166 # When MathJax is enabled you need to specify the location relative to the 
+01167 # HTML output directory using the MATHJAX_RELPATH option. The destination 
+01168 # directory should contain the MathJax.js script. For instance, if the mathjax 
+01169 # directory is located at the same level as the HTML output directory, then 
+01170 # MATHJAX_RELPATH should be ../mathjax. The default value points to the 
+01171 # mathjax.org site, so you can quickly see the result without installing 
+01172 # MathJax, but it is strongly recommended to install a local copy of MathJax 
+01173 # before deployment.
+01174 
+01175 MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
+01176 
+01177 # The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension 
+01178 # names that should be enabled during MathJax rendering.
+01179 
+01180 MATHJAX_EXTENSIONS     = 
+01181 
+01182 # When the SEARCHENGINE tag is enabled doxygen will generate a search box 
+01183 # for the HTML output. The underlying search engine uses javascript 
+01184 # and DHTML and should work on any modern browser. Note that when using 
+01185 # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets 
+01186 # (GENERATE_DOCSET) there is already a search function so this one should 
+01187 # typically be disabled. For large projects the javascript based search engine 
+01188 # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+01189 
+01190 SEARCHENGINE           = NO
+01191 
+01192 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be 
+01193 # implemented using a PHP enabled web server instead of at the web client 
+01194 # using Javascript. Doxygen will generate the search PHP script and index 
+01195 # file to put on the web server. The advantage of the server 
+01196 # based approach is that it scales better to large projects and allows 
+01197 # full text search. The disadvantages are that it is more difficult to setup 
+01198 # and does not have live searching capabilities.
+01199 
+01200 SERVER_BASED_SEARCH    = NO
+01201 
+01202 #---------------------------------------------------------------------------
+01203 # configuration options related to the LaTeX output
+01204 #---------------------------------------------------------------------------
+01205 
+01206 # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+01207 # generate Latex output.
+01208 
+01209 GENERATE_LATEX         = NO
+01210 
+01211 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+01212 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+01213 # put in front of it. If left blank `latex' will be used as the default path.
+01214 
+01215 LATEX_OUTPUT           = latex
+01216 
+01217 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
+01218 # invoked. If left blank `latex' will be used as the default command name. 
+01219 # Note that when enabling USE_PDFLATEX this option is only used for 
+01220 # generating bitmaps for formulas in the HTML output, but not in the 
+01221 # Makefile that is written to the output directory.
+01222 
+01223 LATEX_CMD_NAME         = latex
+01224 
+01225 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+01226 # generate index for LaTeX. If left blank `makeindex' will be used as the 
+01227 # default command name.
+01228 
+01229 MAKEINDEX_CMD_NAME     = makeindex
+01230 
+01231 # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+01232 # LaTeX documents. This may be useful for small projects and may help to 
+01233 # save some trees in general.
+01234 
+01235 COMPACT_LATEX          = NO
+01236 
+01237 # The PAPER_TYPE tag can be used to set the paper type that is used 
+01238 # by the printer. Possible values are: a4, letter, legal and 
+01239 # executive. If left blank a4wide will be used.
+01240 
+01241 PAPER_TYPE             = a4wide
+01242 
+01243 # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+01244 # packages that should be included in the LaTeX output.
+01245 
+01246 EXTRA_PACKAGES         = 
+01247 
+01248 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+01249 # the generated latex document. The header should contain everything until 
+01250 # the first chapter. If it is left blank doxygen will generate a 
+01251 # standard header. Notice: only use this tag if you know what you are doing!
+01252 
+01253 LATEX_HEADER           = 
+01254 
+01255 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for 
+01256 # the generated latex document. The footer should contain everything after 
+01257 # the last chapter. If it is left blank doxygen will generate a 
+01258 # standard footer. Notice: only use this tag if you know what you are doing!
+01259 
+01260 LATEX_FOOTER           = 
+01261 
+01262 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+01263 # is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+01264 # contain links (just like the HTML output) instead of page references 
+01265 # This makes the output suitable for online browsing using a pdf viewer.
+01266 
+01267 PDF_HYPERLINKS         = NO
+01268 
+01269 # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+01270 # plain latex in the generated Makefile. Set this option to YES to get a 
+01271 # higher quality PDF documentation.
+01272 
+01273 USE_PDFLATEX           = YES
+01274 
+01275 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+01276 # command to the generated LaTeX files. This will instruct LaTeX to keep 
+01277 # running if errors occur, instead of asking the user for help. 
+01278 # This option is also used when generating formulas in HTML.
+01279 
+01280 LATEX_BATCHMODE        = NO
+01281 
+01282 # If LATEX_HIDE_INDICES is set to YES then doxygen will not 
+01283 # include the index chapters (such as File Index, Compound Index, etc.) 
+01284 # in the output.
+01285 
+01286 LATEX_HIDE_INDICES     = NO
+01287 
+01288 # If LATEX_SOURCE_CODE is set to YES then doxygen will include 
+01289 # source code with syntax highlighting in the LaTeX output. 
+01290 # Note that which sources are shown also depends on other settings 
+01291 # such as SOURCE_BROWSER.
+01292 
+01293 LATEX_SOURCE_CODE      = NO
+01294 
+01295 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the 
+01296 # bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See 
+01297 # http://en.wikipedia.org/wiki/BibTeX for more info.
+01298 
+01299 LATEX_BIB_STYLE        = plain
+01300 
+01301 #---------------------------------------------------------------------------
+01302 # configuration options related to the RTF output
+01303 #---------------------------------------------------------------------------
+01304 
+01305 # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+01306 # The RTF output is optimized for Word 97 and may not look very pretty with 
+01307 # other RTF readers or editors.
+01308 
+01309 GENERATE_RTF           = NO
+01310 
+01311 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+01312 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+01313 # put in front of it. If left blank `rtf' will be used as the default path.
+01314 
+01315 RTF_OUTPUT             = glm.rtf
+01316 
+01317 # If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+01318 # RTF documents. This may be useful for small projects and may help to 
+01319 # save some trees in general.
+01320 
+01321 COMPACT_RTF            = NO
+01322 
+01323 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+01324 # will contain hyperlink fields. The RTF file will 
+01325 # contain links (just like the HTML output) instead of page references. 
+01326 # This makes the output suitable for online browsing using WORD or other 
+01327 # programs which support those fields. 
+01328 # Note: wordpad (write) and others do not support links.
+01329 
+01330 RTF_HYPERLINKS         = YES
+01331 
+01332 # Load style sheet definitions from file. Syntax is similar to doxygen's 
+01333 # config file, i.e. a series of assignments. You only have to provide 
+01334 # replacements, missing definitions are set to their default value.
+01335 
+01336 RTF_STYLESHEET_FILE    = 
+01337 
+01338 # Set optional variables used in the generation of an rtf document. 
+01339 # Syntax is similar to doxygen's config file.
+01340 
+01341 RTF_EXTENSIONS_FILE    = 
+01342 
+01343 #---------------------------------------------------------------------------
+01344 # configuration options related to the man page output
+01345 #---------------------------------------------------------------------------
+01346 
+01347 # If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+01348 # generate man pages
+01349 
+01350 GENERATE_MAN           = NO
+01351 
+01352 # The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+01353 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+01354 # put in front of it. If left blank `man' will be used as the default path.
+01355 
+01356 MAN_OUTPUT             = man
+01357 
+01358 # The MAN_EXTENSION tag determines the extension that is added to 
+01359 # the generated man pages (default is the subroutine's section .3)
+01360 
+01361 MAN_EXTENSION          = .3
+01362 
+01363 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+01364 # then it will generate one additional man file for each entity 
+01365 # documented in the real man page(s). These additional files 
+01366 # only source the real man page, but without them the man command 
+01367 # would be unable to find the correct page. The default is NO.
+01368 
+01369 MAN_LINKS              = NO
+01370 
+01371 #---------------------------------------------------------------------------
+01372 # configuration options related to the XML output
+01373 #---------------------------------------------------------------------------
+01374 
+01375 # If the GENERATE_XML tag is set to YES Doxygen will 
+01376 # generate an XML file that captures the structure of 
+01377 # the code including all documentation.
+01378 
+01379 GENERATE_XML           = NO
+01380 
+01381 # The XML_OUTPUT tag is used to specify where the XML pages will be put. 
+01382 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+01383 # put in front of it. If left blank `xml' will be used as the default path.
+01384 
+01385 XML_OUTPUT             = xml
+01386 
+01387 # The XML_SCHEMA tag can be used to specify an XML schema, 
+01388 # which can be used by a validating XML parser to check the 
+01389 # syntax of the XML files.
+01390 
+01391 XML_SCHEMA             = 
+01392 
+01393 # The XML_DTD tag can be used to specify an XML DTD, 
+01394 # which can be used by a validating XML parser to check the 
+01395 # syntax of the XML files.
+01396 
+01397 XML_DTD                = 
+01398 
+01399 # If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
+01400 # dump the program listings (including syntax highlighting 
+01401 # and cross-referencing information) to the XML output. Note that 
+01402 # enabling this will significantly increase the size of the XML output.
+01403 
+01404 XML_PROGRAMLISTING     = YES
+01405 
+01406 #---------------------------------------------------------------------------
+01407 # configuration options for the AutoGen Definitions output
+01408 #---------------------------------------------------------------------------
+01409 
+01410 # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+01411 # generate an AutoGen Definitions (see autogen.sf.net) file 
+01412 # that captures the structure of the code including all 
+01413 # documentation. Note that this feature is still experimental 
+01414 # and incomplete at the moment.
+01415 
+01416 GENERATE_AUTOGEN_DEF   = NO
+01417 
+01418 #---------------------------------------------------------------------------
+01419 # configuration options related to the Perl module output
+01420 #---------------------------------------------------------------------------
+01421 
+01422 # If the GENERATE_PERLMOD tag is set to YES Doxygen will 
+01423 # generate a Perl module file that captures the structure of 
+01424 # the code including all documentation. Note that this 
+01425 # feature is still experimental and incomplete at the 
+01426 # moment.
+01427 
+01428 GENERATE_PERLMOD       = NO
+01429 
+01430 # If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
+01431 # the necessary Makefile rules, Perl scripts and LaTeX code to be able 
+01432 # to generate PDF and DVI output from the Perl module output.
+01433 
+01434 PERLMOD_LATEX          = NO
+01435 
+01436 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
+01437 # nicely formatted so it can be parsed by a human reader.  This is useful 
+01438 # if you want to understand what is going on.  On the other hand, if this 
+01439 # tag is set to NO the size of the Perl module output will be much smaller 
+01440 # and Perl will parse it just the same.
+01441 
+01442 PERLMOD_PRETTY         = YES
+01443 
+01444 # The names of the make variables in the generated doxyrules.make file 
+01445 # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
+01446 # This is useful so different doxyrules.make files included by the same 
+01447 # Makefile don't overwrite each other's variables.
+01448 
+01449 PERLMOD_MAKEVAR_PREFIX = 
+01450 
+01451 #---------------------------------------------------------------------------
+01452 # Configuration options related to the preprocessor
+01453 #---------------------------------------------------------------------------
+01454 
+01455 # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+01456 # evaluate all C-preprocessor directives found in the sources and include 
+01457 # files.
+01458 
+01459 ENABLE_PREPROCESSING   = YES
+01460 
+01461 # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+01462 # names in the source code. If set to NO (the default) only conditional 
+01463 # compilation will be performed. Macro expansion can be done in a controlled 
+01464 # way by setting EXPAND_ONLY_PREDEF to YES.
+01465 
+01466 MACRO_EXPANSION        = NO
+01467 
+01468 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+01469 # then the macro expansion is limited to the macros specified with the 
+01470 # PREDEFINED and EXPAND_AS_DEFINED tags.
+01471 
+01472 EXPAND_ONLY_PREDEF     = NO
+01473 
+01474 # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+01475 # pointed to by INCLUDE_PATH will be searched when a #include is found.
+01476 
+01477 SEARCH_INCLUDES        = YES
+01478 
+01479 # The INCLUDE_PATH tag can be used to specify one or more directories that 
+01480 # contain include files that are not input files but should be processed by 
+01481 # the preprocessor.
+01482 
+01483 INCLUDE_PATH           = 
+01484 
+01485 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+01486 # patterns (like *.h and *.hpp) to filter out the header-files in the 
+01487 # directories. If left blank, the patterns specified with FILE_PATTERNS will 
+01488 # be used.
+01489 
+01490 INCLUDE_FILE_PATTERNS  = 
+01491 
+01492 # The PREDEFINED tag can be used to specify one or more macro names that 
+01493 # are defined before the preprocessor is started (similar to the -D option of 
+01494 # gcc). The argument of the tag is a list of macros of the form: name 
+01495 # or name=definition (no spaces). If the definition and the = are 
+01496 # omitted =1 is assumed. To prevent a macro definition from being 
+01497 # undefined via #undef or recursively expanded use the := operator 
+01498 # instead of the = operator.
+01499 
+01500 PREDEFINED             = 
+01501 
+01502 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
+01503 # this tag can be used to specify a list of macro names that should be expanded. 
+01504 # The macro definition that is found in the sources will be used. 
+01505 # Use the PREDEFINED tag if you want to use a different macro definition that 
+01506 # overrules the definition found in the source code.
+01507 
+01508 EXPAND_AS_DEFINED      = 
+01509 
+01510 # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+01511 # doxygen's preprocessor will remove all references to function-like macros 
+01512 # that are alone on a line, have an all uppercase name, and do not end with a 
+01513 # semicolon, because these will confuse the parser if not removed.
+01514 
+01515 SKIP_FUNCTION_MACROS   = YES
+01516 
+01517 #---------------------------------------------------------------------------
+01518 # Configuration::additions related to external references
+01519 #---------------------------------------------------------------------------
+01520 
+01521 # The TAGFILES option can be used to specify one or more tagfiles. 
+01522 # Optionally an initial location of the external documentation 
+01523 # can be added for each tagfile. The format of a tag file without 
+01524 # this location is as follows: 
+01525 #   TAGFILES = file1 file2 ... 
+01526 # Adding location for the tag files is done as follows: 
+01527 #   TAGFILES = file1=loc1 "file2 = loc2" ... 
+01528 # where "loc1" and "loc2" can be relative or absolute paths or 
+01529 # URLs. If a location is present for each tag, the installdox tool 
+01530 # does not have to be run to correct the links. 
+01531 # Note that each tag file must have a unique name 
+01532 # (where the name does NOT include the path) 
+01533 # If a tag file is not located in the directory in which doxygen 
+01534 # is run, you must also specify the path to the tagfile here.
+01535 
+01536 TAGFILES               = 
+01537 
+01538 # When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+01539 # a tag file that is based on the input files it reads.
+01540 
+01541 GENERATE_TAGFILE       = 
+01542 
+01543 # If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+01544 # in the class index. If set to NO only the inherited external classes 
+01545 # will be listed.
+01546 
+01547 ALLEXTERNALS           = NO
+01548 
+01549 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
+01550 # in the modules index. If set to NO, only the current project's groups will 
+01551 # be listed.
+01552 
+01553 EXTERNAL_GROUPS        = YES
+01554 
+01555 # The PERL_PATH should be the absolute path and name of the perl script 
+01556 # interpreter (i.e. the result of `which perl').
+01557 
+01558 PERL_PATH              = /usr/bin/perl
+01559 
+01560 #---------------------------------------------------------------------------
+01561 # Configuration options related to the dot tool
+01562 #---------------------------------------------------------------------------
+01563 
+01564 # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+01565 # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
+01566 # or super classes. Setting the tag to NO turns the diagrams off. Note that 
+01567 # this option also works with HAVE_DOT disabled, but it is recommended to 
+01568 # install and use dot, since it yields more powerful graphs.
+01569 
+01570 CLASS_DIAGRAMS         = YES
+01571 
+01572 # You can define message sequence charts within doxygen comments using the \msc 
+01573 # command. Doxygen will then run the mscgen tool (see 
+01574 # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 
+01575 # documentation. The MSCGEN_PATH tag allows you to specify the directory where 
+01576 # the mscgen tool resides. If left empty the tool is assumed to be found in the 
+01577 # default search path.
+01578 
+01579 MSCGEN_PATH            = 
+01580 
+01581 # If set to YES, the inheritance and collaboration graphs will hide 
+01582 # inheritance and usage relations if the target is undocumented 
+01583 # or is not a class.
+01584 
+01585 HIDE_UNDOC_RELATIONS   = YES
+01586 
+01587 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+01588 # available from the path. This tool is part of Graphviz, a graph visualization 
+01589 # toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+01590 # have no effect if this option is set to NO (the default)
+01591 
+01592 HAVE_DOT               = NO
+01593 
+01594 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is 
+01595 # allowed to run in parallel. When set to 0 (the default) doxygen will 
+01596 # base this on the number of processors available in the system. You can set it 
+01597 # explicitly to a value larger than 0 to get control over the balance 
+01598 # between CPU load and processing speed.
+01599 
+01600 DOT_NUM_THREADS        = 0
+01601 
+01602 # By default doxygen will use the Helvetica font for all dot files that 
+01603 # doxygen generates. When you want a differently looking font you can specify 
+01604 # the font name using DOT_FONTNAME. You need to make sure dot is able to find 
+01605 # the font, which can be done by putting it in a standard location or by setting 
+01606 # the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the 
+01607 # directory containing the font.
+01608 
+01609 DOT_FONTNAME           = FreeSans
+01610 
+01611 # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. 
+01612 # The default size is 10pt.
+01613 
+01614 DOT_FONTSIZE           = 10
+01615 
+01616 # By default doxygen will tell dot to use the Helvetica font. 
+01617 # If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to 
+01618 # set the path where dot can find it.
+01619 
+01620 DOT_FONTPATH           = 
+01621 
+01622 # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+01623 # will generate a graph for each documented class showing the direct and 
+01624 # indirect inheritance relations. Setting this tag to YES will force the 
+01625 # CLASS_DIAGRAMS tag to NO.
+01626 
+01627 CLASS_GRAPH            = YES
+01628 
+01629 # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+01630 # will generate a graph for each documented class showing the direct and 
+01631 # indirect implementation dependencies (inheritance, containment, and 
+01632 # class references variables) of the class with other documented classes.
+01633 
+01634 COLLABORATION_GRAPH    = YES
+01635 
+01636 # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
+01637 # will generate a graph for groups, showing the direct groups dependencies
+01638 
+01639 GROUP_GRAPHS           = YES
+01640 
+01641 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
+01642 # collaboration diagrams in a style similar to the OMG's Unified Modeling 
+01643 # Language.
+01644 
+01645 UML_LOOK               = NO
+01646 
+01647 # If set to YES, the inheritance and collaboration graphs will show the 
+01648 # relations between templates and their instances.
+01649 
+01650 TEMPLATE_RELATIONS     = NO
+01651 
+01652 # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+01653 # tags are set to YES then doxygen will generate a graph for each documented 
+01654 # file showing the direct and indirect include dependencies of the file with 
+01655 # other documented files.
+01656 
+01657 INCLUDE_GRAPH          = YES
+01658 
+01659 # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+01660 # HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+01661 # documented header file showing the documented files that directly or 
+01662 # indirectly include this file.
+01663 
+01664 INCLUDED_BY_GRAPH      = YES
+01665 
+01666 # If the CALL_GRAPH and HAVE_DOT options are set to YES then 
+01667 # doxygen will generate a call dependency graph for every global function 
+01668 # or class method. Note that enabling this option will significantly increase 
+01669 # the time of a run. So in most cases it will be better to enable call graphs 
+01670 # for selected functions only using the \callgraph command.
+01671 
+01672 CALL_GRAPH             = YES
+01673 
+01674 # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 
+01675 # doxygen will generate a caller dependency graph for every global function 
+01676 # or class method. Note that enabling this option will significantly increase 
+01677 # the time of a run. So in most cases it will be better to enable caller 
+01678 # graphs for selected functions only using the \callergraph command.
+01679 
+01680 CALLER_GRAPH           = YES
+01681 
+01682 # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+01683 # will generate a graphical hierarchy of all classes instead of a textual one.
+01684 
+01685 GRAPHICAL_HIERARCHY    = YES
+01686 
+01687 # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
+01688 # then doxygen will show the dependencies a directory has on other directories 
+01689 # in a graphical way. The dependency relations are determined by the #include 
+01690 # relations between the files in the directories.
+01691 
+01692 DIRECTORY_GRAPH        = YES
+01693 
+01694 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
+01695 # generated by dot. Possible values are svg, png, jpg, or gif. 
+01696 # If left blank png will be used. If you choose svg you need to set 
+01697 # HTML_FILE_EXTENSION to xhtml in order to make the SVG files 
+01698 # visible in IE 9+ (other browsers do not have this requirement).
+01699 
+01700 DOT_IMAGE_FORMAT       = png
+01701 
+01702 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to 
+01703 # enable generation of interactive SVG images that allow zooming and panning. 
+01704 # Note that this requires a modern browser other than Internet Explorer. 
+01705 # Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you 
+01706 # need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files 
+01707 # visible. Older versions of IE do not have SVG support.
+01708 
+01709 INTERACTIVE_SVG        = NO
+01710 
+01711 # The tag DOT_PATH can be used to specify the path where the dot tool can be 
+01712 # found. If left blank, it is assumed the dot tool can be found in the path.
+01713 
+01714 DOT_PATH               = 
+01715 
+01716 # The DOTFILE_DIRS tag can be used to specify one or more directories that 
+01717 # contain dot files that are included in the documentation (see the 
+01718 # \dotfile command).
+01719 
+01720 DOTFILE_DIRS           = 
+01721 
+01722 # The MSCFILE_DIRS tag can be used to specify one or more directories that 
+01723 # contain msc files that are included in the documentation (see the 
+01724 # \mscfile command).
+01725 
+01726 MSCFILE_DIRS           = 
+01727 
+01728 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
+01729 # nodes that will be shown in the graph. If the number of nodes in a graph 
+01730 # becomes larger than this value, doxygen will truncate the graph, which is 
+01731 # visualized by representing a node as a red box. Note that doxygen if the 
+01732 # number of direct children of the root node in a graph is already larger than 
+01733 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 
+01734 # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+01735 
+01736 DOT_GRAPH_MAX_NODES    = 50
+01737 
+01738 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+01739 # graphs generated by dot. A depth value of 3 means that only nodes reachable 
+01740 # from the root by following a path via at most 3 edges will be shown. Nodes 
+01741 # that lay further from the root node will be omitted. Note that setting this 
+01742 # option to 1 or 2 may greatly reduce the computation time needed for large 
+01743 # code bases. Also note that the size of a graph can be further restricted by 
+01744 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+01745 
+01746 MAX_DOT_GRAPH_DEPTH    = 1000
+01747 
+01748 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
+01749 # background. This is disabled by default, because dot on Windows does not 
+01750 # seem to support this out of the box. Warning: Depending on the platform used, 
+01751 # enabling this option may lead to badly anti-aliased labels on the edges of 
+01752 # a graph (i.e. they become hard to read).
+01753 
+01754 DOT_TRANSPARENT        = NO
+01755 
+01756 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
+01757 # files in one run (i.e. multiple -o and -T options on the command line). This 
+01758 # makes dot run faster, but since only newer versions of dot (>1.8.10) 
+01759 # support this, this feature is disabled by default.
+01760 
+01761 DOT_MULTI_TARGETS      = NO
+01762 
+01763 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+01764 # generate a legend page explaining the meaning of the various boxes and 
+01765 # arrows in the dot generated graphs.
+01766 
+01767 GENERATE_LEGEND        = YES
+01768 
+01769 # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+01770 # remove the intermediate dot files that are used to generate 
+01771 # the various graphs.
+01772 
+01773 DOT_CLEANUP            = YES
+
+
+ + + + + + diff --git a/doc/api/a00052.html b/doc/api/a00052.html new file mode 100644 index 00000000..0340dfb5 --- /dev/null +++ b/doc/api/a00052.html @@ -0,0 +1,92 @@ + + + + + +matrix_access.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
matrix_access.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename genType >
genType::col_type column (genType const &m, int index)
template<typename genType >
genType column (genType const &m, int index, typename genType::col_type const &x)
template<typename genType >
genType::row_type row (genType const &m, int index)
template<typename genType >
genType row (genType const &m, int index, typename genType::row_type const &x)
+

Detailed Description

+

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.

+

GLM_GTC_matrix_access: Access matrix rows and columns

+
Date:
2005-12-27 / 2011-05-16
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file matrix_access.hpp.

+
+ + + + + + diff --git a/doc/api/a00052_source.html b/doc/api/a00052_source.html new file mode 100644 index 00000000..466b17fc --- /dev/null +++ b/doc/api/a00052_source.html @@ -0,0 +1,141 @@ + + + + + +matrix_access.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
matrix_access.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 #ifndef GLM_GTC_matrix_access
+00038 #define GLM_GTC_matrix_access GLM_VERSION
+00039 
+00040 // Dependency:
+00041 #include "../glm.hpp"
+00042 
+00043 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00044 #       pragma message("GLM: GLM_GTC_matrix_access extension included")
+00045 #endif
+00046 
+00047 namespace glm
+00048 {
+00051 
+00054         template <typename genType> 
+00055         typename genType::row_type row(
+00056                 genType const & m, 
+00057                 int index);
+00058 
+00061     template <typename genType> 
+00062         genType row(
+00063                 genType const & m, 
+00064                 int index, 
+00065                 typename genType::row_type const & x);
+00066 
+00069         template <typename genType> 
+00070         typename genType::col_type column(
+00071                 genType const & m, 
+00072                 int index);
+00073 
+00076         template <typename genType> 
+00077         genType column(
+00078                 genType const & m, 
+00079                 int index, 
+00080                 typename genType::col_type const & x);
+00081 
+00083 }//namespace glm
+00084 
+00085 #include "matrix_access.inl"
+00086 
+00087 #endif//GLM_GTC_matrix_access
+
+
+ + + + + + diff --git a/doc/api/a00053.html b/doc/api/a00053.html new file mode 100644 index 00000000..f3b63d2c --- /dev/null +++ b/doc/api/a00053.html @@ -0,0 +1,90 @@ + + + + + +matrix_cross_product.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
matrix_cross_product.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename T >
detail::tmat3x3< T > matrixCross3 (detail::tvec3< T > const &x)
template<typename T >
detail::tmat4x4< T > matrixCross4 (detail::tvec3< T > const &x)
+

Detailed Description

+

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.

+

GLM_GTX_matrix_cross_product: Cross product matrix form

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_extented_min_max: Extended min max (dependence)
+ +

Definition in file matrix_cross_product.hpp.

+
+ + + + + + diff --git a/doc/api/a00053_source.html b/doc/api/a00053_source.html new file mode 100644 index 00000000..2a2d6337 --- /dev/null +++ b/doc/api/a00053_source.html @@ -0,0 +1,129 @@ + + + + + +matrix_cross_product.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
matrix_cross_product.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_matrix_cross_product
+00040 #define GLM_GTX_matrix_cross_product GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053 
+00056         template <typename T> 
+00057         detail::tmat3x3<T> matrixCross3(
+00058                 detail::tvec3<T> const & x);
+00059                 
+00062         template <typename T> 
+00063         detail::tmat4x4<T> matrixCross4(
+00064                 detail::tvec3<T> const & x);
+00065 
+00067 }//namespace glm
+00068 
+00069 #include "matrix_cross_product.inl"
+00070 
+00071 #endif//GLM_GTX_matrix_cross_product
+
+
+ + + + + + diff --git a/doc/api/a00054.html b/doc/api/a00054.html new file mode 100644 index 00000000..a6886766 --- /dev/null +++ b/doc/api/a00054.html @@ -0,0 +1,240 @@ + + + + + +matrix_integer.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
matrix_integer.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef detail::tmat2x2
+< highp_int > 
highp_imat2
typedef detail::tmat2x2
+< highp_int > 
highp_imat2x2
typedef detail::tmat2x3
+< highp_int > 
highp_imat2x3
typedef detail::tmat2x4
+< highp_int > 
highp_imat2x4
typedef detail::tmat3x3
+< highp_int > 
highp_imat3
typedef detail::tmat3x2
+< highp_int > 
highp_imat3x2
typedef detail::tmat3x3
+< highp_int > 
highp_imat3x3
typedef detail::tmat3x4
+< highp_int > 
highp_imat3x4
typedef detail::tmat4x4
+< highp_int > 
highp_imat4
typedef detail::tmat4x2
+< highp_int > 
highp_imat4x2
typedef detail::tmat4x3
+< highp_int > 
highp_imat4x3
typedef detail::tmat4x4
+< highp_int > 
highp_imat4x4
typedef detail::tmat2x2
+< highp_uint > 
highp_umat2
typedef detail::tmat2x2
+< highp_uint > 
highp_umat2x2
typedef detail::tmat2x3
+< highp_uint > 
highp_umat2x3
typedef detail::tmat2x4
+< highp_uint > 
highp_umat2x4
typedef detail::tmat3x3
+< highp_uint > 
highp_umat3
typedef detail::tmat3x2
+< highp_uint > 
highp_umat3x2
typedef detail::tmat3x3
+< highp_uint > 
highp_umat3x3
typedef detail::tmat3x4
+< highp_uint > 
highp_umat3x4
typedef detail::tmat4x4
+< highp_uint > 
highp_umat4
typedef detail::tmat4x2
+< highp_uint > 
highp_umat4x2
typedef detail::tmat4x3
+< highp_uint > 
highp_umat4x3
typedef detail::tmat4x4
+< highp_uint > 
highp_umat4x4
typedef mediump_imat2 imat2
typedef mediump_imat2x2 imat2x2
typedef mediump_imat2x3 imat2x3
typedef mediump_imat2x4 imat2x4
typedef mediump_imat3 imat3
typedef mediump_imat3x2 imat3x2
typedef mediump_imat3x3 imat3x3
typedef mediump_imat3x4 imat3x4
typedef mediump_imat4 imat4
typedef mediump_imat4x2 imat4x2
typedef mediump_imat4x3 imat4x3
typedef mediump_imat4x4 imat4x4
typedef detail::tmat2x2< lowp_int > lowp_imat2
typedef detail::tmat2x2< lowp_int > lowp_imat2x2
typedef detail::tmat2x3< lowp_int > lowp_imat2x3
typedef detail::tmat2x4< lowp_int > lowp_imat2x4
typedef detail::tmat3x3< lowp_int > lowp_imat3
typedef detail::tmat3x2< lowp_int > lowp_imat3x2
typedef detail::tmat3x3< lowp_int > lowp_imat3x3
typedef detail::tmat3x4< lowp_int > lowp_imat3x4
typedef detail::tmat4x4< lowp_int > lowp_imat4
typedef detail::tmat4x2< lowp_int > lowp_imat4x2
typedef detail::tmat4x3< lowp_int > lowp_imat4x3
typedef detail::tmat4x4< lowp_int > lowp_imat4x4
typedef detail::tmat2x2
+< lowp_uint > 
lowp_umat2
typedef detail::tmat2x2
+< lowp_uint > 
lowp_umat2x2
typedef detail::tmat2x3
+< lowp_uint > 
lowp_umat2x3
typedef detail::tmat2x4
+< lowp_uint > 
lowp_umat2x4
typedef detail::tmat3x3
+< lowp_uint > 
lowp_umat3
typedef detail::tmat3x2
+< lowp_uint > 
lowp_umat3x2
typedef detail::tmat3x3
+< lowp_uint > 
lowp_umat3x3
typedef detail::tmat3x4
+< lowp_uint > 
lowp_umat3x4
typedef detail::tmat4x4
+< lowp_uint > 
lowp_umat4
typedef detail::tmat4x2
+< lowp_uint > 
lowp_umat4x2
typedef detail::tmat4x3
+< lowp_uint > 
lowp_umat4x3
typedef detail::tmat4x4
+< lowp_uint > 
lowp_umat4x4
typedef detail::tmat2x2
+< mediump_int > 
mediump_imat2
typedef detail::tmat2x2
+< mediump_int > 
mediump_imat2x2
typedef detail::tmat2x3
+< mediump_int > 
mediump_imat2x3
typedef detail::tmat2x4
+< mediump_int > 
mediump_imat2x4
typedef detail::tmat3x3
+< mediump_int > 
mediump_imat3
typedef detail::tmat3x2
+< mediump_int > 
mediump_imat3x2
typedef detail::tmat3x3
+< mediump_int > 
mediump_imat3x3
typedef detail::tmat3x4
+< mediump_int > 
mediump_imat3x4
typedef detail::tmat4x4
+< mediump_int > 
mediump_imat4
typedef detail::tmat4x2
+< mediump_int > 
mediump_imat4x2
typedef detail::tmat4x3
+< mediump_int > 
mediump_imat4x3
typedef detail::tmat4x4
+< mediump_int > 
mediump_imat4x4
typedef detail::tmat2x2
+< mediump_uint > 
mediump_umat2
typedef detail::tmat2x2
+< mediump_uint > 
mediump_umat2x2
typedef detail::tmat2x3
+< mediump_uint > 
mediump_umat2x3
typedef detail::tmat2x4
+< mediump_uint > 
mediump_umat2x4
typedef detail::tmat3x3
+< mediump_uint > 
mediump_umat3
typedef detail::tmat3x2
+< mediump_uint > 
mediump_umat3x2
typedef detail::tmat3x3
+< mediump_uint > 
mediump_umat3x3
typedef detail::tmat3x4
+< mediump_uint > 
mediump_umat3x4
typedef detail::tmat4x4
+< mediump_uint > 
mediump_umat4
typedef detail::tmat4x2
+< mediump_uint > 
mediump_umat4x2
typedef detail::tmat4x3
+< mediump_uint > 
mediump_umat4x3
typedef detail::tmat4x4
+< mediump_uint > 
mediump_umat4x4
typedef mediump_umat2 umat2
typedef mediump_umat2x2 umat2x2
typedef mediump_umat2x3 umat2x3
typedef mediump_umat2x4 umat2x4
typedef mediump_umat3 umat3
typedef mediump_umat3x2 umat3x2
typedef mediump_umat3x3 umat3x3
typedef mediump_umat3x4 umat3x4
typedef mediump_umat4 umat4
typedef mediump_umat4x2 umat4x2
typedef mediump_umat4x3 umat4x3
typedef mediump_umat4x4 umat4x4
+

Detailed Description

+

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.

+

GLM_GTC_matrix_integer: Integer matrix types

+
Date:
2011-01-20 / 2011-06-05
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file matrix_integer.hpp.

+
+ + + + + + diff --git a/doc/api/a00054_source.html b/doc/api/a00054_source.html new file mode 100644 index 00000000..45d33e06 --- /dev/null +++ b/doc/api/a00054_source.html @@ -0,0 +1,376 @@ + + + + + +matrix_integer.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
matrix_integer.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 #ifndef GLM_GTC_matrix_integer
+00038 #define GLM_GTC_matrix_integer GLM_VERSION
+00039 
+00040 // Dependency:
+00041 #include "../glm.hpp"
+00042 
+00043 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00044 #       pragma message("GLM: GLM_GTC_matrix_integer extension included")
+00045 #endif
+00046 
+00047 namespace glm
+00048 {
+00051 
+00054         typedef detail::tmat2x2<highp_int>                              highp_imat2;    
+00055 
+00058         typedef detail::tmat3x3<highp_int>                              highp_imat3;
+00059 
+00062         typedef detail::tmat4x4<highp_int>                              highp_imat4;
+00063 
+00066         typedef detail::tmat2x2<highp_int>                              highp_imat2x2;
+00067 
+00070         typedef detail::tmat2x3<highp_int>                              highp_imat2x3;
+00071 
+00074         typedef detail::tmat2x4<highp_int>                              highp_imat2x4;
+00075 
+00078         typedef detail::tmat3x2<highp_int>                              highp_imat3x2;
+00079 
+00082         typedef detail::tmat3x3<highp_int>                              highp_imat3x3;
+00083 
+00086         typedef detail::tmat3x4<highp_int>                              highp_imat3x4;
+00087 
+00090         typedef detail::tmat4x2<highp_int>                              highp_imat4x2;
+00091 
+00094         typedef detail::tmat4x3<highp_int>                              highp_imat4x3;
+00095 
+00098         typedef detail::tmat4x4<highp_int>                              highp_imat4x4;
+00099 
+00100 
+00103         typedef detail::tmat2x2<mediump_int>                    mediump_imat2;
+00104 
+00107         typedef detail::tmat3x3<mediump_int>                    mediump_imat3;
+00108 
+00111         typedef detail::tmat4x4<mediump_int>                    mediump_imat4;
+00112 
+00113 
+00116         typedef detail::tmat2x2<mediump_int>                    mediump_imat2x2;
+00117 
+00120         typedef detail::tmat2x3<mediump_int>                    mediump_imat2x3;
+00121 
+00124         typedef detail::tmat2x4<mediump_int>                    mediump_imat2x4;
+00125 
+00128         typedef detail::tmat3x2<mediump_int>                    mediump_imat3x2;
+00129 
+00132         typedef detail::tmat3x3<mediump_int>                    mediump_imat3x3;
+00133 
+00136         typedef detail::tmat3x4<mediump_int>                    mediump_imat3x4;
+00137 
+00140         typedef detail::tmat4x2<mediump_int>                    mediump_imat4x2;
+00141 
+00144         typedef detail::tmat4x3<mediump_int>                    mediump_imat4x3;
+00145 
+00148         typedef detail::tmat4x4<mediump_int>                    mediump_imat4x4;
+00149 
+00150 
+00153         typedef detail::tmat2x2<lowp_int>                               lowp_imat2;
+00154         
+00157         typedef detail::tmat3x3<lowp_int>                               lowp_imat3;
+00158 
+00161         typedef detail::tmat4x4<lowp_int>                               lowp_imat4;
+00162 
+00163 
+00166         typedef detail::tmat2x2<lowp_int>                               lowp_imat2x2;
+00167 
+00170         typedef detail::tmat2x3<lowp_int>                               lowp_imat2x3;
+00171 
+00174         typedef detail::tmat2x4<lowp_int>                               lowp_imat2x4;
+00175 
+00178         typedef detail::tmat3x2<lowp_int>                               lowp_imat3x2;
+00179 
+00182         typedef detail::tmat3x3<lowp_int>                               lowp_imat3x3;
+00183 
+00186         typedef detail::tmat3x4<lowp_int>                               lowp_imat3x4;
+00187 
+00190         typedef detail::tmat4x2<lowp_int>                               lowp_imat4x2;
+00191 
+00194         typedef detail::tmat4x3<lowp_int>                               lowp_imat4x3;
+00195 
+00198         typedef detail::tmat4x4<lowp_int>                               lowp_imat4x4;
+00199 
+00200 
+00203         typedef detail::tmat2x2<highp_uint>                             highp_umat2;    
+00204 
+00207         typedef detail::tmat3x3<highp_uint>                             highp_umat3;
+00208 
+00211         typedef detail::tmat4x4<highp_uint>                             highp_umat4;
+00212 
+00215         typedef detail::tmat2x2<highp_uint>                             highp_umat2x2;
+00216 
+00219         typedef detail::tmat2x3<highp_uint>                             highp_umat2x3;
+00220 
+00223         typedef detail::tmat2x4<highp_uint>                             highp_umat2x4;
+00224 
+00227         typedef detail::tmat3x2<highp_uint>                             highp_umat3x2;
+00228 
+00231         typedef detail::tmat3x3<highp_uint>                             highp_umat3x3;
+00232 
+00235         typedef detail::tmat3x4<highp_uint>                             highp_umat3x4;
+00236 
+00239         typedef detail::tmat4x2<highp_uint>                             highp_umat4x2;
+00240 
+00243         typedef detail::tmat4x3<highp_uint>                             highp_umat4x3;
+00244 
+00247         typedef detail::tmat4x4<highp_uint>                             highp_umat4x4;
+00248 
+00249 
+00252         typedef detail::tmat2x2<mediump_uint>                   mediump_umat2;
+00253 
+00256         typedef detail::tmat3x3<mediump_uint>                   mediump_umat3;
+00257 
+00260         typedef detail::tmat4x4<mediump_uint>                   mediump_umat4;
+00261 
+00262 
+00265         typedef detail::tmat2x2<mediump_uint>                   mediump_umat2x2;
+00266 
+00269         typedef detail::tmat2x3<mediump_uint>                   mediump_umat2x3;
+00270 
+00273         typedef detail::tmat2x4<mediump_uint>                   mediump_umat2x4;
+00274 
+00277         typedef detail::tmat3x2<mediump_uint>                   mediump_umat3x2;
+00278 
+00281         typedef detail::tmat3x3<mediump_uint>                   mediump_umat3x3;
+00282 
+00285         typedef detail::tmat3x4<mediump_uint>                   mediump_umat3x4;
+00286 
+00289         typedef detail::tmat4x2<mediump_uint>                   mediump_umat4x2;
+00290 
+00293         typedef detail::tmat4x3<mediump_uint>                   mediump_umat4x3;
+00294 
+00297         typedef detail::tmat4x4<mediump_uint>                   mediump_umat4x4;
+00298 
+00299 
+00302         typedef detail::tmat2x2<lowp_uint>                              lowp_umat2;
+00303         
+00306         typedef detail::tmat3x3<lowp_uint>                              lowp_umat3;
+00307 
+00310         typedef detail::tmat4x4<lowp_uint>                              lowp_umat4;
+00311 
+00312 
+00315         typedef detail::tmat2x2<lowp_uint>                              lowp_umat2x2;
+00316 
+00319         typedef detail::tmat2x3<lowp_uint>                              lowp_umat2x3;
+00320 
+00323         typedef detail::tmat2x4<lowp_uint>                              lowp_umat2x4;
+00324 
+00327         typedef detail::tmat3x2<lowp_uint>                              lowp_umat3x2;
+00328 
+00331         typedef detail::tmat3x3<lowp_uint>                              lowp_umat3x3;
+00332 
+00335         typedef detail::tmat3x4<lowp_uint>                              lowp_umat3x4;
+00336 
+00339         typedef detail::tmat4x2<lowp_uint>                              lowp_umat4x2;
+00340 
+00343         typedef detail::tmat4x3<lowp_uint>                              lowp_umat4x3;
+00344 
+00347         typedef detail::tmat4x4<lowp_uint>                              lowp_umat4x4;
+00348 
+00349 #if(defined(GLM_PRECISION_HIGHP_INT))
+00350         typedef highp_imat2                                                             imat2;
+00351         typedef highp_imat3                                                             imat3;
+00352         typedef highp_imat4                                                             imat4;
+00353         typedef highp_imat2x2                                                   imat2x2;
+00354         typedef highp_imat2x3                                                   imat2x3;
+00355         typedef highp_imat2x4                                                   imat2x4;
+00356         typedef highp_imat3x2                                                   imat3x2;
+00357         typedef highp_imat3x3                                                   imat3x3;
+00358         typedef highp_imat3x4                                                   imat3x4;
+00359         typedef highp_imat4x2                                                   imat4x2;
+00360         typedef highp_imat4x3                                                   imat4x3;
+00361         typedef highp_imat4x4                                                   imat4x4;
+00362 #elif(defined(GLM_PRECISION_LOWP_INT))
+00363         typedef lowp_imat2                                                              imat2;
+00364         typedef lowp_imat3                                                              imat3;
+00365         typedef lowp_imat4                                                              imat4;
+00366         typedef lowp_imat2x2                                                    imat2x2;
+00367         typedef lowp_imat2x3                                                    imat2x3;
+00368         typedef lowp_imat2x4                                                    imat2x4;
+00369         typedef lowp_imat3x2                                                    imat3x2;
+00370         typedef lowp_imat3x3                                                    imat3x3;
+00371         typedef lowp_imat3x4                                                    imat3x4;
+00372         typedef lowp_imat4x2                                                    imat4x2;
+00373         typedef lowp_imat4x3                                                    imat4x3;
+00374         typedef lowp_imat4x4                                                    imat4x4;
+00375 #else //if(defined(GLM_PRECISION_MEDIUMP_INT))
+00376 
+00379         typedef mediump_imat2                                                   imat2;
+00380 
+00383         typedef mediump_imat3                                                   imat3;
+00384 
+00387         typedef mediump_imat4                                                   imat4;
+00388 
+00391         typedef mediump_imat2x2                                                 imat2x2;
+00392 
+00395         typedef mediump_imat2x3                                                 imat2x3;
+00396 
+00399         typedef mediump_imat2x4                                                 imat2x4;
+00400 
+00403         typedef mediump_imat3x2                                                 imat3x2;
+00404 
+00407         typedef mediump_imat3x3                                                 imat3x3;
+00408 
+00411         typedef mediump_imat3x4                                                 imat3x4;
+00412 
+00415         typedef mediump_imat4x2                                                 imat4x2;
+00416 
+00419         typedef mediump_imat4x3                                                 imat4x3;
+00420 
+00423         typedef mediump_imat4x4                                                 imat4x4;
+00424 #endif//GLM_PRECISION
+00425 
+00426 #if(defined(GLM_PRECISION_HIGHP_UINT))
+00427         typedef highp_umat2                                                             umat2;
+00428         typedef highp_umat3                                                             umat3;
+00429         typedef highp_umat4                                                             umat4;
+00430         typedef highp_umat2x2                                                   umat2x2;
+00431         typedef highp_umat2x3                                                   umat2x3;
+00432         typedef highp_umat2x4                                                   umat2x4;
+00433         typedef highp_umat3x2                                                   umat3x2;
+00434         typedef highp_umat3x3                                                   umat3x3;
+00435         typedef highp_umat3x4                                                   umat3x4;
+00436         typedef highp_umat4x2                                                   umat4x2;
+00437         typedef highp_umat4x3                                                   umat4x3;
+00438         typedef highp_umat4x4                                                   umat4x4;
+00439 #elif(defined(GLM_PRECISION_LOWP_UINT))
+00440         typedef lowp_umat2                                                              umat2;
+00441         typedef lowp_umat3                                                              umat3;
+00442         typedef lowp_umat4                                                              umat4;
+00443         typedef lowp_umat2x2                                                    umat2x2;
+00444         typedef lowp_umat2x3                                                    umat2x3;
+00445         typedef lowp_umat2x4                                                    umat2x4;
+00446         typedef lowp_umat3x2                                                    umat3x2;
+00447         typedef lowp_umat3x3                                                    umat3x3;
+00448         typedef lowp_umat3x4                                                    umat3x4;
+00449         typedef lowp_umat4x2                                                    umat4x2;
+00450         typedef lowp_umat4x3                                                    umat4x3;
+00451         typedef lowp_umat4x4                                                    umat4x4;
+00452 #else //if(defined(GLM_PRECISION_MEDIUMP_UINT))
+00453         
+00456         typedef mediump_umat2                                                   umat2;
+00457 
+00460         typedef mediump_umat3                                                   umat3;
+00461 
+00464         typedef mediump_umat4                                                   umat4;
+00465 
+00468         typedef mediump_umat2x2                                                 umat2x2;
+00469 
+00472         typedef mediump_umat2x3                                                 umat2x3;
+00473 
+00476         typedef mediump_umat2x4                                                 umat2x4;
+00477 
+00480         typedef mediump_umat3x2                                                 umat3x2;
+00481 
+00484         typedef mediump_umat3x3                                                 umat3x3;
+00485 
+00488         typedef mediump_umat3x4                                                 umat3x4;
+00489 
+00492         typedef mediump_umat4x2                                                 umat4x2;
+00493 
+00496         typedef mediump_umat4x3                                                 umat4x3;
+00497 
+00500         typedef mediump_umat4x4                                                 umat4x4;
+00501 #endif//GLM_PRECISION
+00502 
+00504 }//namespace glm
+00505 
+00506 #endif//GLM_GTC_matrix_integer
+
+
+ + + + + + diff --git a/doc/api/a00055.html b/doc/api/a00055.html new file mode 100644 index 00000000..4a950f3c --- /dev/null +++ b/doc/api/a00055.html @@ -0,0 +1,90 @@ + + + + + +matrix_interpolation.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
matrix_interpolation.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Functions

template<typename T >
void axisAngle (detail::tmat4x4< T > const &mat, detail::tvec3< T > &axis, T &angle)
template<typename T >
detail::tmat4x4< T > axisAngleMatrix (detail::tvec3< T > const &axis, T const angle)
template<typename T >
detail::tmat4x4< T > interpolate (detail::tmat4x4< T > const &m1, detail::tmat4x4< T > const &m2, T const delta)
+

Detailed Description

+

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.

+

GLM_GTX_matrix_interpolation: Rotation and translation matrix interpolation

+
Date:
2011-03-05 / 2011-06-07
+
Author:
Ghenadii Ursachi (the.asteroth@gmail.com)
+
See also:
GLM Core (dependence)
+ +

Definition in file matrix_interpolation.hpp.

+
+ + + + + + diff --git a/doc/api/a00055_source.html b/doc/api/a00055_source.html new file mode 100644 index 00000000..da02608a --- /dev/null +++ b/doc/api/a00055_source.html @@ -0,0 +1,137 @@ + + + + + +matrix_interpolation.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
matrix_interpolation.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_matrix_interpolation
+00039 #define GLM_GTX_matrix_interpolation GLM_VERSION
+00040 
+00041 // Dependency:
+00042 //#include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_matrix_interpolation extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename T>
+00056     void axisAngle(
+00057         detail::tmat4x4<T> const & mat,
+00058         detail::tvec3<T> & axis,
+00059         T & angle);
+00060 
+00063         template <typename T>
+00064     detail::tmat4x4<T> axisAngleMatrix(
+00065         detail::tvec3<T> const & axis,
+00066         T const angle);
+00067 
+00071         template <typename T>
+00072     detail::tmat4x4<T> interpolate(
+00073         detail::tmat4x4<T> const & m1,
+00074         detail::tmat4x4<T> const & m2,
+00075         T const delta);
+00076 
+00078 }//namespace glm
+00079 
+00080 #include "matrix_interpolation.inl"
+00081 
+00082 #endif//GLM_GTX_matrix_interpolation
+
+
+ + + + + + diff --git a/doc/api/a00056.html b/doc/api/a00056.html new file mode 100644 index 00000000..fe076e6c --- /dev/null +++ b/doc/api/a00056.html @@ -0,0 +1,89 @@ + + + + + +matrix_inverse.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
matrix_inverse.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename genType >
genType affineInverse (genType const &m)
template<typename genType >
GLM_FUNC_QUALIFIER
+genType::value_type 
inverseTranspose (genType const &m)
+

Detailed Description

+

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.

+

GLM_GTC_matrix_inverse: Additional matrix inverse function

+
Date:
2005-12-21 / 2011-06-05
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file matrix_inverse.hpp.

+
+ + + + + + diff --git a/doc/api/a00056_source.html b/doc/api/a00056_source.html new file mode 100644 index 00000000..4ccd1e34 --- /dev/null +++ b/doc/api/a00056_source.html @@ -0,0 +1,126 @@ + + + + + +matrix_inverse.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
matrix_inverse.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 #ifndef GLM_GTC_matrix_inverse
+00038 #define GLM_GTC_matrix_inverse GLM_VERSION
+00039 
+00040 // Dependency:
+00041 #include "../glm.hpp"
+00042 
+00043 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00044 #       pragma message("GLM: GLM_GTC_matrix_inverse extension included")
+00045 #endif
+00046 
+00047 namespace glm
+00048 {
+00051 
+00057         template <typename genType> 
+00058         genType affineInverse(genType const & m);
+00059 
+00065         template <typename genType> 
+00066         GLM_FUNC_QUALIFIER typename genType::value_type inverseTranspose(
+00067                 genType const & m);
+00068 
+00070 }//namespace glm
+00071 
+00072 #include "matrix_inverse.inl"
+00073 
+00074 #endif//GLM_GTC_matrix_inverse
+
+
+ + + + + + diff --git a/doc/api/a00057.html b/doc/api/a00057.html new file mode 100644 index 00000000..25f7fa5a --- /dev/null +++ b/doc/api/a00057.html @@ -0,0 +1,110 @@ + + + + + +matrix_major_storage.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
matrix_major_storage.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat2x2< T > colMajor2 (detail::tvec2< T > const &v1, detail::tvec2< T > const &v2)
template<typename T >
detail::tmat2x2< T > colMajor2 (detail::tmat2x2< T > const &m)
template<typename T >
detail::tmat3x3< T > colMajor3 (detail::tvec3< T > const &v1, detail::tvec3< T > const &v2, detail::tvec3< T > const &v3)
template<typename T >
detail::tmat3x3< T > colMajor3 (detail::tmat3x3< T > const &m)
template<typename T >
detail::tmat4x4< T > colMajor4 (detail::tvec4< T > const &v1, detail::tvec4< T > const &v2, detail::tvec4< T > const &v3, detail::tvec4< T > const &v4)
template<typename T >
detail::tmat4x4< T > colMajor4 (detail::tmat4x4< T > const &m)
template<typename T >
detail::tmat2x2< T > rowMajor2 (detail::tvec2< T > const &v1, detail::tvec2< T > const &v2)
template<typename T >
detail::tmat2x2< T > rowMajor2 (detail::tmat2x2< T > const &m)
template<typename T >
detail::tmat3x3< T > rowMajor3 (detail::tvec3< T > const &v1, detail::tvec3< T > const &v2, detail::tvec3< T > const &v3)
template<typename T >
detail::tmat3x3< T > rowMajor3 (detail::tmat3x3< T > const &m)
template<typename T >
detail::tmat4x4< T > rowMajor4 (detail::tvec4< T > const &v1, detail::tvec4< T > const &v2, detail::tvec4< T > const &v3, detail::tvec4< T > const &v4)
template<typename T >
detail::tmat4x4< T > rowMajor4 (detail::tmat4x4< T > const &m)
+

Detailed Description

+

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.

+

GLM_GTX_matrix_major_storage: Build matrix

+
Date:
2006-04-19 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_extented_min_max: Extended min max (dependence)
+ +

Definition in file matrix_major_storage.hpp.

+
+ + + + + + diff --git a/doc/api/a00057_source.html b/doc/api/a00057_source.html new file mode 100644 index 00000000..77a85f7c --- /dev/null +++ b/doc/api/a00057_source.html @@ -0,0 +1,181 @@ + + + + + +matrix_major_storage.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
matrix_major_storage.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_matrix_major_storage
+00040 #define GLM_GTX_matrix_major_storage GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_matrix_major_storage extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053 
+00056         template <typename T> 
+00057         detail::tmat2x2<T> rowMajor2(
+00058                 detail::tvec2<T> const & v1, 
+00059                 detail::tvec2<T> const & v2);
+00060                 
+00063         template <typename T> 
+00064         detail::tmat2x2<T> rowMajor2(
+00065                 detail::tmat2x2<T> const & m);
+00066 
+00069         template <typename T> 
+00070         detail::tmat3x3<T> rowMajor3(
+00071                 detail::tvec3<T> const & v1, 
+00072                 detail::tvec3<T> const & v2, 
+00073                 detail::tvec3<T> const & v3);
+00074 
+00077         template <typename T> 
+00078         detail::tmat3x3<T> rowMajor3(
+00079                 detail::tmat3x3<T> const & m);
+00080 
+00083         template <typename T> 
+00084         detail::tmat4x4<T> rowMajor4(
+00085                 detail::tvec4<T> const & v1, 
+00086                 detail::tvec4<T> const & v2,
+00087                 detail::tvec4<T> const & v3, 
+00088                 detail::tvec4<T> const & v4);
+00089 
+00092         template <typename T> 
+00093         detail::tmat4x4<T> rowMajor4(
+00094                 detail::tmat4x4<T> const & m);
+00095 
+00098         template <typename T> 
+00099         detail::tmat2x2<T> colMajor2(
+00100                 detail::tvec2<T> const & v1, 
+00101                 detail::tvec2<T> const & v2);
+00102                 
+00105         template <typename T> 
+00106         detail::tmat2x2<T> colMajor2(
+00107                 detail::tmat2x2<T> const & m);
+00108 
+00111         template <typename T> 
+00112         detail::tmat3x3<T> colMajor3(
+00113                 detail::tvec3<T> const & v1, 
+00114                 detail::tvec3<T> const & v2, 
+00115                 detail::tvec3<T> const & v3);
+00116                 
+00119         template <typename T> 
+00120         detail::tmat3x3<T> colMajor3(
+00121                 detail::tmat3x3<T> const & m);
+00122                 
+00125         template <typename T> 
+00126         detail::tmat4x4<T> colMajor4(
+00127                 detail::tvec4<T> const & v1, 
+00128                 detail::tvec4<T> const & v2, 
+00129                 detail::tvec4<T> const & v3, 
+00130                 detail::tvec4<T> const & v4);
+00131                                 
+00134         template <typename T> 
+00135         detail::tmat4x4<T> colMajor4(
+00136                 detail::tmat4x4<T> const & m);
+00137 
+00139 }//namespace glm
+00140 
+00141 #include "matrix_major_storage.inl"
+00142 
+00143 #endif//GLM_GTX_matrix_major_storage
+
+
+ + + + + + diff --git a/doc/api/a00058.html b/doc/api/a00058.html new file mode 100644 index 00000000..fb634699 --- /dev/null +++ b/doc/api/a00058.html @@ -0,0 +1,102 @@ + + + + + +matrix_operation.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
matrix_operation.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename valType >
detail::tmat2x2< valType > diagonal2x2 (detail::tvec2< valType > const &v)
template<typename valType >
detail::tmat2x3< valType > diagonal2x3 (detail::tvec2< valType > const &v)
template<typename valType >
detail::tmat2x4< valType > diagonal2x4 (detail::tvec2< valType > const &v)
template<typename valType >
detail::tmat3x2< valType > diagonal3x2 (detail::tvec2< valType > const &v)
template<typename valType >
detail::tmat3x3< valType > diagonal3x3 (detail::tvec3< valType > const &v)
template<typename valType >
detail::tmat3x4< valType > diagonal3x4 (detail::tvec3< valType > const &v)
template<typename valType >
detail::tmat4x2< valType > diagonal4x2 (detail::tvec2< valType > const &v)
template<typename valType >
detail::tmat4x3< valType > diagonal4x3 (detail::tvec3< valType > const &v)
template<typename valType >
detail::tmat4x4< valType > diagonal4x4 (detail::tvec4< valType > const &v)
+

Detailed Description

+

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.

+

GLM_GTX_matrix_operation: Extended matrix operations

+
Date:
2009-08-29 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file matrix_operation.hpp.

+
+ + + + + + diff --git a/doc/api/a00058_source.html b/doc/api/a00058_source.html new file mode 100644 index 00000000..788392fe --- /dev/null +++ b/doc/api/a00058_source.html @@ -0,0 +1,156 @@ + + + + + +matrix_operation.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
matrix_operation.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_matrix_operation
+00039 #define GLM_GTX_matrix_operation GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_matrix_operation extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename valType> 
+00056         detail::tmat2x2<valType> diagonal2x2(
+00057                 detail::tvec2<valType> const & v);
+00058 
+00061         template <typename valType> 
+00062         detail::tmat2x3<valType> diagonal2x3(
+00063                 detail::tvec2<valType> const & v);
+00064 
+00067         template <typename valType> 
+00068         detail::tmat2x4<valType> diagonal2x4(
+00069                 detail::tvec2<valType> const & v);
+00070 
+00073         template <typename valType> 
+00074         detail::tmat3x2<valType> diagonal3x2(
+00075                 detail::tvec2<valType> const & v);
+00076 
+00079         template <typename valType> 
+00080         detail::tmat3x3<valType> diagonal3x3(
+00081                 detail::tvec3<valType> const & v);
+00082 
+00085         template <typename valType> 
+00086         detail::tmat3x4<valType> diagonal3x4(
+00087                 detail::tvec3<valType> const & v);
+00088 
+00091         template <typename valType> 
+00092         detail::tmat4x2<valType> diagonal4x2(
+00093                 detail::tvec2<valType> const & v);
+00094 
+00097         template <typename valType> 
+00098         detail::tmat4x3<valType> diagonal4x3(
+00099                 detail::tvec3<valType> const & v);
+00100 
+00103         template <typename valType> 
+00104         detail::tmat4x4<valType> diagonal4x4(
+00105                 detail::tvec4<valType> const & v);
+00106 
+00108 }//namespace glm
+00109 
+00110 #include "matrix_operation.inl"
+00111 
+00112 #endif//GLM_GTX_matrix_operation
+
+
+ + + + + + diff --git a/doc/api/a00059.html b/doc/api/a00059.html new file mode 100644 index 00000000..f1b8de0e --- /dev/null +++ b/doc/api/a00059.html @@ -0,0 +1,102 @@ + + + + + +matrix_query.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
matrix_query.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
bool isIdentity (genType const &m, typename genType::value_type const &epsilon)
template<typename valType >
bool isNormalized (detail::tmat2x2< valType > const &m, valType const &epsilon)
template<typename valType >
bool isNormalized (detail::tmat3x3< valType > const &m, valType const &epsilon)
template<typename valType >
bool isNormalized (detail::tmat4x4< valType > const &m, valType const &epsilon)
template<typename T >
bool isNull (detail::tmat2x2< T > const &m, T const &epsilon)
template<typename T >
bool isNull (detail::tmat3x3< T > const &m, T const &epsilon)
template<typename T >
bool isNull (detail::tmat4x4< T > const &m, T const &epsilon)
template<typename valType , template< typename > class matType>
bool isOrthogonal (matType< valType > const &m, valType const &epsilon)
+

Detailed Description

+

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.

+

GLM_GTX_matrix_query: Query matrix properties

+
Date:
2007-03-05 / 2011-08-28
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_vector_query: Vector query (dependence)
+ +

Definition in file matrix_query.hpp.

+
+ + + + + + diff --git a/doc/api/a00059_source.html b/doc/api/a00059_source.html new file mode 100644 index 00000000..37ed2f46 --- /dev/null +++ b/doc/api/a00059_source.html @@ -0,0 +1,163 @@ + + + + + +matrix_query.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
matrix_query.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_matrix_query
+00040 #define GLM_GTX_matrix_query GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtx/vector_query.hpp"
+00045 #include <limits>
+00046 
+00047 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00048 #       pragma message("GLM: GLM_GTX_matrix_query extension included")
+00049 #endif
+00050 
+00051 namespace glm
+00052 {
+00055 
+00058         template<typename T> 
+00059         bool isNull(
+00060                 detail::tmat2x2<T> const & m, 
+00061                 T const & epsilon/* = std::numeric_limits<T>::epsilon()*/);
+00062                 
+00065         template<typename T> 
+00066         bool isNull(
+00067                 detail::tmat3x3<T> const & m, 
+00068                 T const & epsilon/* = std::numeric_limits<T>::epsilon()*/);
+00069                 
+00072         template<typename T> 
+00073         bool isNull(
+00074                 detail::tmat4x4<T> const & m, 
+00075                 T const & epsilon/* = std::numeric_limits<T>::epsilon()*/);
+00076                         
+00079         template<typename genType> 
+00080         bool isIdentity(
+00081                 genType const & m, 
+00082                 typename genType::value_type const & epsilon/* = std::numeric_limits<typename genType::value_type>::epsilon()*/);
+00083 
+00086         template<typename valType>   
+00087         bool isNormalized(
+00088                 detail::tmat2x2<valType> const & m, 
+00089                 valType const & epsilon/* = std::numeric_limits<valType>::epsilon()*/);
+00090 
+00093         template<typename valType>   
+00094         bool isNormalized(
+00095                 detail::tmat3x3<valType> const & m, 
+00096                 valType const & epsilon/* = std::numeric_limits<valType>::epsilon()*/);
+00097 
+00100         template<typename valType>   
+00101         bool isNormalized(
+00102                 detail::tmat4x4<valType> const & m, 
+00103                 valType const & epsilon/* = std::numeric_limits<valType>::epsilon()*/);
+00104 
+00107         template<typename valType, template <typename> class matType> 
+00108         bool isOrthogonal(
+00109                 matType<valType> const & m, 
+00110                 valType const & epsilon/* = std::numeric_limits<genType>::epsilon()*/);
+00111 
+00113 }//namespace glm
+00114 
+00115 #include "matrix_query.inl"
+00116 
+00117 #endif//GLM_GTX_matrix_query
+
+
+ + + + + + diff --git a/doc/api/a00060.html b/doc/api/a00060.html new file mode 100644 index 00000000..a8b42c69 --- /dev/null +++ b/doc/api/a00060.html @@ -0,0 +1,116 @@ + + + + + +matrix_transform.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
matrix_transform.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat4x4< T > frustum (T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far)
template<typename T >
detail::tmat4x4< T > infinitePerspective (T fovy, T aspect, T near)
template<typename T >
detail::tmat4x4< T > lookAt (detail::tvec3< T > const &eye, detail::tvec3< T > const &center, detail::tvec3< T > const &up)
template<typename T >
detail::tmat4x4< T > ortho (T const &left, T const &right, T const &bottom, T const &top, T const &zNear, T const &zFar)
template<typename T >
detail::tmat4x4< T > ortho (T const &left, T const &right, T const &bottom, T const &top)
template<typename T >
detail::tmat4x4< T > perspective (T const &fovy, T const &aspect, T const &near, T const &far)
template<typename valType >
detail::tmat4x4< valType > perspectiveFov (valType const &fov, valType const &width, valType const &height, valType const &near, valType const &far)
template<typename T , typename U >
detail::tmat4x4< T > pickMatrix (detail::tvec2< T > const &center, detail::tvec2< T > const &delta, detail::tvec4< U > const &viewport)
template<typename T , typename U >
detail::tvec3< T > project (detail::tvec3< T > const &obj, detail::tmat4x4< T > const &model, detail::tmat4x4< T > const &proj, detail::tvec4< U > const &viewport)
template<typename T >
detail::tmat4x4< T > rotate (detail::tmat4x4< T > const &m, T const &angle, detail::tvec3< T > const &axis)
template<typename T >
detail::tmat4x4< T > scale (detail::tmat4x4< T > const &m, detail::tvec3< T > const &v)
template<typename T >
detail::tmat4x4< T > translate (detail::tmat4x4< T > const &m, detail::tvec3< T > const &v)
template<typename T >
detail::tmat4x4< T > tweakedInfinitePerspective (T fovy, T aspect, T near)
template<typename T , typename U >
detail::tvec3< T > unProject (detail::tvec3< T > const &win, detail::tmat4x4< T > const &model, detail::tmat4x4< T > const &proj, detail::tvec4< U > const &viewport)
+

Detailed Description

+

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.

+

GLM_GTC_matrix_transform: Matrix transform functions

+
Date:
2009-04-29 / 2011-05-16
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_transform: Extented transformation matrices
+
+GLM_GTX_transform2: Extra transformation matrices
+ +

Definition in file matrix_transform.hpp.

+
+ + + + + + diff --git a/doc/api/a00060_source.html b/doc/api/a00060_source.html new file mode 100644 index 00000000..f6cf075f --- /dev/null +++ b/doc/api/a00060_source.html @@ -0,0 +1,218 @@ + + + + + +matrix_transform.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
matrix_transform.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 
+00041 
+00042 
+00043 
+00044 
+00045 
+00046 #ifndef GLM_GTC_matrix_transform
+00047 #define GLM_GTC_matrix_transform GLM_VERSION
+00048 
+00049 // Dependency:
+00050 #include "../glm.hpp"
+00051 
+00052 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00053 #       pragma message("GLM: GLM_GTC_matrix_transform extension included")
+00054 #endif
+00055 
+00056 namespace glm
+00057 {
+00060 
+00081         template <typename T> 
+00082         detail::tmat4x4<T> translate(
+00083                 detail::tmat4x4<T> const & m,
+00084                 detail::tvec3<T> const & v);
+00085                 
+00097         template <typename T> 
+00098         detail::tmat4x4<T> rotate(
+00099                 detail::tmat4x4<T> const & m,
+00100                 T const & angle, 
+00101                 detail::tvec3<T> const & axis);
+00102 
+00113         template <typename T> 
+00114         detail::tmat4x4<T> scale(
+00115                 detail::tmat4x4<T> const & m,
+00116                 detail::tvec3<T> const & v);
+00117 
+00129         template <typename T> 
+00130         detail::tmat4x4<T> ortho(
+00131                 T const & left, 
+00132                 T const & right, 
+00133                 T const & bottom, 
+00134                 T const & top, 
+00135                 T const & zNear, 
+00136                 T const & zFar);
+00137 
+00147         template <typename T> 
+00148         detail::tmat4x4<T> ortho(
+00149                 T const & left, 
+00150                 T const & right, 
+00151                 T const & bottom, 
+00152                 T const & top);
+00153 
+00164         template <typename T> 
+00165         detail::tmat4x4<T> frustum(
+00166                 T const & left, 
+00167                 T const & right, 
+00168                 T const & bottom, 
+00169                 T const & top, 
+00170                 T const & near, 
+00171                 T const & far);
+00172 
+00181         template <typename T> 
+00182         detail::tmat4x4<T> perspective(
+00183                 T const & fovy, 
+00184                 T const & aspect, 
+00185                 T const & near, 
+00186                 T const & far);
+00187 
+00197         template <typename valType> 
+00198         detail::tmat4x4<valType> perspectiveFov(
+00199                 valType const & fov, 
+00200                 valType const & width, 
+00201                 valType const & height, 
+00202                 valType const & near, 
+00203                 valType const & far);
+00204 
+00212     template <typename T> 
+00213         detail::tmat4x4<T> infinitePerspective(
+00214                 T fovy, T aspect, T near);
+00215 
+00223     template <typename T> 
+00224         detail::tmat4x4<T> tweakedInfinitePerspective(
+00225                 T fovy, T aspect, T near);
+00226 
+00236         template <typename T, typename U> 
+00237         detail::tvec3<T> project(
+00238                 detail::tvec3<T> const & obj, 
+00239                 detail::tmat4x4<T> const & model, 
+00240                 detail::tmat4x4<T> const & proj, 
+00241                 detail::tvec4<U> const & viewport);
+00242 
+00252         template <typename T, typename U> 
+00253         detail::tvec3<T> unProject(
+00254                 detail::tvec3<T> const & win, 
+00255                 detail::tmat4x4<T> const & model, 
+00256                 detail::tmat4x4<T> const & proj, 
+00257                 detail::tvec4<U> const & viewport);
+00258 
+00267         template <typename T, typename U> 
+00268         detail::tmat4x4<T> pickMatrix(
+00269                 detail::tvec2<T> const & center, 
+00270                 detail::tvec2<T> const & delta, 
+00271                 detail::tvec4<U> const & viewport);
+00272 
+00280         template <typename T> 
+00281         detail::tmat4x4<T> lookAt(
+00282                 detail::tvec3<T> const & eye, 
+00283                 detail::tvec3<T> const & center, 
+00284                 detail::tvec3<T> const & up);
+00285 
+00287 }//namespace glm
+00288 
+00289 #include "matrix_transform.inl"
+00290 
+00291 #endif//GLM_GTC_matrix_transform
+
+
+ + + + + + diff --git a/doc/api/a00061.html b/doc/api/a00061.html new file mode 100644 index 00000000..5444349a --- /dev/null +++ b/doc/api/a00061.html @@ -0,0 +1,87 @@ + + + + + +mixed_product.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
mixed_product.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

+template<typename valType >
valType mixedProduct (detail::tvec3< valType > const &v1, detail::tvec3< valType > const &v2, detail::tvec3< valType > const &v3)
+

Detailed Description

+

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.

+

GLM_GTX_mixed_producte: Mixed product

+
Date:
2007-04-03 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file mixed_product.hpp.

+
+ + + + + + diff --git a/doc/api/a00061_source.html b/doc/api/a00061_source.html new file mode 100644 index 00000000..37f970a4 --- /dev/null +++ b/doc/api/a00061_source.html @@ -0,0 +1,126 @@ + + + + + +mixed_product.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
mixed_product.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_mixed_product
+00039 #define GLM_GTX_mixed_product GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_mixed_product extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00054         template <typename valType> 
+00055         valType mixedProduct(
+00056                 detail::tvec3<valType> const & v1, 
+00057                 detail::tvec3<valType> const & v2, 
+00058                 detail::tvec3<valType> const & v3);
+00059 
+00061 }// namespace glm
+00062 
+00063 #include "mixed_product.inl"
+00064 
+00065 #endif//GLM_GTX_mixed_product
+
+
+ + + + + + diff --git a/doc/api/a00062.html b/doc/api/a00062.html new file mode 100644 index 00000000..d8e30842 --- /dev/null +++ b/doc/api/a00062.html @@ -0,0 +1,90 @@ + + + + + +multiple.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
multiple.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename genType >
genType higherMultiple (genType const &Source, genType const &Multiple)
template<typename genType >
genType lowerMultiple (genType const &Source, genType const &Multiple)
+

Detailed Description

+

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.

+

GLM_GTX_multiple: Multiples

+
Date:
2009-10-26 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_extented_min_max: Extended min max (dependence)
+ +

Definition in file multiple.hpp.

+
+ + + + + + diff --git a/doc/api/a00062_source.html b/doc/api/a00062_source.html new file mode 100644 index 00000000..ff0e81b2 --- /dev/null +++ b/doc/api/a00062_source.html @@ -0,0 +1,131 @@ + + + + + +multiple.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
multiple.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_multiple
+00040 #define GLM_GTX_multiple GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_multiple extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053 
+00056         template <typename genType> 
+00057         genType higherMultiple(
+00058                 genType const & Source, 
+00059                 genType const & Multiple);
+00060 
+00063         template <typename genType> 
+00064         genType lowerMultiple(
+00065                 genType const & Source, 
+00066                 genType const & Multiple);
+00067 
+00069 }//namespace glm
+00070 
+00071 #include "multiple.inl"
+00072 
+00073 #endif//GLM_GTX_multiple
+
+
+ + + + + + diff --git a/doc/api/a00063.html b/doc/api/a00063.html new file mode 100644 index 00000000..ef22dd0e --- /dev/null +++ b/doc/api/a00063.html @@ -0,0 +1,90 @@ + + + + + +noise.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
noise.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Functions

template<typename T , template< typename > class vecType>
perlin (vecType< T > const &p)
template<typename T , template< typename > class vecType>
perlin (vecType< T > const &p, vecType< T > const &rep)
template<typename T , template< typename > class vecType>
simplex (vecType< T > const &p)
+

Detailed Description

+

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.

+

GLM_GTC_noise: Procedural noise functions

+
Date:
2011-04-21 / 2011-09-27
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file gtc/noise.hpp.

+
+ + + + + + diff --git a/doc/api/a00063_source.html b/doc/api/a00063_source.html new file mode 100644 index 00000000..7446fd23 --- /dev/null +++ b/doc/api/a00063_source.html @@ -0,0 +1,136 @@ + + + + + +noise.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
noise.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 
+00041 #ifndef GLM_GTC_noise
+00042 #define GLM_GTC_noise GLM_VERSION
+00043 
+00044 // Dependency:
+00045 #include "../glm.hpp"
+00046 
+00047 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00048 #       pragma message("GLM: GLM_GTC_noise extension included")
+00049 #endif
+00050 
+00051 namespace glm
+00052 {
+00055 
+00058         template <typename T, template<typename> class vecType> 
+00059     T perlin(
+00060                 vecType<T> const & p);
+00061                 
+00064         template <typename T, template<typename> class vecType> 
+00065     T perlin(
+00066                 vecType<T> const & p, 
+00067                 vecType<T> const & rep);
+00068 
+00071         template <typename T, template<typename> class vecType> 
+00072     T simplex(
+00073                 vecType<T> const & p);
+00074 
+00076 }//namespace glm
+00077 
+00078 #include "noise.inl"
+00079 
+00080 #endif//GLM_GTC_noise
+
+
+ + + + + + diff --git a/doc/api/a00064.html b/doc/api/a00064.html new file mode 100644 index 00000000..277c133d --- /dev/null +++ b/doc/api/a00064.html @@ -0,0 +1,78 @@ + + + + + +noise.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
noise.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM_GTX_noise: Procedural noise functions

+
Date:
2011-04-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file gtx/noise.hpp.

+
+ + + + + + diff --git a/doc/api/a00064_source.html b/doc/api/a00064_source.html new file mode 100644 index 00000000..d0ee6f58 --- /dev/null +++ b/doc/api/a00064_source.html @@ -0,0 +1,125 @@ + + + + + +noise.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
noise.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 
+00041 
+00042 #ifndef GLM_GTX_noise
+00043 #define GLM_GTX_noise GLM_VERSION
+00044 
+00045 // Dependency:
+00046 #include "../glm.hpp"
+00047 #include "../gtc/noise.hpp"
+00048 
+00049 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00050 #       pragma message("GLM: GLM_GTX_noise extension included")
+00051 #endif
+00052 
+00053 namespace glm
+00054 {
+00057 
+00059 }//namespace glm
+00060 
+00061 #include "noise.inl"
+00062 
+00063 #endif//glm_gtx_noise
+
+
+ + + + + + diff --git a/doc/api/a00065.html b/doc/api/a00065.html new file mode 100644 index 00000000..ca24e112 --- /dev/null +++ b/doc/api/a00065.html @@ -0,0 +1,108 @@ + + + + + +norm.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
norm.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
distance2 (T const &p0, T const &p1)
template<typename genType >
genType::value_type distance2 (genType const &p0, genType const &p1)
template<typename T >
l1Norm (detail::tvec3< T > const &x, detail::tvec3< T > const &y)
template<typename T >
l1Norm (detail::tvec3< T > const &v)
template<typename T >
l2Norm (detail::tvec3< T > const &x, detail::tvec3< T > const &y)
template<typename T >
l2Norm (detail::tvec3< T > const &x)
template<typename T >
length2 (T const &x)
template<typename genType >
genType::value_type length2 (genType const &x)
template<typename T >
length2 (detail::tquat< T > const &q)
template<typename T >
lxNorm (detail::tvec3< T > const &x, detail::tvec3< T > const &y, unsigned int Depth)
template<typename T >
lxNorm (detail::tvec3< T > const &x, unsigned int Depth)
+

Detailed Description

+

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.

+

GLM_GTX_norm: Vector norm calculations

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_quaternion: Extented quaternion types and functions (dependence)
+ +

Definition in file norm.hpp.

+
+ + + + + + diff --git a/doc/api/a00065_source.html b/doc/api/a00065_source.html new file mode 100644 index 00000000..104db856 --- /dev/null +++ b/doc/api/a00065_source.html @@ -0,0 +1,173 @@ + + + + + +norm.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
norm.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_norm
+00040 #define GLM_GTX_norm GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtx/quaternion.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_norm extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename T> 
+00058         T length2(
+00059                 T const & x);
+00060 
+00063         template <typename genType> 
+00064         typename genType::value_type length2(
+00065                 genType const & x);
+00066                 
+00069         template <typename T>
+00070         T length2(
+00071                 detail::tquat<T> const & q);
+00072 
+00075         template <typename T>
+00076         T distance2(
+00077                 T const & p0, 
+00078                 T const & p1);
+00079                 
+00082         template <typename genType> 
+00083         typename genType::value_type distance2(
+00084                 genType const & p0, 
+00085                 genType const & p1);
+00086 
+00089         template <typename T>
+00090         T l1Norm(
+00091                 detail::tvec3<T> const & x,
+00092                 detail::tvec3<T> const & y);
+00093                 
+00096         template <typename T> 
+00097         T l1Norm(
+00098                 detail::tvec3<T> const & v);
+00099                 
+00102         template <typename T> 
+00103         T l2Norm(
+00104                 detail::tvec3<T> const & x, 
+00105                 detail::tvec3<T> const & y);
+00106                 
+00109         template <typename T> 
+00110         T l2Norm(
+00111                 detail::tvec3<T> const & x);
+00112                 
+00115         template <typename T> 
+00116         T lxNorm(
+00117                 detail::tvec3<T> const & x,
+00118                 detail::tvec3<T> const & y,
+00119                 unsigned int Depth);
+00120 
+00123         template <typename T>
+00124         T lxNorm(
+00125                 detail::tvec3<T> const & x,
+00126                 unsigned int Depth);
+00127 
+00129 }//namespace glm
+00130 
+00131 #include "norm.inl"
+00132 
+00133 #endif//GLM_GTX_norm
+
+
+ + + + + + diff --git a/doc/api/a00066.html b/doc/api/a00066.html new file mode 100644 index 00000000..ff1f8c55 --- /dev/null +++ b/doc/api/a00066.html @@ -0,0 +1,88 @@ + + + + + +normal.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
normal.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

template<typename T >
detail::tvec3< T > triangleNormal (detail::tvec3< T > const &p1, detail::tvec3< T > const &p2, detail::tvec3< T > const &p3)
+

Detailed Description

+

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.

+

GLM_GTX_normal: Compute normals

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_extented_min_max: Extended min max (dependence)
+ +

Definition in file normal.hpp.

+
+ + + + + + diff --git a/doc/api/a00066_source.html b/doc/api/a00066_source.html new file mode 100644 index 00000000..644363c3 --- /dev/null +++ b/doc/api/a00066_source.html @@ -0,0 +1,127 @@ + + + + + +normal.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
normal.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_normal
+00040 #define GLM_GTX_normal GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_normal extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053 
+00056     template <typename T> 
+00057         detail::tvec3<T> triangleNormal(
+00058                 detail::tvec3<T> const & p1, 
+00059                 detail::tvec3<T> const & p2, 
+00060                 detail::tvec3<T> const & p3);
+00061 
+00063 }//namespace glm
+00064 
+00065 #include "normal.inl"
+00066 
+00067 #endif//GLM_GTX_normal
+
+
+ + + + + + diff --git a/doc/api/a00067.html b/doc/api/a00067.html new file mode 100644 index 00000000..cfc79065 --- /dev/null +++ b/doc/api/a00067.html @@ -0,0 +1,90 @@ + + + + + +normalize_dot.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
normalize_dot.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename genType >
genType::value_type fastNormalizeDot (genType const &x, genType const &y)
template<typename genType >
genType::value_type normalizeDot (genType const &x, genType const &y)
+

Detailed Description

+

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.

+

GLM_GTX_normalize_dot: Normalize dot product

+
Date:
2007-09-28 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_fast_square_root: Fast square root functions (dependence)
+ +

Definition in file normalize_dot.hpp.

+
+ + + + + + diff --git a/doc/api/a00067_source.html b/doc/api/a00067_source.html new file mode 100644 index 00000000..5a97b7cb --- /dev/null +++ b/doc/api/a00067_source.html @@ -0,0 +1,132 @@ + + + + + +normalize_dot.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
normalize_dot.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_normalize_dot
+00040 #define GLM_GTX_normalize_dot GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtx/fast_square_root.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_normalize_dot extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00058         template <typename genType> 
+00059         typename genType::value_type normalizeDot(
+00060                 genType const & x, 
+00061                 genType const & y);
+00062 
+00066         template <typename genType> 
+00067         typename genType::value_type fastNormalizeDot(
+00068                 genType const & x, 
+00069                 genType const & y);
+00070 
+00072 }//namespace glm
+00073 
+00074 #include "normalize_dot.inl"
+00075 
+00076 #endif//GLM_GTX_normalize_dot
+
+
+ + + + + + diff --git a/doc/api/a00068.html b/doc/api/a00068.html new file mode 100644 index 00000000..0c174736 --- /dev/null +++ b/doc/api/a00068.html @@ -0,0 +1,114 @@ + + + + + +number_precision.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
number_precision.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + +

+Typedefs

+typedef f16 f16mat1
+typedef f16 f16mat1x1
+typedef f16 f16vec1
+typedef f32 f32mat1
+typedef f32 f32mat1x1
+typedef f32 f32vec1
+typedef f64 f64mat1
+typedef f64 f64mat1x1
+typedef f64 f64vec1
+typedef u16 u16vec1
+typedef u32 u32vec1
+typedef u64 u64vec1
+typedef u8 u8vec1
+

Detailed Description

+

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.

+

GLM_GTX_number_precision: Number precision

+
Date:
2007-05-10 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_type_precision: Vector and matrix types with defined precisions (dependence)
+
+GLM_GTC_quaternion: Quaternion types and functions (dependence)
+ +

Definition in file number_precision.hpp.

+
+ + + + + + diff --git a/doc/api/a00068_source.html b/doc/api/a00068_source.html new file mode 100644 index 00000000..c099cc4e --- /dev/null +++ b/doc/api/a00068_source.html @@ -0,0 +1,147 @@ + + + + + +number_precision.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
number_precision.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 #ifndef GLM_GTX_number_precision
+00041 #define GLM_GTX_number_precision GLM_VERSION
+00042 
+00043 // Dependency:
+00044 #include "../glm.hpp"
+00045 #include "../gtc/type_precision.hpp"
+00046 
+00047 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00048 #       pragma message("GLM: GLM_GTX_number_precision extension included")
+00049 #endif
+00050 
+00051 namespace glm{
+00052 namespace gtx
+00053 {
+00055         // Unsigned int vector types 
+00056 
+00059 
+00060         typedef u8                      u8vec1;         
+00061         typedef u16                     u16vec1;    
+00062         typedef u32                     u32vec1;    
+00063         typedef u64                     u64vec1;    
+00064 
+00066         // Float vector types 
+00067 
+00068         typedef f16                     f16vec1;    
+00069         typedef f32                     f32vec1;    
+00070         typedef f64                     f64vec1;    
+00071 
+00073         // Float matrix types 
+00074 
+00075         typedef f16                     f16mat1;    
+00076         typedef f16                     f16mat1x1;      
+00077         typedef f32                     f32mat1;        
+00078         typedef f32                     f32mat1x1;      
+00079         typedef f64                     f64mat1;        
+00080         typedef f64                     f64mat1x1;      
+00081 
+00083 }//namespace gtx
+00084 }//namespace glm
+00085 
+00086 #include "number_precision.inl"
+00087 
+00088 #endif//GLM_GTX_number_precision
+
+
+ + + + + + diff --git a/doc/api/a00069.html b/doc/api/a00069.html new file mode 100644 index 00000000..a67a4634 --- /dev/null +++ b/doc/api/a00069.html @@ -0,0 +1,205 @@ + + + + + +ocl_type.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
ocl_type.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef detail::int8 cl_char
+typedef detail::int8 cl_char1
+typedef detail::tvec2
+< detail::int8 > 
cl_char2
+typedef detail::tvec3
+< detail::int8 > 
cl_char3
+typedef detail::tvec4
+< detail::int8 > 
cl_char4
+typedef detail::float32 cl_float
+typedef detail::float32 cl_float1
+typedef detail::tvec2
+< detail::float32 > 
cl_float2
+typedef detail::tvec3
+< detail::float32 > 
cl_float3
+typedef detail::tvec4
+< detail::float32 > 
cl_float4
+typedef detail::float16 cl_half
+typedef detail::int32 cl_int
+typedef detail::int32 cl_int1
+typedef detail::tvec2
+< detail::int32 > 
cl_int2
+typedef detail::tvec3
+< detail::int32 > 
cl_int3
+typedef detail::tvec4
+< detail::int32 > 
cl_int4
+typedef detail::int64 cl_long
+typedef detail::int64 cl_long1
+typedef detail::tvec2
+< detail::int64 > 
cl_long2
+typedef detail::tvec3
+< detail::int64 > 
cl_long3
+typedef detail::tvec4
+< detail::int64 > 
cl_long4
+typedef detail::int16 cl_short
+typedef detail::int16 cl_short1
+typedef detail::tvec2
+< detail::int16 > 
cl_short2
+typedef detail::tvec3
+< detail::int16 > 
cl_short3
+typedef detail::tvec4
+< detail::int16 > 
cl_short4
+typedef detail::uint8 cl_uchar
+typedef detail::uint8 cl_uchar1
+typedef detail::tvec2
+< detail::uint8 > 
cl_uchar2
+typedef detail::tvec3
+< detail::uint8 > 
cl_uchar3
+typedef detail::tvec4
+< detail::uint8 > 
cl_uchar4
+typedef detail::uint32 cl_uint
+typedef detail::uint32 cl_uint1
+typedef detail::tvec2
+< detail::uint32 > 
cl_uint2
+typedef detail::tvec3
+< detail::uint32 > 
cl_uint3
+typedef detail::tvec4
+< detail::uint32 > 
cl_uint4
+typedef detail::uint64 cl_ulong
+typedef detail::uint64 cl_ulong1
+typedef detail::tvec2
+< detail::uint64 > 
cl_ulong2
+typedef detail::tvec3
+< detail::uint64 > 
cl_ulong3
+typedef detail::tvec4
+< detail::uint64 > 
cl_ulong4
+typedef detail::uint16 cl_ushort
+typedef detail::uint16 cl_ushort1
+typedef detail::tvec2
+< detail::uint16 > 
cl_ushort2
+typedef detail::tvec3
+< detail::uint16 > 
cl_ushort3
+typedef detail::tvec4
+< detail::uint16 > 
cl_ushort4
+

Detailed Description

+

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.

+

GLM_GTX_ocl_type: OpenCL types

+
Date:
2009-05-07 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_extented_min_max: Extended min max (dependence)
+ +

Definition in file ocl_type.hpp.

+
+ + + + + + diff --git a/doc/api/a00069_source.html b/doc/api/a00069_source.html new file mode 100644 index 00000000..b8f4f84b --- /dev/null +++ b/doc/api/a00069_source.html @@ -0,0 +1,193 @@ + + + + + +ocl_type.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
ocl_type.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_ocl_type
+00040 #define GLM_GTX_ocl_type GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_ocl_type extension included")
+00047 #endif
+00048 
+00049 namespace glm{
+00050 namespace gtx
+00051 {
+00053         // Scalar types 
+00054 
+00057 
+00058         typedef detail::int8                                            cl_char;                
+00059         typedef detail::int16                                           cl_short;               
+00060         typedef detail::int32                                           cl_int;                 
+00061         typedef detail::int64                                           cl_long;                
+00062 
+00063         typedef detail::uint8                                           cl_uchar;               
+00064         typedef detail::uint16                                          cl_ushort;              
+00065         typedef detail::uint32                                          cl_uint;                
+00066         typedef detail::uint64                                          cl_ulong;               
+00067 
+00068         typedef detail::float16                                         cl_half;        
+00069         typedef detail::float32                                         cl_float;       
+00070 
+00071 
+00072         typedef detail::int8                                            cl_char1;               
+00073         typedef detail::int16                                           cl_short1;              
+00074         typedef detail::int32                                           cl_int1;                        
+00075         typedef detail::int64                                           cl_long1;               
+00076 
+00077         typedef detail::uint8                                           cl_uchar1;              
+00078         typedef detail::uint16                                          cl_ushort1;             
+00079         typedef detail::uint32                                          cl_uint1;               
+00080         typedef detail::uint64                                          cl_ulong1;              
+00081 
+00082         //typedef detail::float16                                               cl_half1;       //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
+00083         typedef detail::float32                                         cl_float1;      
+00084 
+00085 
+00086         typedef detail::tvec2<detail::int8>                     cl_char2;               
+00087         typedef detail::tvec2<detail::int16>            cl_short2;              
+00088         typedef detail::tvec2<detail::int32>            cl_int2;                        
+00089         typedef detail::tvec2<detail::int64>            cl_long2;               
+00090 
+00091         typedef detail::tvec2<detail::uint8>            cl_uchar2;              
+00092         typedef detail::tvec2<detail::uint16>           cl_ushort2;             
+00093         typedef detail::tvec2<detail::uint32>           cl_uint2;               
+00094         typedef detail::tvec2<detail::uint64>           cl_ulong2;              
+00095 
+00096         //typedef detail::tvec2<detail::float16>                cl_half2;       //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
+00097         typedef detail::tvec2<detail::float32>          cl_float2;      
+00098 
+00099 
+00100         typedef detail::tvec3<detail::int8>                     cl_char3;               
+00101         typedef detail::tvec3<detail::int16>            cl_short3;              
+00102         typedef detail::tvec3<detail::int32>            cl_int3;                        
+00103         typedef detail::tvec3<detail::int64>            cl_long3;               
+00104 
+00105         typedef detail::tvec3<detail::uint8>            cl_uchar3;              
+00106         typedef detail::tvec3<detail::uint16>           cl_ushort3;             
+00107         typedef detail::tvec3<detail::uint32>           cl_uint3;               
+00108         typedef detail::tvec3<detail::uint64>           cl_ulong3;              
+00109 
+00110         //typedef detail::tvec3<detail::float16>                cl_half3;       //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
+00111         typedef detail::tvec3<detail::float32>          cl_float3;      
+00112 
+00113 
+00114         typedef detail::tvec4<detail::int8>                     cl_char4;               
+00115         typedef detail::tvec4<detail::int16>            cl_short4;              
+00116         typedef detail::tvec4<detail::int32>            cl_int4;                        
+00117         typedef detail::tvec4<detail::int64>            cl_long4;               
+00118         typedef detail::tvec4<detail::uint8>            cl_uchar4;              
+00119         typedef detail::tvec4<detail::uint16>           cl_ushort4;             
+00120         typedef detail::tvec4<detail::uint32>           cl_uint4;               
+00121         typedef detail::tvec4<detail::uint64>           cl_ulong4;              
+00122 
+00123         //typedef detail::tvec4<detail::float16>                cl_half4;       //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
+00124         typedef detail::tvec4<detail::float32>          cl_float4;      
+00125 
+00127 }//namespace gtx
+00128 }//namespace glm
+00129 
+00130 #include "ocl_type.inl"
+00131 
+00132 #endif//GLM_GTX_ocl_type
+
+
+ + + + + + diff --git a/doc/api/a00070.html b/doc/api/a00070.html new file mode 100644 index 00000000..c5950fdd --- /dev/null +++ b/doc/api/a00070.html @@ -0,0 +1,94 @@ + + + + + +optimum_pow.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
optimum_pow.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + +

+Functions

template<typename genType >
genType pow2 (const genType &x)
template<typename genType >
genType pow3 (const genType &x)
template<typename genType >
genType pow4 (const genType &x)
bool powOfTwo (int num)
detail::tvec2< bool > powOfTwo (const detail::tvec2< int > &x)
detail::tvec3< bool > powOfTwo (const detail::tvec3< int > &x)
detail::tvec4< bool > powOfTwo (const detail::tvec4< int > &x)
+

Detailed Description

+

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.

+

GLM_GTX_optimum_pow: Optimum pow

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file optimum_pow.hpp.

+
+ + + + + + diff --git a/doc/api/a00070_source.html b/doc/api/a00070_source.html new file mode 100644 index 00000000..76c9021a --- /dev/null +++ b/doc/api/a00070_source.html @@ -0,0 +1,139 @@ + + + + + +optimum_pow.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
optimum_pow.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_optimum_pow
+00039 #define GLM_GTX_optimum_pow GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_optimum_pow extension included")
+00046 #endif
+00047 
+00048 namespace glm{
+00049 namespace gtx
+00050 {
+00053 
+00056     template <typename genType> 
+00057         genType pow2(const genType& x);
+00058 
+00061     template <typename genType> 
+00062         genType pow3(const genType& x);
+00063 
+00066         template <typename genType> 
+00067         genType pow4(const genType& x);
+00068         
+00071     bool powOfTwo(int num);
+00072 
+00075     detail::tvec2<bool> powOfTwo(const detail::tvec2<int>& x);
+00076 
+00079     detail::tvec3<bool> powOfTwo(const detail::tvec3<int>& x);
+00080 
+00083     detail::tvec4<bool> powOfTwo(const detail::tvec4<int>& x);
+00084 
+00086 }//namespace gtx
+00087 }//namespace glm
+00088 
+00089 #include "optimum_pow.inl"
+00090 
+00091 #endif//GLM_GTX_optimum_pow
+
+
+ + + + + + diff --git a/doc/api/a00071.html b/doc/api/a00071.html new file mode 100644 index 00000000..928d68f2 --- /dev/null +++ b/doc/api/a00071.html @@ -0,0 +1,90 @@ + + + + + +orthonormalize.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
orthonormalize.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename T >
detail::tmat3x3< T > orthonormalize (const detail::tmat3x3< T > &m)
template<typename T >
detail::tvec3< T > orthonormalize (const detail::tvec3< T > &x, const detail::tvec3< T > &y)
+

Detailed Description

+

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.

+

GLM_GTX_orthonormalize: Orthonormalize

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_extented_min_max: Extended min max (dependence)
+ +

Definition in file orthonormalize.hpp.

+
+ + + + + + diff --git a/doc/api/a00071_source.html b/doc/api/a00071_source.html new file mode 100644 index 00000000..04af530f --- /dev/null +++ b/doc/api/a00071_source.html @@ -0,0 +1,130 @@ + + + + + +orthonormalize.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
orthonormalize.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_orthonormalize
+00040 #define GLM_GTX_orthonormalize GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_orthonormalize extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053 
+00056         template <typename T> 
+00057         detail::tmat3x3<T> orthonormalize(
+00058                 const detail::tmat3x3<T>& m);
+00059                 
+00062         template <typename T> 
+00063         detail::tvec3<T> orthonormalize(
+00064                 const detail::tvec3<T>& x, 
+00065                 const detail::tvec3<T>& y);
+00066 
+00068 }//namespace glm
+00069 
+00070 #include "orthonormalize.inl"
+00071 
+00072 #endif//GLM_GTX_orthonormalize
+
+
+ + + + + + diff --git a/doc/api/a00072_source.html b/doc/api/a00072_source.html new file mode 100644 index 00000000..2de0257f --- /dev/null +++ b/doc/api/a00072_source.html @@ -0,0 +1,66 @@ + + + + + +pages.doxy Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
pages.doxy
+
+
+
00001 
+
+
+ + + + + + diff --git a/doc/api/a00073.html b/doc/api/a00073.html new file mode 100644 index 00000000..8b43f7d7 --- /dev/null +++ b/doc/api/a00073.html @@ -0,0 +1,88 @@ + + + + + +perpendicular.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
perpendicular.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

template<typename vecType >
vecType perp (vecType const &x, vecType const &Normal)
+

Detailed Description

+

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.

+

GLM_GTX_perpendicular: Perpendicular

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_projection: Projection (dependence)
+ +

Definition in file perpendicular.hpp.

+
+ + + + + + diff --git a/doc/api/a00073_source.html b/doc/api/a00073_source.html new file mode 100644 index 00000000..44885e6f --- /dev/null +++ b/doc/api/a00073_source.html @@ -0,0 +1,127 @@ + + + + + +perpendicular.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
perpendicular.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_perpendicular
+00040 #define GLM_GTX_perpendicular GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtx/projection.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_perpendicular extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename vecType> 
+00058         vecType perp(
+00059                 vecType const & x, 
+00060                 vecType const & Normal);
+00061 
+00063 }//namespace glm
+00064 
+00065 #include "perpendicular.inl"
+00066 
+00067 #endif//GLM_GTX_perpendicular
+
+
+ + + + + + diff --git a/doc/api/a00074.html b/doc/api/a00074.html new file mode 100644 index 00000000..37a061ed --- /dev/null +++ b/doc/api/a00074.html @@ -0,0 +1,88 @@ + + + + + +polar_coordinates.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
polar_coordinates.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename T >
detail::tvec3< T > euclidean (detail::tvec3< T > const &polar)
template<typename T >
detail::tvec3< T > polar (detail::tvec3< T > const &euclidean)
+

Detailed Description

+

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.

+

GLM_GTX_polar_coordinates: Polar coordinates

+
Date:
2007-03-06 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file polar_coordinates.hpp.

+
+ + + + + + diff --git a/doc/api/a00074_source.html b/doc/api/a00074_source.html new file mode 100644 index 00000000..242664e6 --- /dev/null +++ b/doc/api/a00074_source.html @@ -0,0 +1,128 @@ + + + + + +polar_coordinates.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
polar_coordinates.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_polar_coordinates
+00039 #define GLM_GTX_polar_coordinates GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_polar_coordinates extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename T> 
+00056         detail::tvec3<T> polar(
+00057                 detail::tvec3<T> const & euclidean);
+00058 
+00061         template <typename T> 
+00062         detail::tvec3<T> euclidean(
+00063                 detail::tvec3<T> const & polar);
+00064 
+00066 }//namespace glm
+00067 
+00068 #include "polar_coordinates.inl"
+00069 
+00070 #endif//GLM_GTX_polar_coordinates
+
+
+ + + + + + diff --git a/doc/api/a00075.html b/doc/api/a00075.html new file mode 100644 index 00000000..0d087b44 --- /dev/null +++ b/doc/api/a00075.html @@ -0,0 +1,86 @@ + + + + + +projection.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
projection.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

template<typename vecType >
vecType proj (vecType const &x, vecType const &Normal)
+

Detailed Description

+

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.

+

GLM_GTX_projection: Projection

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file projection.hpp.

+
+ + + + + + diff --git a/doc/api/a00075_source.html b/doc/api/a00075_source.html new file mode 100644 index 00000000..797bb93b --- /dev/null +++ b/doc/api/a00075_source.html @@ -0,0 +1,125 @@ + + + + + +projection.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
projection.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_projection
+00039 #define GLM_GTX_projection GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_projection extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename vecType> 
+00056         vecType proj(
+00057                 vecType const & x, 
+00058                 vecType const & Normal);
+00059 
+00061 }//namespace glm
+00062 
+00063 #include "projection.inl"
+00064 
+00065 #endif//GLM_GTX_projection
+
+
+ + + + + + diff --git a/doc/api/a00076.html b/doc/api/a00076.html new file mode 100644 index 00000000..c92d6836 --- /dev/null +++ b/doc/api/a00076.html @@ -0,0 +1,126 @@ + + + + + +quaternion.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
quaternion.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  tquat< T >
 Template for quaternion. More...

+Typedefs

typedef detail::tquat< double > dquat
typedef detail::tquat< float > fquat
typedef detail::tquat
+< highp_float > 
highp_quat
typedef detail::tquat
+< detail::half > 
hquat
typedef detail::tquat< lowp_float > lowp_quat
typedef detail::tquat
+< mediump_float > 
mediump_quat
typedef detail::tquat< float > quat

+Functions

template<typename T >
detail::tquat< T > conjugate (detail::tquat< T > const &q)
template<typename T >
dot (detail::tquat< T > const &q1, detail::tquat< T > const &q2)
template<typename T >
detail::tquat< T > inverse (detail::tquat< T > const &q)
template<typename T >
length (detail::tquat< T > const &q)
template<typename T >
detail::tmat3x3< T > mat3_cast (detail::tquat< T > const &x)
template<typename T >
detail::tmat4x4< T > mat4_cast (detail::tquat< T > const &x)
template<typename T >
detail::tquat< T > mix (detail::tquat< T > const &x, detail::tquat< T > const &y, T const &a)
template<typename T >
detail::tquat< T > normalize (detail::tquat< T > const &q)
template<typename T >
detail::tquat< T > quat_cast (detail::tmat3x3< T > const &x)
template<typename T >
detail::tquat< T > quat_cast (detail::tmat4x4< T > const &x)
template<typename T >
detail::tquat< T > rotate (detail::tquat< T > const &q, typename detail::tquat< T >::value_type const &angle, detail::tvec3< T > const &v)
+

Detailed Description

+

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.

+

GLM_GTC_quaternion: Quaternion types and functions

+
Date:
2009-05-21 / 2011-06-05
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_half_float: Half-precision floating-point based types and functions (dependence)
+ +

Definition in file gtc/quaternion.hpp.

+
+ + + + + + diff --git a/doc/api/a00076_source.html b/doc/api/a00076_source.html new file mode 100644 index 00000000..f5860b19 --- /dev/null +++ b/doc/api/a00076_source.html @@ -0,0 +1,279 @@ + + + + + +quaternion.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
quaternion.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTC_quaternion
+00040 #define GLM_GTC_quaternion GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtc/half_float.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTC_quaternion extension included")
+00048 #endif
+00049 
+00050 namespace glm{
+00051 namespace detail
+00052 {
+00056         template <typename T> 
+00057         struct tquat// : public genType<T, tquat>
+00058         {
+00059         enum ctor{null};
+00060         
+00061         typedef T value_type;
+00062         typedef std::size_t size_type;
+00063 
+00064         public:
+00065                 value_type x, y, z, w;
+00066         
+00067         GLM_FUNC_DECL size_type length() const;
+00068 
+00069                 // Constructors
+00070                 tquat();
+00071                 explicit tquat(
+00072                         value_type const & s, 
+00073                         glm::detail::tvec3<T> const & v);
+00074                 explicit tquat(
+00075                         value_type const & w, 
+00076                         value_type const & x, 
+00077                         value_type const & y, 
+00078                         value_type const & z);
+00079 
+00080                 // Convertions
+00081                 //explicit tquat(valType const & pitch, valType const & yaw, valType const & roll);
+00083                 explicit tquat(
+00084                         tvec3<T> const & eulerAngles);
+00085                 explicit tquat(
+00086                         tmat3x3<T> const & m);
+00087                 explicit tquat(
+00088                         tmat4x4<T> const & m);
+00089 
+00090                 // Accesses
+00091                 value_type & operator[](int i);
+00092                 value_type const & operator[](int i) const;
+00093 
+00094                 // Operators
+00095                 tquat<T> & operator*=(value_type const & s);
+00096                 tquat<T> & operator/=(value_type const & s);
+00097         };
+00098 
+00099         template <typename T> 
+00100         detail::tquat<T> operator- (
+00101                 detail::tquat<T> const & q);
+00102 
+00103         template <typename T> 
+00104         detail::tquat<T> operator+ ( 
+00105                 detail::tquat<T> const & q, 
+00106                 detail::tquat<T> const & p); 
+00107 
+00108         template <typename T> 
+00109         detail::tquat<T> operator* ( 
+00110                 detail::tquat<T> const & q, 
+00111                 detail::tquat<T> const & p); 
+00112 
+00113         template <typename T> 
+00114         detail::tvec3<T> operator* (
+00115                 detail::tquat<T> const & q, 
+00116                 detail::tvec3<T> const & v);
+00117 
+00118         template <typename T> 
+00119         detail::tvec3<T> operator* (
+00120                 detail::tvec3<T> const & v,
+00121                 detail::tquat<T> const & q);
+00122 
+00123         template <typename T> 
+00124         detail::tvec4<T> operator* (
+00125                 detail::tquat<T> const & q, 
+00126                 detail::tvec4<T> const & v);
+00127 
+00128         template <typename T> 
+00129         detail::tvec4<T> operator* (
+00130                 detail::tvec4<T> const & v,
+00131                 detail::tquat<T> const & q);
+00132 
+00133         template <typename T> 
+00134         detail::tquat<T> operator* (
+00135                 detail::tquat<T> const & q, 
+00136                 typename detail::tquat<T>::value_type const & s);
+00137 
+00138         template <typename T> 
+00139         detail::tquat<T> operator* (
+00140                 typename detail::tquat<T>::value_type const & s,
+00141                 detail::tquat<T> const & q);
+00142 
+00143         template <typename T> 
+00144         detail::tquat<T> operator/ (
+00145                 detail::tquat<T> const & q, 
+00146                 typename detail::tquat<T>::value_type const & s);
+00147 
+00148 } //namespace detail
+00149 
+00152 
+00156     template <typename T> 
+00157     T length(
+00158                 detail::tquat<T> const & q);
+00159 
+00163         template <typename T> 
+00164         detail::tquat<T> normalize(
+00165                 detail::tquat<T> const & q);
+00166                 
+00170         template <typename T> 
+00171         T dot(
+00172                 detail::tquat<T> const & q1, 
+00173                 detail::tquat<T> const & q2);
+00174 
+00178         template <typename T> 
+00179         detail::tquat<T> mix(
+00180                 detail::tquat<T> const & x, 
+00181                 detail::tquat<T> const & y, 
+00182                 T const & a);
+00183                 
+00187     template <typename T> 
+00188         detail::tquat<T> conjugate(
+00189                 detail::tquat<T> const & q);
+00190 
+00194     template <typename T> 
+00195         detail::tquat<T> inverse(
+00196                 detail::tquat<T> const & q);
+00197 
+00201         template <typename T> 
+00202         detail::tquat<T> rotate(
+00203                 detail::tquat<T> const & q, 
+00204                 typename detail::tquat<T>::value_type const & angle, 
+00205                 detail::tvec3<T> const & v);
+00206 
+00210     template <typename T> 
+00211         detail::tmat3x3<T> mat3_cast(
+00212                 detail::tquat<T> const & x);
+00213 
+00217         template <typename T> 
+00218         detail::tmat4x4<T> mat4_cast(
+00219                 detail::tquat<T> const & x);
+00220 
+00224         template <typename T> 
+00225         detail::tquat<T> quat_cast(
+00226                 detail::tmat3x3<T> const & x);
+00227 
+00231         template <typename T> 
+00232         detail::tquat<T> quat_cast(
+00233                 detail::tmat4x4<T> const & x);
+00234 
+00238     typedef detail::tquat<float> quat;
+00239 
+00243         typedef detail::tquat<detail::half>     hquat;
+00244 
+00248         typedef detail::tquat<float>    fquat;
+00249 
+00253         typedef detail::tquat<double>   dquat;
+00254 
+00258         typedef detail::tquat<lowp_float>               lowp_quat;
+00259 
+00263         typedef detail::tquat<mediump_float>    mediump_quat;
+00264 
+00268         typedef detail::tquat<highp_float>              highp_quat;
+00269 
+00271 } //namespace glm
+00272 
+00273 #include "quaternion.inl"
+00274 
+00275 #endif//GLM_GTC_quaternion
+
+
+ + + + + + diff --git a/doc/api/a00077.html b/doc/api/a00077.html new file mode 100644 index 00000000..ef6f1775 --- /dev/null +++ b/doc/api/a00077.html @@ -0,0 +1,134 @@ + + + + + +quaternion.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
quaternion.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename valType >
valType angle (detail::tquat< valType > const &x)
template<typename valType >
detail::tquat< valType > angleAxis (valType const &angle, valType const &x, valType const &y, valType const &z)
template<typename valType >
detail::tquat< valType > angleAxis (valType const &angle, detail::tvec3< valType > const &axis)
template<typename valType >
detail::tvec3< valType > axis (detail::tquat< valType > const &x)
template<typename valType >
detail::tvec3< valType > cross (detail::tquat< valType > const &q, detail::tvec3< valType > const &v)
template<typename valType >
detail::tvec3< valType > cross (detail::tvec3< valType > const &v, detail::tquat< valType > const &q)
template<typename valType >
detail::tvec3< valType > eulerAngles (detail::tquat< valType > const &x)
template<typename valType >
detail::tquat< valType > exp (detail::tquat< valType > const &q, valType const &exponent)
template<typename valType >
valType extractRealComponent (detail::tquat< valType > const &q)
template<typename T >
detail::tquat< T > fastMix (detail::tquat< T > const &x, detail::tquat< T > const &y, T const &a)
template<typename valType >
detail::tquat< valType > intermediate (detail::tquat< valType > const &prev, detail::tquat< valType > const &curr, detail::tquat< valType > const &next)
template<typename valType >
detail::tquat< valType > log (detail::tquat< valType > const &q)
template<typename valType >
valType pitch (detail::tquat< valType > const &x)
template<typename valType >
detail::tquat< valType > pow (detail::tquat< valType > const &x, valType const &y)
template<typename valType >
valType roll (detail::tquat< valType > const &x)
template<typename valType >
detail::tvec3< valType > rotate (detail::tquat< valType > const &q, detail::tvec3< valType > const &v)
template<typename valType >
detail::tvec4< valType > rotate (detail::tquat< valType > const &q, detail::tvec4< valType > const &v)
template<typename T >
detail::tquat< T > shortMix (detail::tquat< T > const &x, detail::tquat< T > const &y, T const &a)
template<typename valType >
detail::tquat< valType > squad (detail::tquat< valType > const &q1, detail::tquat< valType > const &q2, detail::tquat< valType > const &s1, detail::tquat< valType > const &s2, valType const &h)
template<typename valType >
detail::tmat3x3< valType > toMat3 (detail::tquat< valType > const &x)
template<typename valType >
detail::tmat4x4< valType > toMat4 (detail::tquat< valType > const &x)
template<typename valType >
detail::tquat< valType > toQuat (detail::tmat3x3< valType > const &x)
template<typename valType >
detail::tquat< valType > toQuat (detail::tmat4x4< valType > const &x)
template<typename valType >
valType yaw (detail::tquat< valType > const &x)
+

Detailed Description

+

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.

+

GLM_GTX_quaternion: Extented quaternion types and functions

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_extented_min_max: Extended min max (dependence)
+ +

Definition in file gtx/quaternion.hpp.

+
+ + + + + + diff --git a/doc/api/a00077_source.html b/doc/api/a00077_source.html new file mode 100644 index 00000000..69b06ae0 --- /dev/null +++ b/doc/api/a00077_source.html @@ -0,0 +1,242 @@ + + + + + +quaternion.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
quaternion.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_quaternion
+00040 #define GLM_GTX_quaternion GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtc/quaternion.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_quaternion extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename valType> 
+00058         detail::tvec3<valType> cross(
+00059                 detail::tquat<valType> const & q, 
+00060                 detail::tvec3<valType> const & v);
+00061 
+00064         template <typename valType> 
+00065         detail::tvec3<valType> cross(
+00066                 detail::tvec3<valType> const & v, 
+00067                 detail::tquat<valType> const & q);
+00068 
+00072         template <typename valType> 
+00073         detail::tquat<valType> squad(
+00074                 detail::tquat<valType> const & q1, 
+00075                 detail::tquat<valType> const & q2, 
+00076                 detail::tquat<valType> const & s1, 
+00077                 detail::tquat<valType> const & s2, 
+00078                 valType const & h);
+00079 
+00082         template <typename valType> 
+00083         detail::tquat<valType> intermediate(
+00084                 detail::tquat<valType> const & prev, 
+00085                 detail::tquat<valType> const & curr, 
+00086                 detail::tquat<valType> const & next);
+00087 
+00090     template <typename valType> 
+00091         detail::tquat<valType> exp(
+00092                 detail::tquat<valType> const & q, 
+00093                 valType const & exponent);
+00094 
+00097     template <typename valType> 
+00098         detail::tquat<valType> log(
+00099                 detail::tquat<valType> const & q);
+00100 
+00103     template <typename valType> 
+00104         detail::tquat<valType> pow(
+00105                 detail::tquat<valType> const & x, 
+00106                 valType const & y);
+00107 
+00110         //template <typename valType> 
+00111         //detail::tquat<valType> sqrt(
+00112         //      detail::tquat<valType> const & q);
+00113 
+00116         template <typename valType> 
+00117         detail::tvec3<valType> rotate(
+00118                 detail::tquat<valType> const & q, 
+00119                 detail::tvec3<valType> const & v);
+00120 
+00123         template <typename valType> 
+00124         detail::tvec4<valType> rotate(
+00125                 detail::tquat<valType> const & q, 
+00126                 detail::tvec4<valType> const & v);
+00127                 
+00130         template <typename valType> 
+00131         valType angle(
+00132                 detail::tquat<valType> const & x);
+00133 
+00136         template <typename valType> 
+00137         detail::tvec3<valType> axis(
+00138                 detail::tquat<valType> const & x);
+00139 
+00142         template <typename valType> 
+00143         detail::tquat<valType> angleAxis(
+00144                 valType const & angle, 
+00145                 valType const & x, 
+00146                 valType const & y, 
+00147                 valType const & z);
+00148 
+00151         template <typename valType> 
+00152         detail::tquat<valType> angleAxis(
+00153                 valType const & angle, 
+00154                 detail::tvec3<valType> const & axis);
+00155 
+00158         template <typename valType> 
+00159         valType extractRealComponent(
+00160                 detail::tquat<valType> const & q);
+00161 
+00164         template <typename valType> 
+00165         valType roll(
+00166                 detail::tquat<valType> const & x);
+00167 
+00170     template <typename valType> 
+00171         valType pitch(
+00172                 detail::tquat<valType> const & x);
+00173 
+00176         template <typename valType> 
+00177         valType yaw(
+00178                 detail::tquat<valType> const & x);
+00179                 
+00182         template <typename valType> 
+00183         detail::tvec3<valType> eulerAngles(
+00184                 detail::tquat<valType> const & x);
+00185 
+00188     template <typename valType> 
+00189         detail::tmat3x3<valType> toMat3(
+00190                 detail::tquat<valType> const & x){return mat3_cast(x);}
+00191 
+00194         template <typename valType> 
+00195         detail::tmat4x4<valType> toMat4(
+00196                 detail::tquat<valType> const & x){return mat4_cast(x);}
+00197 
+00200         template <typename valType> 
+00201         detail::tquat<valType> toQuat(
+00202                 detail::tmat3x3<valType> const & x){return quat_cast(x);}
+00203 
+00206         template <typename valType> 
+00207         detail::tquat<valType> toQuat(
+00208                 detail::tmat4x4<valType> const & x){return quat_cast(x);}
+00209 
+00212         template <typename T>
+00213         detail::tquat<T> shortMix(
+00214                 detail::tquat<T> const & x, 
+00215                 detail::tquat<T> const & y, 
+00216                 T const & a);
+00217 
+00220         template <typename T>
+00221         detail::tquat<T> fastMix(
+00222                 detail::tquat<T> const & x, 
+00223                 detail::tquat<T> const & y, 
+00224                 T const & a);
+00225 
+00227 }//namespace glm
+00228 
+00229 #include "quaternion.inl"
+00230 
+00231 #endif//GLM_GTX_quaternion
+
+
+ + + + + + diff --git a/doc/api/a00078.html b/doc/api/a00078.html new file mode 100644 index 00000000..ca7bf7bd --- /dev/null +++ b/doc/api/a00078.html @@ -0,0 +1,101 @@ + + + + + +random.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
random.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec3< T > 
ballRand (T const &Radius)
template<typename T >
detail::tvec2< T > circularRand (T const &Radius)
template<typename T >
detail::tvec2< T > diskRand (T const &Radius)
template<typename genType >
genType gaussRand (genType const &Mean, genType const &Deviation)
template<typename genType >
genType linearRand (genType const &Min, genType const &Max)
template<typename T >
detail::tvec3< T > sphericalRand (T const &Radius)
+

Detailed Description

+

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.

+

GLM_GTC_random: Random number generation

+
Date:
2011-09-18 / 2011-09-18
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_half_float: Half-precision floating-point based types and functions (dependence)
+
+GLM_GTX_random: Random (extended)
+ +

Definition in file gtc/random.hpp.

+
+ + + + + + diff --git a/doc/api/a00078_source.html b/doc/api/a00078_source.html new file mode 100644 index 00000000..769708ce --- /dev/null +++ b/doc/api/a00078_source.html @@ -0,0 +1,149 @@ + + + + + +random.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
random.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 #ifndef GLM_GTC_random
+00041 #define GLM_GTC_random GLM_VERSION
+00042 
+00043 // Dependency:
+00044 #include "../glm.hpp"
+00045 #include "../gtc/half_float.hpp"
+00046 
+00047 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00048 #       pragma message("GLM: GLM_GTC_random extension included")
+00049 #endif
+00050 
+00051 namespace glm
+00052 {
+00055         
+00062         template <typename genType> 
+00063         genType linearRand(
+00064                 genType const & Min, 
+00065                 genType const & Max);
+00066 
+00072         template <typename genType>
+00073         genType gaussRand(
+00074                 genType const & Mean, 
+00075                 genType const & Deviation);
+00076         
+00081         template <typename T> 
+00082         detail::tvec2<T> circularRand(
+00083                 T const & Radius); 
+00084         
+00089         template <typename T> 
+00090         detail::tvec3<T> sphericalRand(
+00091                 T const & Radius); 
+00092         
+00097         template <typename T> 
+00098         detail::tvec2<T> diskRand(
+00099                 T const & Radius); 
+00100         
+00105         template <typename T>
+00106         GLM_FUNC_QUALIFIER detail::tvec3<T> ballRand(
+00107                 T const & Radius);
+00108         
+00110 }//namespace glm
+00111 
+00112 #include "random.inl"
+00113 
+00114 #endif//GLM_GTC_random
+
+
+ + + + + + diff --git a/doc/api/a00079.html b/doc/api/a00079.html new file mode 100644 index 00000000..f95e0f69 --- /dev/null +++ b/doc/api/a00079.html @@ -0,0 +1,196 @@ + + + + + +random.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
random.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+template<typename T >
compRand1 ()
+template<>
float compRand1 ()
+template<typename T >
compRand1 (T Min, T Max)
+template<typename T >
detail::tvec2< T > compRand2 (T Min, T Max)
+template<typename T >
detail::tvec2< T > compRand2 (const detail::tvec2< T > &Min, const detail::tvec2< T > &Max)
+template<typename T >
detail::tvec3< T > compRand3 (T Min, T Max)
+template<typename T >
detail::tvec3< T > compRand3 (const detail::tvec3< T > &Min, const detail::tvec3< T > &Max)
+template<typename T >
detail::tvec4< T > compRand4 (T Min, T Max)
+template<typename T >
detail::tvec3< T > compRand4 (const detail::tvec4< T > &Min, const detail::tvec4< T > &Max)
+template<typename T >
gaussRand1 (T mean, T std_deviation)
+template<typename T >
detail::tvec2< T > gaussRand2 (T mean, T std_deviation)
+template<typename T >
detail::tvec2< T > gaussRand2 (const detail::tvec2< T > &mean, T std_deviation)
+template<typename T >
detail::tvec2< T > gaussRand2 (T mean, const detail::tvec2< T > &std_deviation)
+template<typename T >
detail::tvec2< T > gaussRand2 (const detail::tvec2< T > &mean, const detail::tvec2< T > &std_deviation)
+template<typename T >
detail::tvec3< T > gaussRand3 (T mean, T std_deviation)
+template<typename T >
detail::tvec3< T > gaussRand3 (const detail::tvec3< T > &mean, T std_deviation)
+template<typename T >
detail::tvec3< T > gaussRand3 (T mean, const detail::tvec3< T > &std_deviation)
+template<typename T >
detail::tvec3< T > gaussRand3 (const detail::tvec3< T > &mean, const detail::tvec3< T > &std_deviation)
+template<typename T >
detail::tvec4< T > gaussRand4 (T mean, T std_deviation)
+template<typename T >
detail::tvec4< T > gaussRand4 (const detail::tvec4< T > &mean, T std_deviation)
+template<typename T >
detail::tvec4< T > gaussRand4 (T mean, const detail::tvec4< T > &std_deviation)
+template<typename T >
detail::tvec4< T > gaussRand4 (const detail::tvec4< T > &mean, const detail::tvec4< T > &std_deviation)
+template<typename T >
detail::tvec2< T > normalizedRand2 ()
+template<typename T >
detail::tvec2< T > normalizedRand2 (T Min, T Max)
+template<typename T >
detail::tvec3< T > normalizedRand3 ()
+template<typename T >
detail::tvec3< T > normalizedRand3 (T Min, T Max)
template<typename T >
signedRand1 ()
+template<>
float signedRand1 ()
+template<typename T >
detail::tvec2< T > signedRand2 ()
+template<typename T >
detail::tvec3< T > signedRand3 ()
+template<typename T >
detail::tvec4< T > signedRand4 ()
+template<typename T >
detail::tvec2< T > vecRand2 ()
+template<typename T >
detail::tvec2< T > vecRand2 (T MinRadius, T MaxRadius)
+template<typename T >
detail::tvec3< T > vecRand3 ()
+template<typename T >
detail::tvec3< T > vecRand3 (T MinRadius, T MaxRadius)
+template<typename T >
detail::tvec4< T > vecRand4 ()
+template<typename T >
detail::tvec4< T > vecRand4 (T MinRadius, T MaxRadius)
+

Detailed Description

+

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.

+

GLM_GTX_random: Random

+
Date:
2006-01-16 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_half_float: Half-precision floating-point based types and functions (dependence)
+ +

Definition in file gtx/random.hpp.

+
+ + + + + + diff --git a/doc/api/a00079_source.html b/doc/api/a00079_source.html new file mode 100644 index 00000000..2da5065c --- /dev/null +++ b/doc/api/a00079_source.html @@ -0,0 +1,167 @@ + + + + + +random.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
random.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_random
+00040 #define GLM_GTX_random GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtc/random.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_random extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057     template <typename T> T signedRand1();
+00058         
+00059         template <> float signedRand1(); 
+00060     template <> double signedRand1(); 
+00061     template <typename T> detail::tvec2<T> signedRand2(); 
+00062     template <typename T> detail::tvec3<T> signedRand3(); 
+00063     template <typename T> detail::tvec4<T> signedRand4(); 
+00064     
+00065         template <typename T> detail::tvec2<T> normalizedRand2(); 
+00066         template <typename T> detail::tvec2<T> normalizedRand2(T Min, T Max); 
+00067         template <typename T> detail::tvec3<T> normalizedRand3(); 
+00068         template <typename T> detail::tvec3<T> normalizedRand3(T Min, T Max); 
+00069 
+00070     template <typename T> T compRand1(); 
+00071         template <> float compRand1(); 
+00072     template <> double compRand1(); 
+00073     template <typename T> T compRand1(T Min, T Max); 
+00074     template <typename T> detail::tvec2<T> compRand2(T Min, T Max); 
+00075     template <typename T> detail::tvec3<T> compRand3(T Min, T Max); 
+00076     template <typename T> detail::tvec4<T> compRand4(T Min, T Max); 
+00077     template <typename T> detail::tvec2<T> compRand2(const detail::tvec2<T>& Min, const detail::tvec2<T>& Max); 
+00078     template <typename T> detail::tvec3<T> compRand3(const detail::tvec3<T>& Min, const detail::tvec3<T>& Max); 
+00079     template <typename T> detail::tvec3<T> compRand4(const detail::tvec4<T>& Min, const detail::tvec4<T>& Max); 
+00080 
+00081     template <typename T> detail::tvec2<T> vecRand2(); 
+00082     template <typename T> detail::tvec2<T> vecRand2(T MinRadius, T MaxRadius); 
+00083     template <typename T> detail::tvec3<T> vecRand3(); 
+00084     template <typename T> detail::tvec3<T> vecRand3(T MinRadius, T MaxRadius); 
+00085     template <typename T> detail::tvec4<T> vecRand4(); 
+00086     template <typename T> detail::tvec4<T> vecRand4(T MinRadius, T MaxRadius); 
+00087 
+00088     template <typename T> T gaussRand1(T mean, T std_deviation); 
+00089     template <typename T> detail::tvec2<T> gaussRand2(T mean, T std_deviation); 
+00090     template <typename T> detail::tvec3<T> gaussRand3(T mean, T std_deviation); 
+00091     template <typename T> detail::tvec4<T> gaussRand4(T mean, T std_deviation); 
+00092     template <typename T> detail::tvec2<T> gaussRand2(const detail::tvec2<T>& mean, T std_deviation); 
+00093     template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, T std_deviation); 
+00094     template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, T std_deviation); 
+00095     template <typename T> detail::tvec2<T> gaussRand2(T  mean, const detail::tvec2<T>& std_deviation); 
+00096     template <typename T> detail::tvec3<T> gaussRand3(T  mean, const detail::tvec3<T>& std_deviation); 
+00097     template <typename T> detail::tvec4<T> gaussRand4(T  mean, const detail::tvec4<T>& std_deviation); 
+00098     template <typename T> detail::tvec2<T> gaussRand2(const detail::tvec2<T>& mean, const detail::tvec2<T>& std_deviation); 
+00099     template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, const detail::tvec3<T>& std_deviation); 
+00100     template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, const detail::tvec4<T>& std_deviation); 
+00101 
+00103 }//namespace glm
+00104 
+00105 #include "random.inl"
+00106 
+00107 #endif//GLM_GTX_random
+
+
+ + + + + + diff --git a/doc/api/a00080.html b/doc/api/a00080.html new file mode 100644 index 00000000..efa4d5ca --- /dev/null +++ b/doc/api/a00080.html @@ -0,0 +1,88 @@ + + + + + +raw_data.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
raw_data.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Typedefs

typedef uint8 byte
typedef uint32 dword
typedef uint64 qword
typedef uint16 word
+

Detailed Description

+

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.

+

GLM_GTX_raw_data: Raw data

+
Date:
2008-11-19 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file raw_data.hpp.

+
+ + + + + + diff --git a/doc/api/a00080_source.html b/doc/api/a00080_source.html new file mode 100644 index 00000000..311f2ae5 --- /dev/null +++ b/doc/api/a00080_source.html @@ -0,0 +1,129 @@ + + + + + +raw_data.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
raw_data.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_raw_data
+00039 #define GLM_GTX_raw_data GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 #include "../gtc/type_precision.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_raw_data extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053 
+00056         typedef uint8           byte;
+00057 
+00060         typedef uint16          word;
+00061 
+00064         typedef uint32          dword;
+00065 
+00068         typedef uint64          qword;
+00069 
+00071 }// namespace glm
+00072 
+00073 #include "raw_data.inl"
+00074 
+00075 #endif//GLM_GTX_raw_data
+
+
+ + + + + + diff --git a/doc/api/a00081.html b/doc/api/a00081.html new file mode 100644 index 00000000..2d50a571 --- /dev/null +++ b/doc/api/a00081.html @@ -0,0 +1,108 @@ + + + + + +reciprocal.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
reciprocal.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
genType acot (genType const &x)
template<typename genType >
genType acoth (genType const &x)
template<typename genType >
genType acsc (genType const &x)
template<typename genType >
genType acsch (genType const &x)
template<typename genType >
genType asec (genType const &x)
template<typename genType >
genType asech (genType const &x)
template<typename genType >
genType cot (genType const &angle)
template<typename genType >
genType coth (genType const &angle)
template<typename genType >
genType csc (genType const &angle)
template<typename genType >
genType csch (genType const &angle)
template<typename genType >
genType sec (genType const &angle)
template<typename genType >
genType sech (genType const &angle)
+

Detailed Description

+

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.

+

GLM_GTX_reciprocal: Reciprocal

+
Date:
2008-10-09 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file reciprocal.hpp.

+
+ + + + + + diff --git a/doc/api/a00081_source.html b/doc/api/a00081_source.html new file mode 100644 index 00000000..5f48b831 --- /dev/null +++ b/doc/api/a00081_source.html @@ -0,0 +1,156 @@ + + + + + +reciprocal.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
reciprocal.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_reciprocal
+00039 #define GLM_GTX_reciprocal GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_reciprocal extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00056         template <typename genType> 
+00057         genType sec(genType const & angle);
+00058 
+00062         template <typename genType> 
+00063         genType csc(genType const & angle);
+00064                 
+00068         template <typename genType> 
+00069         genType cot(genType const & angle);
+00070 
+00073         template <typename genType> 
+00074         genType asec(genType const & x);
+00075 
+00078         template <typename genType> 
+00079         genType acsc(genType const & x);
+00080                 
+00083         template <typename genType> 
+00084         genType acot(genType const & x);
+00085 
+00088         template <typename genType> 
+00089         genType sech(genType const & angle);
+00090 
+00093         template <typename genType> 
+00094         genType csch(genType const & angle);
+00095                 
+00098         template <typename genType> 
+00099         genType coth(genType const & angle);
+00100 
+00103         template <typename genType> 
+00104         genType asech(genType const & x);
+00105 
+00108         template <typename genType> 
+00109         genType acsch(genType const & x);
+00110                 
+00113         template <typename genType> 
+00114         genType acoth(genType const & x);
+00115 
+00117 }//namespace glm
+00118 
+00119 #include "reciprocal.inl"
+00120 
+00121 #endif//GLM_GTX_reciprocal
+
+
+ + + + + + diff --git a/doc/api/a00082.html b/doc/api/a00082.html new file mode 100644 index 00000000..19e17412 --- /dev/null +++ b/doc/api/a00082.html @@ -0,0 +1,106 @@ + + + + + +rotate_vector.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
rotate_vector.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat4x4< T > orientation (detail::tvec3< T > const &Normal, detail::tvec3< T > const &Up)
template<typename T >
detail::tvec2< T > rotate (detail::tvec2< T > const &v, T const &angle)
template<typename T >
detail::tvec3< T > rotate (detail::tvec3< T > const &v, T const &angle, detail::tvec3< T > const &normal)
template<typename T >
detail::tvec4< T > rotate (detail::tvec4< T > const &v, T const &angle, detail::tvec3< T > const &normal)
template<typename T >
detail::tvec3< T > rotateX (detail::tvec3< T > const &v, T const &angle)
template<typename T >
detail::tvec4< T > rotateX (detail::tvec4< T > const &v, T const &angle)
template<typename T >
detail::tvec3< T > rotateY (detail::tvec3< T > const &v, T const &angle)
template<typename T >
detail::tvec4< T > rotateY (detail::tvec4< T > const &v, T const &angle)
template<typename T >
detail::tvec3< T > rotateZ (detail::tvec3< T > const &v, T const &angle)
template<typename T >
detail::tvec4< T > rotateZ (detail::tvec4< T > const &v, T const &angle)
+

Detailed Description

+

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.

+

GLM_GTX_rotate_vector: Rotate vector

+
Date:
2006-11-02 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_transform: Extented transformation matrices (dependence)
+ +

Definition in file rotate_vector.hpp.

+
+ + + + + + diff --git a/doc/api/a00082_source.html b/doc/api/a00082_source.html new file mode 100644 index 00000000..5632fd53 --- /dev/null +++ b/doc/api/a00082_source.html @@ -0,0 +1,174 @@ + + + + + +rotate_vector.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
rotate_vector.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_rotate_vector
+00040 #define GLM_GTX_rotate_vector GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtx/transform.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_rotate_vector extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename T> 
+00058         detail::tvec2<T> rotate(
+00059         detail::tvec2<T> const & v, 
+00060                 T const & angle);
+00061                 
+00064         template <typename T> 
+00065         detail::tvec3<T> rotate(
+00066         detail::tvec3<T> const & v, 
+00067                 T const & angle, 
+00068         detail::tvec3<T> const & normal);
+00069                 
+00072         template <typename T> 
+00073         detail::tvec4<T> rotate(
+00074         detail::tvec4<T> const & v, 
+00075         T const & angle, 
+00076                 detail::tvec3<T> const & normal);
+00077                 
+00080         template <typename T> 
+00081         detail::tvec3<T> rotateX(
+00082         detail::tvec3<T> const & v, 
+00083                 T const & angle);
+00084 
+00087         template <typename T> 
+00088         detail::tvec3<T> rotateY(
+00089                 detail::tvec3<T> const & v, 
+00090                 T const & angle);
+00091                 
+00094         template <typename T> 
+00095         detail::tvec3<T> rotateZ(
+00096         detail::tvec3<T> const & v, 
+00097                 T const & angle);
+00098                 
+00101         template <typename T> 
+00102         detail::tvec4<T> rotateX(
+00103         detail::tvec4<T> const & v, 
+00104                 T const & angle);
+00105                 
+00108         template <typename T> 
+00109         detail::tvec4<T> rotateY(
+00110         detail::tvec4<T> const & v, 
+00111                 T const & angle);
+00112                 
+00115         template <typename T> 
+00116         detail::tvec4<T> rotateZ(
+00117         detail::tvec4<T> const & v, 
+00118                 T const & angle);
+00119                 
+00122         template <typename T> 
+00123         detail::tmat4x4<T> orientation(
+00124         detail::tvec3<T> const & Normal, 
+00125         detail::tvec3<T> const & Up);
+00126 
+00128 }//namespace glm
+00129 
+00130 #include "rotate_vector.inl"
+00131 
+00132 #endif//GLM_GTX_rotate_vector
+
+
+ + + + + + diff --git a/doc/api/a00083.html b/doc/api/a00083.html new file mode 100644 index 00000000..99888971 --- /dev/null +++ b/doc/api/a00083.html @@ -0,0 +1,77 @@ + + + + + +setup.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
setup.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2006-11-13 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file setup.hpp.

+
+ + + + + + diff --git a/doc/api/a00083_source.html b/doc/api/a00083_source.html new file mode 100644 index 00000000..7ec012c3 --- /dev/null +++ b/doc/api/a00083_source.html @@ -0,0 +1,711 @@ + + + + + +setup.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
setup.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_setup
+00030 #define glm_setup
+00031 
+00033 // Version
+00034 
+00035 #define GLM_VERSION                                     93
+00036 #define GLM_VERSION_MAJOR                       0
+00037 #define GLM_VERSION_MINOR                       9
+00038 #define GLM_VERSION_PATCH                       3
+00039 #define GLM_VERSION_REVISION            1
+00040 
+00042 // Platform
+00043 
+00044 #define GLM_PLATFORM_UNKNOWN            0x00000000
+00045 #define GLM_PLATFORM_WINDOWS            0x00010000
+00046 #define GLM_PLATFORM_LINUX                      0x00020000
+00047 #define GLM_PLATFORM_APPLE                      0x00040000
+00048 //#define GLM_PLATFORM_IOS                      0x00080000
+00049 #define GLM_PLATFORM_ANDROID            0x00100000
+00050 #define GLM_PLATFORM_CHROME_NACL        0x00200000
+00051 #define GLM_PLATFORM_UNIX                       0x00400000
+00052 
+00053 #ifdef GLM_FORCE_PLATFORM_UNKNOWN
+00054 #       define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
+00055 #elif defined(__APPLE__)
+00056 #   define GLM_PLATFORM GLM_PLATFORM_APPLE
+00057 #elif defined(_WIN32)
+00058 #       define GLM_PLATFORM GLM_PLATFORM_WINDOWS
+00059 #elif defined(__native_client__)
+00060 #       define GLM_PLATFORM GLM_PLATFORM_CHROME_NACL
+00061 #elif defined(ANDROID)
+00062 #   define GLM_PLATFORM GLM_PLATFORM_ANDROID
+00063 #elif defined(__linux)
+00064 #   define GLM_PLATFORM GLM_PLATFORM_LINUX
+00065 #elif defined(__unix)
+00066 #   define GLM_PLATFORM GLM_PLATFORM_UNIX
+00067 #else
+00068 #       define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
+00069 #endif//
+00070 
+00071 // Report platform detection
+00072 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_PLATFORM_DISPLAYED))
+00073 #       define GLM_MESSAGE_PLATFORM_DISPLAYED
+00074 #       if(GLM_PLATFORM & GLM_PLATFORM_WINDOWS)
+00075 #               pragma message("GLM: Windows platform detected")
+00076 //#     elif(GLM_PLATFORM & GLM_PLATFORM_IOS)
+00077 //#             pragma message("GLM: iOS platform detected")
+00078 #       elif(GLM_PLATFORM & GLM_PLATFORM_APPLE)
+00079 #               pragma message("GLM: Apple platform detected")
+00080 #       elif(GLM_PLATFORM & GLM_PLATFORM_LINUX)
+00081 #               pragma message("GLM: Linux platform detected")
+00082 #       elif(GLM_PLATFORM & GLM_PLATFORM_UNIX)
+00083 #               pragma message("GLM: UNIX platform detected")
+00084 #       elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
+00085 #               pragma message("GLM: Android platform detected")
+00086 #       elif(GLM_PLATFORM & GLM_PLATFORM_CHROME_NACL)
+00087 #               pragma message("GLM: Chrone Native Client detected")
+00088 #       elif(GLM_PLATFORM & GLM_PLATFORM_UNKNOWN)
+00089 #               pragma message("GLM: platform unknown")
+00090 #       else
+00091 #               pragma message("GLM: platform not detected")
+00092 #       endif
+00093 #endif//GLM_MESSAGE
+00094 
+00096 // Compiler
+00097 
+00098 // User defines: GLM_FORCE_COMPILER_UNKNOWN
+00099 // TODO ? __llvm__ 
+00100 
+00101 #define GLM_COMPILER_UNKNOWN            0x00000000
+00102 
+00103 // Visual C++ defines
+00104 #define GLM_COMPILER_VC                         0x01000000
+00105 #define GLM_COMPILER_VC2                        0x01000010
+00106 #define GLM_COMPILER_VC4                        0x01000020
+00107 #define GLM_COMPILER_VC5                        0x01000030
+00108 #define GLM_COMPILER_VC6                        0x01000040
+00109 #define GLM_COMPILER_VC2002                     0x01000050
+00110 #define GLM_COMPILER_VC2003                     0x01000060
+00111 #define GLM_COMPILER_VC2005                     0x01000070
+00112 #define GLM_COMPILER_VC2008                     0x01000080
+00113 #define GLM_COMPILER_VC2010                     0x01000090
+00114 #define GLM_COMPILER_VC2011                     0x010000A0
+00115 
+00116 // GCC defines
+00117 #define GLM_COMPILER_GCC            0x02000000
+00118 #define GLM_COMPILER_GCC_LLVM       0x02000001
+00119 #define GLM_COMPILER_GCC_CLANG      0x02000002
+00120 #define GLM_COMPILER_GCC30                      0x02000010
+00121 #define GLM_COMPILER_GCC31                      0x02000020
+00122 #define GLM_COMPILER_GCC32                      0x02000030
+00123 #define GLM_COMPILER_GCC33                      0x02000040
+00124 #define GLM_COMPILER_GCC34                      0x02000050
+00125 #define GLM_COMPILER_GCC35                      0x02000060
+00126 #define GLM_COMPILER_GCC40                      0x02000070
+00127 #define GLM_COMPILER_GCC41                      0x02000080
+00128 #define GLM_COMPILER_GCC42                      0x02000090
+00129 #define GLM_COMPILER_GCC43                      0x020000A0
+00130 #define GLM_COMPILER_GCC44                      0x020000B0
+00131 #define GLM_COMPILER_GCC45                      0x020000C0
+00132 #define GLM_COMPILER_GCC46                      0x020000D0
+00133 #define GLM_COMPILER_GCC47                      0x020000E0
+00134 #define GLM_COMPILER_GCC48                      0x020000F0
+00135 #define GLM_COMPILER_GCC49                      0x02000100
+00136 #define GLM_COMPILER_GCC50                      0x02000200
+00137 
+00138 // G++ command line to display defined
+00139 // echo "" | g++ -E -dM -x c++ - | sort
+00140 
+00141 // Borland C++ defines. How to identify BC?
+00142 #define GLM_COMPILER_BC                         0x04000000
+00143 #define GLM_COMPILER_BCB4                       0x04000100
+00144 #define GLM_COMPILER_BCB5                       0x04000200
+00145 #define GLM_COMPILER_BCB6                       0x04000300
+00146 //#define GLM_COMPILER_BCBX                     0x04000400 // What's the version value?
+00147 #define GLM_COMPILER_BCB2009            0x04000500
+00148 
+00149 // CodeWarrior
+00150 #define GLM_COMPILER_CODEWARRIOR        0x08000000
+00151 
+00152 // CUDA
+00153 #define GLM_COMPILER_CUDA           0x10000000
+00154 #define GLM_COMPILER_CUDA30                     0x10000010
+00155 #define GLM_COMPILER_CUDA31                     0x10000020
+00156 #define GLM_COMPILER_CUDA32                     0x10000030
+00157 #define GLM_COMPILER_CUDA40                     0x10000040
+00158 #define GLM_COMPILER_CUDA41                     0x10000050
+00159 #define GLM_COMPILER_CUDA42                     0x10000060
+00160 
+00161 // Clang
+00162 #define GLM_COMPILER_CLANG          0x20000000
+00163 #define GLM_COMPILER_CLANG26            0x20000010
+00164 #define GLM_COMPILER_CLANG27            0x20000020
+00165 #define GLM_COMPILER_CLANG28            0x20000030
+00166 #define GLM_COMPILER_CLANG29            0x20000040
+00167 #define GLM_COMPILER_CLANG30            0x20000050
+00168 #define GLM_COMPILER_CLANG31            0x20000060
+00169 #define GLM_COMPILER_CLANG32            0x20000070
+00170 #define GLM_COMPILER_CLANG33            0x20000080
+00171 
+00172 // LLVM GCC
+00173 #define GLM_COMPILER_LLVM_GCC           0x40000000
+00174 
+00175 // Intel
+00176 #define GLM_COMPILER_INTEL          0x80000000
+00177 #define GLM_COMPILER_INTEL9                     0x80000010
+00178 #define GLM_COMPILER_INTEL10_0          0x80000020
+00179 #define GLM_COMPILER_INTEL10_1          0x80000030
+00180 #define GLM_COMPILER_INTEL11_0          0x80000040
+00181 #define GLM_COMPILER_INTEL11_1          0x80000050
+00182 #define GLM_COMPILER_INTEL12_0          0x80000060
+00183 #define GLM_COMPILER_INTEL12_1          0x80000070
+00184 #define GLM_COMPILER_INTEL13_0          0x80000080
+00185 
+00186 // Build model
+00187 #define GLM_MODEL_32                            0x00000010
+00188 #define GLM_MODEL_64                            0x00000020
+00189 
+00190 // Force generic C++ compiler
+00191 #ifdef GLM_FORCE_COMPILER_UNKNOWN
+00192 #       define GLM_COMPILER GLM_COMPILER_UNKNOWN
+00193 
+00194 #elif defined(__INTEL_COMPILER)
+00195 #       if __INTEL_COMPILER == 900
+00196 #               define GLM_COMPILER GLM_COMPILER_INTEL9
+00197 #       elif __INTEL_COMPILER == 1000
+00198 #               define GLM_COMPILER GLM_COMPILER_INTEL10_0
+00199 #       elif __INTEL_COMPILER == 1010
+00200 #               define GLM_COMPILER GLM_COMPILER_INTEL10_1
+00201 #       elif __INTEL_COMPILER == 1100
+00202 #               define GLM_COMPILER GLM_COMPILER_INTEL11_0
+00203 #       elif __INTEL_COMPILER == 1110
+00204 #               define GLM_COMPILER GLM_COMPILER_INTEL11_1
+00205 #       elif __INTEL_COMPILER == 1200
+00206 #               define GLM_COMPILER GLM_COMPILER_INTEL12_0
+00207 #       elif __INTEL_COMPILER == 1210
+00208 #               define GLM_COMPILER GLM_COMPILER_INTEL12_1
+00209 #       elif __INTEL_COMPILER == 1300
+00210 #               define GLM_COMPILER GLM_COMPILER_INTEL13_0
+00211 #       else
+00212 #               define GLM_COMPILER GLM_COMPILER_INTEL
+00213 #       endif
+00214 
+00215 // CUDA
+00216 #elif defined(__CUDACC__)
+00217 #       define GLM_COMPILER GLM_COMPILER_CUDA
+00218 /*
+00219 #       if CUDA_VERSION < 3000
+00220 #               error "GLM requires CUDA 3.0 or higher"
+00221 #       elif CUDA_VERSION == 3000
+00222 #               define GLM_COMPILER GLM_COMPILER_CUDA30 
+00223 #       elif CUDA_VERSION == 3010
+00224 #               define GLM_COMPILER GLM_COMPILER_CUDA31 
+00225 #       elif CUDA_VERSION == 3020
+00226 #               define GLM_COMPILER GLM_COMPILER_CUDA32 
+00227 #       elif CUDA_VERSION == 4000
+00228 #               define GLM_COMPILER GLM_COMPILER_CUDA40 
+00229 #       elif CUDA_VERSION == 4010
+00230 #               define GLM_COMPILER GLM_COMPILER_CUDA41 
+00231 #       elif CUDA_VERSION == 4020
+00232 #               define GLM_COMPILER GLM_COMPILER_CUDA42
+00233 #       else
+00234 #               define GLM_COMPILER GLM_COMPILER_CUDA
+00235 #       endif
+00236 */
+00237 
+00238 // Visual C++
+00239 #elif defined(_MSC_VER)
+00240 #       if _MSC_VER == 900
+00241 #               define GLM_COMPILER GLM_COMPILER_VC2
+00242 #       elif _MSC_VER == 1000
+00243 #               define GLM_COMPILER GLM_COMPILER_VC4
+00244 #       elif _MSC_VER == 1100
+00245 #               define GLM_COMPILER GLM_COMPILER_VC5
+00246 #       elif _MSC_VER == 1200
+00247 #               define GLM_COMPILER GLM_COMPILER_VC6
+00248 #       elif _MSC_VER == 1300
+00249 #               define GLM_COMPILER GLM_COMPILER_VC2002
+00250 #       elif _MSC_VER == 1310
+00251 #               define GLM_COMPILER GLM_COMPILER_VC2003
+00252 #       elif _MSC_VER == 1400
+00253 #               define GLM_COMPILER GLM_COMPILER_VC2005
+00254 #       elif _MSC_VER == 1500
+00255 #               define GLM_COMPILER GLM_COMPILER_VC2008
+00256 #       elif _MSC_VER == 1600
+00257 #               define GLM_COMPILER GLM_COMPILER_VC2010
+00258 #       elif _MSC_VER == 1700
+00259 #               define GLM_COMPILER GLM_COMPILER_VC2011
+00260 #       else//_MSC_VER
+00261 #               define GLM_COMPILER GLM_COMPILER_VC
+00262 #       endif//_MSC_VER
+00263 
+00264 // Clang
+00265 #elif defined(__clang__)
+00266 #       if(__clang_major__ == 2) && (__clang_minor__ == 6)
+00267 #               define GLM_COMPILER GLM_COMPILER_CLANG26
+00268 #       elif(__clang_major__ == 2) && (__clang_minor__ == 7)
+00269 #               define GLM_COMPILER GLM_COMPILER_CLANG27
+00270 #       elif(__clang_major__ == 2) && (__clang_minor__ == 8)
+00271 #               define GLM_COMPILER GLM_COMPILER_CLANG28
+00272 #       elif(__clang_major__ == 2) && (__clang_minor__ == 9)
+00273 #               define GLM_COMPILER GLM_COMPILER_CLANG29
+00274 #       elif(__clang_major__ == 3) && (__clang_minor__ == 0)
+00275 #               define GLM_COMPILER GLM_COMPILER_CLANG30
+00276 #       elif(__clang_major__ == 3) && (__clang_minor__ == 1)
+00277 #               define GLM_COMPILER GLM_COMPILER_CLANG31
+00278 #       elif(__clang_major__ == 3) && (__clang_minor__ == 2)
+00279 #               define GLM_COMPILER GLM_COMPILER_CLANG32
+00280 #       elif(__clang_major__ == 3) && (__clang_minor__ == 3)
+00281 #               define GLM_COMPILER GLM_COMPILER_CLANG33
+00282 #       else
+00283 #               define GLM_COMPILER GLM_COMPILER_CLANG
+00284 #   endif
+00285 
+00286 // G++ 
+00287 #elif(defined(__GNUC__) || defined(__MINGW32__))// || defined(__llvm__) || defined(__clang__)
+00288 #   if defined (__llvm__)
+00289 #       define GLM_COMPILER_GCC_EXTRA GLM_COMPILER_GCC_LLVM
+00290 #   elif defined (__clang__)
+00291 #       define GLM_COMPILER_GCC_EXTRA GLM_COMPILER_GCC_CLANG
+00292 #   else
+00293 #       define GLM_COMPILER_GCC_EXTRA 0
+00294 #   endif
+00295 #
+00296 #       if   (__GNUC__ == 3) && (__GNUC_MINOR__ == 2)
+00297 #               define GLM_COMPILER GLM_COMPILER_GCC32
+00298 #       elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 3)
+00299 #               define GLM_COMPILER GLM_COMPILER_GCC33
+00300 #       elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 4)
+00301 #               define GLM_COMPILER GLM_COMPILER_GCC34
+00302 #       elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 5)
+00303 #               define GLM_COMPILER GLM_COMPILER_GCC35
+00304 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 0)
+00305 #               define GLM_COMPILER (GLM_COMPILER_GCC40 | GLM_COMPILER_GCC_EXTRA)
+00306 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 1)
+00307 #               define GLM_COMPILER (GLM_COMPILER_GCC41 | GLM_COMPILER_GCC_EXTRA)
+00308 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
+00309 #               define GLM_COMPILER (GLM_COMPILER_GCC42 | GLM_COMPILER_GCC_EXTRA)
+00310 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3)
+00311 #               define GLM_COMPILER (GLM_COMPILER_GCC43 | GLM_COMPILER_GCC_EXTRA)
+00312 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 4)
+00313 #               define GLM_COMPILER (GLM_COMPILER_GCC44 | GLM_COMPILER_GCC_EXTRA)
+00314 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 5)
+00315 #               define GLM_COMPILER (GLM_COMPILER_GCC45 | GLM_COMPILER_GCC_EXTRA)
+00316 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
+00317 #               define GLM_COMPILER (GLM_COMPILER_GCC46 | GLM_COMPILER_GCC_EXTRA)
+00318 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)
+00319 #               define GLM_COMPILER (GLM_COMPILER_GCC47 | GLM_COMPILER_GCC_EXTRA)
+00320 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
+00321 #               define GLM_COMPILER (GLM_COMPILER_GCC48 | GLM_COMPILER_GCC_EXTRA)
+00322 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 9)
+00323 #               define GLM_COMPILER (GLM_COMPILER_GCC49 | GLM_COMPILER_GCC_EXTRA)
+00324 #       elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 0)
+00325 #               define GLM_COMPILER (GLM_COMPILER_GCC50 | GLM_COMPILER_GCC_EXTRA)
+00326 #       else
+00327 #               define GLM_COMPILER (GLM_COMPILER_GCC | GLM_COMPILER_GCC_EXTRA)
+00328 #       endif
+00329 
+00330 // Borland C++
+00331 #elif defined(_BORLANDC_)
+00332 #       if defined(VER125)
+00333 #               define GLM_COMPILER GLM_COMPILER_BCB4
+00334 #       elif defined(VER130)
+00335 #               define GLM_COMPILER GLM_COMPILER_BCB5
+00336 #       elif defined(VER140)
+00337 #               define GLM_COMPILER GLM_COMPILER_BCB6
+00338 #       elif defined(VER200)
+00339 #               define GLM_COMPILER GLM_COMPILER_BCB2009
+00340 #       else
+00341 #               define GLM_COMPILER GLM_COMPILER_BC
+00342 #       endif
+00343 
+00344 // Codewarrior
+00345 #elif defined(__MWERKS__)
+00346 #       define GLM_COMPILER GLM_COMPILER_CODEWARRIOR
+00347 
+00348 #else
+00349 #       define GLM_COMPILER GLM_COMPILER_UNKNOWN
+00350 #endif
+00351 
+00352 #ifndef GLM_COMPILER
+00353 #error "GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message."
+00354 #endif//GLM_COMPILER
+00355 
+00356 // Report compiler detection
+00357 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPILER_DISPLAYED))
+00358 #       define GLM_MESSAGE_COMPILER_DISPLAYED
+00359 #       if(GLM_COMPILER & GLM_COMPILER_CUDA)
+00360 #               pragma message("GLM: CUDA compiler detected")
+00361 #       elif(GLM_COMPILER & GLM_COMPILER_VC)
+00362 #               pragma message("GLM: Visual C++ compiler detected")
+00363 #       elif(GLM_COMPILER & GLM_COMPILER_CLANG)
+00364 #               pragma message("GLM: Clang compiler detected")
+00365 #       elif(GLM_COMPILER & GLM_COMPILER_LLVM_GCC)
+00366 #               pragma message("GLM: LLVM GCC compiler detected")
+00367 #       elif(GLM_COMPILER & GLM_COMPILER_GCC)
+00368 #       if(GLM_COMPILER == GLM_COMPILER_GCC_LLVM)
+00369 #           pragma message("GLM: LLVM GCC compiler detected")
+00370 #       elif(GLM_COMPILER == GLM_COMPILER_GCC_CLANG)
+00371 #           pragma message("GLM: CLANG compiler detected")
+00372 #       else
+00373 #           pragma message("GLM: GCC compiler detected")
+00374 #       endif
+00375 #       elif(GLM_COMPILER & GLM_COMPILER_BC)
+00376 #               pragma message("GLM: Borland compiler detected but not supported")
+00377 #       elif(GLM_COMPILER & GLM_COMPILER_CODEWARRIOR)
+00378 #               pragma message("GLM: Codewarrior compiler detected but not supported")
+00379 #       else
+00380 #               pragma message("GLM: Compiler not detected")
+00381 #       endif
+00382 #endif//GLM_MESSAGE
+00383 
+00385 // Build model //
+00386 
+00387 #if((defined(__WORDSIZE) && (__WORDSIZE == 64)) || defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__))
+00388 #               define GLM_MODEL        GLM_MODEL_64
+00389 #elif(defined(__i386__) || defined(__ppc__))
+00390 #       define GLM_MODEL        GLM_MODEL_32
+00391 #else
+00392 #       define GLM_MODEL        GLM_MODEL_32
+00393 #endif//
+00394 
+00395 #if(!defined(GLM_MODEL) && GLM_COMPILER != 0)
+00396 #error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."
+00397 #endif//GLM_MODEL
+00398 
+00399 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_MODEL_DISPLAYED))
+00400 #       define GLM_MESSAGE_MODEL_DISPLAYED
+00401 #       if(GLM_MODEL == GLM_MODEL_64)
+00402 #               pragma message("GLM: 64 bits model")
+00403 #       elif(GLM_MODEL == GLM_MODEL_32)
+00404 #               pragma message("GLM: 32 bits model")
+00405 #       endif//GLM_MODEL
+00406 #endif//GLM_MESSAGE
+00407 
+00409 // C++ Version //
+00410 
+00411 // User defines: GLM_FORCE_CXX98
+00412 
+00413 #define GLM_LANG_CXX                    (0 << 0)
+00414 #define GLM_LANG_CXX98                  ((1 << 1) | GLM_LANG_CXX)
+00415 #define GLM_LANG_CXX03                  ((1 << 2) | GLM_LANG_CXX98)
+00416 #define GLM_LANG_CXX0X                  ((1 << 3) | GLM_LANG_CXX03)
+00417 #define GLM_LANG_CXX11                  ((1 << 4) | GLM_LANG_CXX0X)
+00418 #define GLM_LANG_CXXMS                  (1 << 5)
+00419 #define GLM_LANG_CXXGNU                 (1 << 6)
+00420 
+00421 #if(defined(GLM_FORCE_CXX11))
+00422 #       define GLM_LANG GLM_LANG_CXX11
+00423 #elif(defined(GLM_FORCE_CXX03))
+00424 #       define GLM_LANG GLM_LANG_CXX03
+00425 #elif(defined(GLM_FORCE_CXX98))
+00426 #       define GLM_LANG GLM_LANG_CXX98
+00427 #else
+00428 //  -std=c++0x or -std=gnu++0x
+00429 #       if(((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) && defined(__GXX_EXPERIMENTAL_CXX0X__)) 
+00430 #               define GLM_LANG GLM_LANG_CXX0X
+00431 #       elif(((GLM_COMPILER & GLM_COMPILER_VC) == GLM_COMPILER_VC) && defined(_MSC_EXTENSIONS))
+00432 #               define GLM_LANG GLM_LANG_CXXMS
+00433 #       elif(((GLM_COMPILER & GLM_COMPILER_VC) == GLM_COMPILER_VC) && !defined(_MSC_EXTENSIONS))
+00434 #               if(GLM_COMPILER >= GLM_COMPILER_VC2010)
+00435 #                       define GLM_LANG GLM_LANG_CXX0X
+00436 #               else
+00437 #                       define GLM_LANG GLM_LANG_CXX98
+00438 #               endif//(GLM_COMPILER == GLM_COMPILER_VC2010)
+00439 #       elif((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) //&& defined(__STRICT_ANSI__))
+00440 #               define GLM_LANG GLM_LANG_CXX98
+00441 #       elif((GLM_COMPILER & GLM_COMPILER_CLANG) == GLM_COMPILER_CLANG) 
+00442 #               define GLM_LANG GLM_LANG_CXX98
+00443 #       else
+00444 #               define GLM_LANG GLM_LANG_CXX
+00445 #       endif
+00446 #endif
+00447 
+00448 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED))
+00449 #       define GLM_MESSAGE_LANG_DISPLAYED
+00450 #       if(GLM_LANG == GLM_LANG_CXX98)
+00451 #               pragma message("GLM: C++98")
+00452 #       elif(GLM_LANG == GLM_LANG_CXX03)
+00453 #               pragma message("GLM: C++03")
+00454 #       elif(GLM_LANG == GLM_LANG_CXX0X)
+00455 #               pragma message("GLM: C++0x")
+00456 #       elif(GLM_LANG == GLM_LANG_CXX11)
+00457 #               pragma message("GLM: C++11")
+00458 #       elif(GLM_LANG == GLM_LANG_CXXGNU)
+00459 #               pragma message("GLM: C++ with GNU language extensions")
+00460 #       elif(GLM_LANG == GLM_LANG_CXXMS)
+00461 #               pragma message("GLM: C++ with VC language extensions")
+00462 #   else
+00463 #       pragma message("GLM: C++ language undetected")
+00464 #       endif//GLM_MODEL
+00465 #endif//GLM_MESSAGE
+00466 
+00468 // Platform 
+00469 
+00470 // User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_AVX
+00471 
+00472 #define GLM_ARCH_PURE           0x0000 //(0x0000)
+00473 #define GLM_ARCH_SSE2           0x0001 //(0x0001)
+00474 #define GLM_ARCH_SSE3           0x0003 //(0x0002 | GLM_ARCH_SSE2)
+00475 #define GLM_ARCH_AVX            0x0007 //(0x0004 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
+00476 
+00477 #if(defined(GLM_FORCE_PURE))
+00478 #       define GLM_ARCH GLM_ARCH_PURE
+00479 #elif(defined(GLM_FORCE_AVX))
+00480 #       define GLM_ARCH GLM_ARCH_AVX
+00481 #elif(defined(GLM_FORCE_SSE3))
+00482 #       define GLM_ARCH GLM_ARCH_SSE3
+00483 #elif(defined(GLM_FORCE_SSE2))
+00484 #       define GLM_ARCH GLM_ARCH_SSE2
+00485 #elif((GLM_COMPILER & GLM_COMPILER_VC) && (defined(_M_IX86) || defined(_M_X64)))
+00486 #       if(defined(_M_CEE_PURE))
+00487 #               define GLM_ARCH GLM_ARCH_PURE
+00488 #       elif(GLM_COMPILER >= GLM_COMPILER_VC2010)
+00489 #               if(_MSC_FULL_VER >= 160031118) //160031118: VC2010 SP1 beta full version
+00490 #                       define GLM_ARCH GLM_ARCH_AVX //GLM_ARCH_AVX (Require SP1)
+00491 #               else
+00492 #                       define GLM_ARCH GLM_ARCH_SSE3
+00493 #               endif
+00494 #       elif(GLM_COMPILER >= GLM_COMPILER_VC2008) 
+00495 #               define GLM_ARCH GLM_ARCH_SSE3
+00496 #       elif(GLM_COMPILER >= GLM_COMPILER_VC2005)
+00497 #               define GLM_ARCH GLM_ARCH_SSE2
+00498 #       else
+00499 #               define GLM_ARCH GLM_ARCH_PURE
+00500 #       endif
+00501 #elif(GLM_COMPILER & GLM_COMPILER_LLVM_GCC)
+00502 #       if(defined(__AVX__))
+00503 #               define GLM_ARCH GLM_ARCH_AVX
+00504 #       elif(defined(__SSE3__))
+00505 #               define GLM_ARCH GLM_ARCH_SSE3
+00506 #       elif(defined(__SSE2__))
+00507 #               define GLM_ARCH GLM_ARCH_SSE2
+00508 #       else
+00509 #               define GLM_ARCH GLM_ARCH_PURE
+00510 #       endif
+00511 #elif((GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__)))
+00512 #       if(defined(__AVX__))
+00513 #               define GLM_ARCH GLM_ARCH_AVX
+00514 #       elif(defined(__SSE3__))
+00515 #               define GLM_ARCH GLM_ARCH_SSE3
+00516 #       elif(defined(__SSE2__))
+00517 #               define GLM_ARCH GLM_ARCH_SSE2
+00518 #       else
+00519 #               define GLM_ARCH GLM_ARCH_PURE
+00520 #       endif
+00521 #else
+00522 #       define GLM_ARCH GLM_ARCH_PURE
+00523 #endif
+00524 
+00525 #if(GLM_ARCH != GLM_ARCH_PURE)
+00526 #if((GLM_ARCH & GLM_ARCH_AVX) == GLM_ARCH_AVX)
+00527 #       include <immintrin.h>
+00528 #endif//GLM_ARCH
+00529 #if((GLM_ARCH & GLM_ARCH_SSE3) == GLM_ARCH_SSE3)
+00530 #       include <pmmintrin.h>
+00531 #endif//GLM_ARCH
+00532 #if((GLM_ARCH & GLM_ARCH_SSE2) == GLM_ARCH_SSE2)
+00533 #       include <emmintrin.h>
+00534 #endif//GLM_ARCH
+00535 #endif//(GLM_ARCH != GLM_ARCH_PURE)
+00536 
+00537 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_ARCH_DISPLAYED))
+00538 #       define GLM_MESSAGE_ARCH_DISPLAYED
+00539 #       if(GLM_ARCH == GLM_ARCH_PURE)
+00540 #               pragma message("GLM: Platform independent")
+00541 #       elif(GLM_ARCH == GLM_ARCH_SSE2)
+00542 #               pragma message("GLM: SSE2 instruction set")
+00543 #       elif(GLM_ARCH == GLM_ARCH_SSE3)
+00544 #               pragma message("GLM: SSE3 instruction set")
+00545 #       elif(GLM_ARCH == GLM_ARCH_AVX)
+00546 #               pragma message("GLM: AVX instruction set")
+00547 #       endif//GLM_ARCH
+00548 #endif//GLM_MESSAGE
+00549 
+00551 // Support check macros
+00552 
+00553 #define GLM_SUPPORT_ANONYMOUS_UNION() \
+00554         ((GLM_LANG & GLM_LANG_CXX98) == GLM_LANG_CXX98)
+00555 
+00556 #define GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE() \
+00557         (((GLM_LANG & GLM_LANG_CXX11) == GLM_LANG_CXX11) || ((GLM_LANG & GLM_LANG_CXXMS) == GLM_LANG_CXXMS) || ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_LANG == GLM_LANG_CXX0X)))
+00558 
+00559 #define GLM_SUPPORT_SWIZZLE_OPERATOR() \
+00560         (/*defined(GLM_SWIZZLE) && */GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE())
+00561 
+00562 #define GLM_SUPPORT_SWIZZLE_FUNCTION() defined(GLM_SWIZZLE)
+00563 
+00565 // Components
+00566 
+00567 //#define GLM_FORCE_ONLY_XYZW
+00568 #define GLM_COMPONENT_ONLY_XYZW                         0 // To disable multiple vector component names access.
+00569 #define GLM_COMPONENT_CXX98                                     1 //  
+00570 #define GLM_COMPONENT_CXX11                                     2 // To use anonymous union to provide multiple component names access for class valType. Visual C++ only.
+00571 
+00572 #if(GLM_SUPPORT_ANONYMOUS_UNION_OF_STRUCTURE() && !defined(GLM_FORCE_ONLY_XYZW))
+00573 #       define GLM_COMPONENT GLM_COMPONENT_CXX11
+00574 #elif(GLM_SUPPORT_ANONYMOUS_UNION() && !defined(GLM_FORCE_ONLY_XYZW))
+00575 #       define GLM_COMPONENT GLM_COMPONENT_CXX98
+00576 #else
+00577 #       define GLM_COMPONENT GLM_COMPONENT_ONLY_XYZW
+00578 #endif
+00579 
+00580 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPONENT_DISPLAYED))
+00581 #       define GLM_MESSAGE_COMPONENT_DISPLAYED
+00582 #       if(GLM_COMPONENT == GLM_COMPONENT_CXX98)
+00583 #               pragma message("GLM: x,y,z,w; r,g,b,a; s,t,p,q component names except of half based vector types")
+00584 #       elif(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
+00585 #               pragma message("GLM: x,y,z,w component names for all vector types")
+00586 #       elif(GLM_COMPONENT == GLM_COMPONENT_CXX11)
+00587 #               pragma message("GLM: x,y,z,w; r,g,b,a; s,t,p,q component names for all vector types")
+00588 #       else
+00589 #               error "GLM: GLM_COMPONENT value unknown"
+00590 #       endif//GLM_MESSAGE_COMPONENT_DISPLAYED
+00591 #endif//GLM_MESSAGE
+00592 
+00594 // Static assert
+00595 
+00596 #if(GLM_LANG == GLM_LANG_CXX0X)
+00597 #       define GLM_STATIC_ASSERT(x, message) static_assert(x, message)
+00598 #elif(defined(BOOST_STATIC_ASSERT))
+00599 #       define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)
+00600 #elif(GLM_COMPILER & GLM_COMPILER_VC)
+00601 #       define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]
+00602 #else
+00603 #       define GLM_STATIC_ASSERT(x, message)
+00604 #       define GLM_STATIC_ASSERT_NULL
+00605 #endif//GLM_LANG
+00606 
+00608 // Qualifiers 
+00609 
+00610 // User defines: GLM_FORCE_INLINE GLM_FORCE_CUDA
+00611 
+00612 #if(defined(GLM_FORCE_CUDA) || (GLM_COMPILER & GLM_COMPILER_CUDA))
+00613 #   define GLM_CUDA_FUNC_DEF __device__ __host__ 
+00614 #       define GLM_CUDA_FUNC_DECL __device__ __host__ 
+00615 #else
+00616 #   define GLM_CUDA_FUNC_DEF
+00617 #       define GLM_CUDA_FUNC_DECL
+00618 #endif
+00619 
+00620 #if GLM_COMPILER & GLM_COMPILER_GCC
+00621 #define GLM_VAR_USED __attribute__ ((unused))
+00622 #else
+00623 #define GLM_VAR_USED
+00624 #endif
+00625 
+00626 #if(defined(GLM_FORCE_INLINE))
+00627 #   if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2005))
+00628 #       define GLM_INLINE __forceinline
+00629 #   elif((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC34))
+00630 #       define GLM_INLINE __attribute__((always_inline))
+00631 #   else
+00632 #       define GLM_INLINE inline
+00633 #   endif//GLM_COMPILER
+00634 #else
+00635 #   define GLM_INLINE inline
+00636 #endif//defined(GLM_FORCE_INLINE)
+00637 
+00638 #define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL
+00639 #define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE
+00640 
+00642 // Swizzle operators
+00643 
+00644 // User defines: GLM_SWIZZLE
+00645 
+00646 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED))
+00647 #       define GLM_MESSAGE_SWIZZLE_DISPLAYED
+00648 #       if(GLM_SUPPORT_SWIZZLE_OPERATOR())
+00649 #               pragma message("GLM: Swizzling operators enabled")
+00650 #       elif(GLM_SUPPORT_SWIZZLE_FUNCTION())
+00651 #               pragma message("GLM: Swizzling operators supported through swizzling functions")
+00652 #       else
+00653 #               pragma message("GLM: Swizzling operators disabled")
+00654 #       endif
+00655 #endif//GLM_MESSAGE
+00656 
+00657 #endif//glm_setup
+
+
+ + + + + + diff --git a/doc/api/a00084_source.html b/doc/api/a00084_source.html new file mode 100644 index 00000000..f32d6a46 --- /dev/null +++ b/doc/api/a00084_source.html @@ -0,0 +1,248 @@ + + + + + +simd_mat4.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
simd_mat4.hpp
+
+
+
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_simd_mat4
+00039 #define GLM_GTX_simd_mat4 GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(GLM_ARCH != GLM_ARCH_PURE)
+00045 
+00046 #if(GLM_ARCH & GLM_ARCH_SSE2)
+00047 #       include "../core/intrinsic_matrix.hpp"
+00048 #       include "../gtx/simd_vec4.hpp"
+00049 #else
+00050 #       error "GLM: GLM_GTX_simd_mat4 requires compiler support of SSE2 through intrinsics"
+00051 #endif
+00052 
+00053 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00054 #       pragma message("GLM: GLM_GTX_simd_mat4 extension included")
+00055 #endif
+00056 
+00057 namespace glm{
+00058 namespace detail
+00059 {
+00062         GLM_ALIGNED_STRUCT(16) fmat4x4SIMD
+00063         {
+00064                 enum ctor{null};
+00065 
+00066                 typedef float value_type;
+00067                 typedef fvec4SIMD col_type;
+00068                 typedef fvec4SIMD row_type;
+00069                 typedef std::size_t size_type;
+00070                 static size_type value_size();
+00071                 static size_type col_size();
+00072                 static size_type row_size();
+00073                 static bool is_matrix();
+00074 
+00075                 fvec4SIMD Data[4];
+00076 
+00078                 // Constructors
+00079 
+00080                 fmat4x4SIMD();
+00081                 explicit fmat4x4SIMD(float const & s);
+00082                 explicit fmat4x4SIMD(
+00083                         float const & x0, float const & y0, float const & z0, float const & w0,
+00084                         float const & x1, float const & y1, float const & z1, float const & w1,
+00085                         float const & x2, float const & y2, float const & z2, float const & w2,
+00086                         float const & x3, float const & y3, float const & z3, float const & w3);
+00087                 explicit fmat4x4SIMD(
+00088                         fvec4SIMD const & v0,
+00089                         fvec4SIMD const & v1,
+00090                         fvec4SIMD const & v2,
+00091                         fvec4SIMD const & v3);
+00092                 explicit fmat4x4SIMD(
+00093                         tmat4x4<float> const & m);
+00094 
+00095                 // Conversions
+00096                 //template <typename U> 
+00097                 //explicit tmat4x4(tmat4x4<U> const & m);
+00098 
+00099                 //explicit tmat4x4(tmat2x2<T> const & x);
+00100                 //explicit tmat4x4(tmat3x3<T> const & x);
+00101                 //explicit tmat4x4(tmat2x3<T> const & x);
+00102                 //explicit tmat4x4(tmat3x2<T> const & x);
+00103                 //explicit tmat4x4(tmat2x4<T> const & x);
+00104                 //explicit tmat4x4(tmat4x2<T> const & x);
+00105                 //explicit tmat4x4(tmat3x4<T> const & x);
+00106                 //explicit tmat4x4(tmat4x3<T> const & x);
+00107 
+00108                 // Accesses
+00109                 fvec4SIMD & operator[](size_type i);
+00110                 fvec4SIMD const & operator[](size_type i) const;
+00111 
+00112                 // Unary updatable operators
+00113                 fmat4x4SIMD & operator= (fmat4x4SIMD const & m);
+00114                 fmat4x4SIMD & operator+= (float const & s);
+00115                 fmat4x4SIMD & operator+= (fmat4x4SIMD const & m);
+00116                 fmat4x4SIMD & operator-= (float const & s);
+00117                 fmat4x4SIMD & operator-= (fmat4x4SIMD const & m);
+00118                 fmat4x4SIMD & operator*= (float const & s);
+00119                 fmat4x4SIMD & operator*= (fmat4x4SIMD const & m);
+00120                 fmat4x4SIMD & operator/= (float const & s);
+00121                 fmat4x4SIMD & operator/= (fmat4x4SIMD const & m);
+00122                 fmat4x4SIMD & operator++ ();
+00123                 fmat4x4SIMD & operator-- ();
+00124         };
+00125 
+00126         // Binary operators
+00127         fmat4x4SIMD operator+ (fmat4x4SIMD const & m, float const & s);
+00128         fmat4x4SIMD operator+ (float const & s, fmat4x4SIMD const & m);
+00129         fmat4x4SIMD operator+ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
+00130             
+00131         fmat4x4SIMD operator- (fmat4x4SIMD const & m, float const & s);
+00132         fmat4x4SIMD operator- (float const & s, fmat4x4SIMD const & m);
+00133         fmat4x4SIMD operator- (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
+00134 
+00135         fmat4x4SIMD operator* (fmat4x4SIMD const & m, float const & s);
+00136         fmat4x4SIMD operator* (float const & s, fmat4x4SIMD const & m);
+00137 
+00138         fvec4SIMD operator* (fmat4x4SIMD const & m, fvec4SIMD const & v);
+00139         fvec4SIMD operator* (fvec4SIMD const & v, fmat4x4SIMD const & m);
+00140 
+00141         fmat4x4SIMD operator* (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
+00142 
+00143         fmat4x4SIMD operator/ (fmat4x4SIMD const & m, float const & s);
+00144         fmat4x4SIMD operator/ (float const & s, fmat4x4SIMD const & m);
+00145 
+00146         fvec4SIMD operator/ (fmat4x4SIMD const & m, fvec4SIMD const & v);
+00147         fvec4SIMD operator/ (fvec4SIMD const & v, fmat4x4SIMD const & m);
+00148 
+00149         fmat4x4SIMD operator/ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
+00150 
+00151         // Unary constant operators
+00152         fmat4x4SIMD const operator-  (fmat4x4SIMD const & m);
+00153         fmat4x4SIMD const operator-- (fmat4x4SIMD const & m, int);
+00154         fmat4x4SIMD const operator++ (fmat4x4SIMD const & m, int);
+00155 }//namespace detail
+00156 
+00157         typedef detail::fmat4x4SIMD simdMat4;
+00158 
+00161 
+00164         detail::tmat4x4<float> mat4_cast(
+00165                 detail::fmat4x4SIMD const & x);
+00166 
+00170         detail::fmat4x4SIMD matrixCompMult(
+00171                 detail::fmat4x4SIMD const & x,
+00172                 detail::fmat4x4SIMD const & y);
+00173 
+00178         detail::fmat4x4SIMD outerProduct(
+00179                 detail::fvec4SIMD const & c,
+00180                 detail::fvec4SIMD const & r);
+00181 
+00184         detail::fmat4x4SIMD transpose(
+00185                 detail::fmat4x4SIMD const & x);
+00186 
+00189         float determinant(
+00190                 detail::fmat4x4SIMD const & m);
+00191 
+00194         detail::fmat4x4SIMD inverse(
+00195                 detail::fmat4x4SIMD const & m);
+00196 
+00198 }// namespace glm
+00199 
+00200 #include "simd_mat4.inl"
+00201 
+00202 #endif//(GLM_ARCH != GLM_ARCH_PURE)
+00203 
+00204 #endif//GLM_GTX_simd_mat4
+
+
+ + + + + + diff --git a/doc/api/a00085.html b/doc/api/a00085.html new file mode 100644 index 00000000..ce87149c --- /dev/null +++ b/doc/api/a00085.html @@ -0,0 +1,78 @@ + + + + + +simd_vec4.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
simd_vec4.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM_GTX_simd_vec4: SIMD vec4 type and functions

+
Date:
2009-05-07 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file simd_vec4.hpp.

+
+ + + + + + diff --git a/doc/api/a00085_source.html b/doc/api/a00085_source.html new file mode 100644 index 00000000..758d679d --- /dev/null +++ b/doc/api/a00085_source.html @@ -0,0 +1,377 @@ + + + + + +simd_vec4.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
simd_vec4.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_simd_vec4
+00039 #define GLM_GTX_simd_vec4 GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(GLM_ARCH != GLM_ARCH_PURE)
+00045 
+00046 #if(GLM_ARCH & GLM_ARCH_SSE2)
+00047 #       include "../core/intrinsic_common.hpp"
+00048 #       include "../core/intrinsic_geometric.hpp"
+00049 #else
+00050 #       error "GLM: GLM_GTX_simd_vec4 requires compiler support of SSE2 through intrinsics"
+00051 #endif
+00052 
+00053 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00054 #       pragma message("GLM: GLM_GTX_simd_vec4 extension included")
+00055 #endif
+00056 
+00057 namespace glm{
+00058 namespace detail
+00059 {
+00062         GLM_ALIGNED_STRUCT(16) fvec4SIMD
+00063         {
+00064                 enum ctor{null};
+00065                 typedef __m128 value_type;
+00066                 typedef std::size_t size_type;
+00067                 static size_type value_size();
+00068 
+00069                 typedef fvec4SIMD type;
+00070                 typedef tvec4<bool> bool_type;
+00071 
+00072                 __m128 Data;
+00073 
+00075                 // Implicit basic constructors
+00076 
+00077                 fvec4SIMD();
+00078                 fvec4SIMD(__m128 const & Data);
+00079                 fvec4SIMD(fvec4SIMD const & v);
+00080 
+00082                 // Explicit basic constructors
+00083 
+00084                 explicit fvec4SIMD(
+00085                         ctor);
+00086                 explicit fvec4SIMD(
+00087                         float const & s);
+00088                 explicit fvec4SIMD(
+00089                         float const & x, 
+00090                         float const & y, 
+00091                         float const & z, 
+00092                         float const & w);
+00093                 explicit fvec4SIMD(
+00094                         tvec4<float> const & v);
+00095 
+00098 
+00099                 fvec4SIMD(vec2 const & v, float const & s1, float const & s2);
+00100                 fvec4SIMD(float const & s1, vec2 const & v, float const & s2);
+00101                 fvec4SIMD(float const & s1, float const & s2, vec2 const & v);
+00102                 fvec4SIMD(vec3 const & v, float const & s);
+00103                 fvec4SIMD(float const & s, vec3 const & v);
+00104                 fvec4SIMD(vec2 const & v1, vec2 const & v2);
+00105                 //fvec4SIMD(ivec4SIMD const & v);
+00106 
+00108                 // Unary arithmetic operators
+00109 
+00110                 fvec4SIMD& operator= (fvec4SIMD const & v);
+00111                 fvec4SIMD& operator+=(fvec4SIMD const & v);
+00112                 fvec4SIMD& operator-=(fvec4SIMD const & v);
+00113                 fvec4SIMD& operator*=(fvec4SIMD const & v);
+00114                 fvec4SIMD& operator/=(fvec4SIMD const & v);
+00115 
+00116                 fvec4SIMD& operator+=(float const & s);
+00117                 fvec4SIMD& operator-=(float const & s);
+00118                 fvec4SIMD& operator*=(float const & s);
+00119                 fvec4SIMD& operator/=(float const & s);
+00120 
+00121                 fvec4SIMD& operator++();
+00122                 fvec4SIMD& operator--();
+00123 
+00125                 // Swizzle operators
+00126 
+00127                 template <comp X, comp Y, comp Z, comp W>
+00128                 fvec4SIMD& swizzle();
+00129                 template <comp X, comp Y, comp Z, comp W>
+00130                 fvec4SIMD swizzle() const;
+00131                 template <comp X, comp Y, comp Z>
+00132                 fvec4SIMD swizzle() const;
+00133                 template <comp X, comp Y>
+00134                 fvec4SIMD swizzle() const;
+00135                 template <comp X>
+00136                 fvec4SIMD swizzle() const;
+00137         };
+00138 }//namespace detail
+00139 
+00140         typedef glm::detail::fvec4SIMD simdVec4;
+00141 
+00144 
+00147         detail::tvec4<float> vec4_cast(
+00148                 detail::fvec4SIMD const & x);
+00149 
+00152         detail::fvec4SIMD abs(detail::fvec4SIMD const & x);
+00153 
+00156         detail::fvec4SIMD sign(detail::fvec4SIMD const & x);
+00157 
+00160         detail::fvec4SIMD floor(detail::fvec4SIMD const & x);
+00161 
+00165         detail::fvec4SIMD trunc(detail::fvec4SIMD const & x);
+00166 
+00173         detail::fvec4SIMD round(detail::fvec4SIMD const & x);
+00174 
+00179         //detail::fvec4SIMD roundEven(detail::fvec4SIMD const & x);
+00180 
+00184         detail::fvec4SIMD ceil(detail::fvec4SIMD const & x);
+00185 
+00188         detail::fvec4SIMD fract(detail::fvec4SIMD const & x);
+00189 
+00193         detail::fvec4SIMD mod(
+00194                 detail::fvec4SIMD const & x, 
+00195                 detail::fvec4SIMD const & y);
+00196 
+00200         detail::fvec4SIMD mod(
+00201                 detail::fvec4SIMD const & x, 
+00202                 float const & y);
+00203 
+00209         //detail::fvec4SIMD modf(
+00210         //      detail::fvec4SIMD const & x, 
+00211         //      detail::fvec4SIMD & i);
+00212 
+00215         detail::fvec4SIMD min(
+00216                 detail::fvec4SIMD const & x, 
+00217                 detail::fvec4SIMD const & y);
+00218 
+00219         detail::fvec4SIMD min(
+00220                 detail::fvec4SIMD const & x, 
+00221                 float const & y);
+00222 
+00225         detail::fvec4SIMD max(
+00226                 detail::fvec4SIMD const & x, 
+00227                 detail::fvec4SIMD const & y);
+00228 
+00229         detail::fvec4SIMD max(
+00230                 detail::fvec4SIMD const & x, 
+00231                 float const & y);
+00232 
+00236         detail::fvec4SIMD clamp(
+00237                 detail::fvec4SIMD const & x, 
+00238                 detail::fvec4SIMD const & minVal, 
+00239                 detail::fvec4SIMD const & maxVal); 
+00240 
+00241         detail::fvec4SIMD clamp(
+00242                 detail::fvec4SIMD const & x, 
+00243                 float const & minVal, 
+00244                 float const & maxVal); 
+00245 
+00269         // \todo Test when 'a' is a boolean.
+00271         detail::fvec4SIMD mix(
+00272                 detail::fvec4SIMD const & x, 
+00273                 detail::fvec4SIMD const & y, 
+00274                 detail::fvec4SIMD const & a);
+00275 
+00278         detail::fvec4SIMD step(
+00279                 detail::fvec4SIMD const & edge, 
+00280                 detail::fvec4SIMD const & x);
+00281 
+00282         detail::fvec4SIMD step(
+00283                 float const & edge, 
+00284                 detail::fvec4SIMD const & x);
+00285 
+00296         detail::fvec4SIMD smoothstep(
+00297                 detail::fvec4SIMD const & edge0, 
+00298                 detail::fvec4SIMD const & edge1, 
+00299                 detail::fvec4SIMD const & x);
+00300 
+00301         detail::fvec4SIMD smoothstep(
+00302                 float const & edge0, 
+00303                 float const & edge1, 
+00304                 detail::fvec4SIMD const & x);
+00305 
+00312         //bvec4 isnan(detail::fvec4SIMD const & x);
+00313 
+00320         //bvec4 isinf(detail::fvec4SIMD const & x);
+00321 
+00326         //detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const & value);
+00327 
+00334         //detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const & value);
+00335 
+00338         detail::fvec4SIMD fma(
+00339                 detail::fvec4SIMD const & a, 
+00340                 detail::fvec4SIMD const & b, 
+00341                 detail::fvec4SIMD const & c);
+00342 
+00352         //detail::fvec4SIMD frexp(detail::fvec4SIMD const & x, detail::ivec4SIMD & exp);
+00353 
+00360         //detail::fvec4SIMD ldexp(detail::fvec4SIMD const & x, detail::ivec4SIMD const & exp);
+00361 
+00364         float length(
+00365                 detail::fvec4SIMD const & x);
+00366 
+00370         float fastLength(
+00371                 detail::fvec4SIMD const & x);
+00372 
+00376         float niceLength(
+00377                 detail::fvec4SIMD const & x);
+00378 
+00381         detail::fvec4SIMD length4(
+00382                 detail::fvec4SIMD const & x);
+00383 
+00387         detail::fvec4SIMD fastLength4(
+00388                 detail::fvec4SIMD const & x);
+00389 
+00393         detail::fvec4SIMD niceLength4(
+00394                 detail::fvec4SIMD const & x);
+00395 
+00398         float distance(
+00399                 detail::fvec4SIMD const & p0,
+00400                 detail::fvec4SIMD const & p1);
+00401 
+00404         detail::fvec4SIMD distance4(
+00405                 detail::fvec4SIMD const & p0,
+00406                 detail::fvec4SIMD const & p1);
+00407 
+00410         float simdDot(
+00411                 detail::fvec4SIMD const & x,
+00412                 detail::fvec4SIMD const & y);
+00413 
+00416         detail::fvec4SIMD dot4(
+00417                 detail::fvec4SIMD const & x,
+00418                 detail::fvec4SIMD const & y);
+00419 
+00422         detail::fvec4SIMD cross(
+00423                 detail::fvec4SIMD const & x,
+00424                 detail::fvec4SIMD const & y);
+00425 
+00428         detail::fvec4SIMD normalize(
+00429                 detail::fvec4SIMD const & x);
+00430 
+00434         detail::fvec4SIMD fastNormalize(
+00435                 detail::fvec4SIMD const & x);
+00436 
+00439         detail::fvec4SIMD simdFaceforward(
+00440                 detail::fvec4SIMD const & N,
+00441                 detail::fvec4SIMD const & I,
+00442                 detail::fvec4SIMD const & Nref);
+00443 
+00447         detail::fvec4SIMD reflect(
+00448                 detail::fvec4SIMD const & I,
+00449                 detail::fvec4SIMD const & N);
+00450 
+00455         detail::fvec4SIMD refract(
+00456                 detail::fvec4SIMD const & I,
+00457                 detail::fvec4SIMD const & N,
+00458                 float const & eta);
+00459 
+00462         detail::fvec4SIMD sqrt(
+00463                 detail::fvec4SIMD const & x);
+00464 
+00468         detail::fvec4SIMD niceSqrt(
+00469                 detail::fvec4SIMD const & x);
+00470 
+00474         detail::fvec4SIMD fastSqrt(
+00475                 detail::fvec4SIMD const & x);
+00476 
+00479         detail::fvec4SIMD inversesqrt(
+00480                 detail::fvec4SIMD const & x);
+00481 
+00485         detail::fvec4SIMD fastInversesqrt(
+00486                 detail::fvec4SIMD const & x);
+00487 
+00489 }//namespace glm
+00490 
+00491 #include "simd_vec4.inl"
+00492 
+00493 #endif//(GLM_ARCH != GLM_ARCH_PURE)
+00494 
+00495 #endif//GLM_GTX_simd_vec4
+
+
+ + + + + + diff --git a/doc/api/a00086.html b/doc/api/a00086.html new file mode 100644 index 00000000..eec81682 --- /dev/null +++ b/doc/api/a00086.html @@ -0,0 +1,90 @@ + + + + + +spline.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
spline.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Functions

template<typename genType >
genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
template<typename genType >
genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
template<typename genType >
genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
+

Detailed Description

+

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.

+

GLM_GTX_spline: Spline

+
Date:
2007-01-25 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file spline.hpp.

+
+ + + + + + diff --git a/doc/api/a00086_source.html b/doc/api/a00086_source.html new file mode 100644 index 00000000..13f30f73 --- /dev/null +++ b/doc/api/a00086_source.html @@ -0,0 +1,146 @@ + + + + + +spline.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
spline.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_spline
+00039 #define GLM_GTX_spline GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 #include "../gtx/optimum_pow.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_spline extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053 
+00056         template <typename genType> 
+00057         genType catmullRom(
+00058                 genType const & v1, 
+00059                 genType const & v2, 
+00060                 genType const & v3, 
+00061                 genType const & v4, 
+00062                 typename genType::value_type const & s);
+00063                 
+00066     template <typename genType> 
+00067         genType hermite(
+00068                 genType const & v1, 
+00069                 genType const & t1, 
+00070                 genType const & v2, 
+00071                 genType const & t2, 
+00072                 typename genType::value_type const & s);
+00073                 
+00076         template <typename genType> 
+00077         genType cubic(
+00078                 genType const & v1, 
+00079                 genType const & v2, 
+00080                 genType const & v3, 
+00081                 genType const & v4, 
+00082                 typename genType::value_type const & s);
+00083 
+00085 }//namespace glm
+00086 
+00087 #include "spline.inl"
+00088 
+00089 #endif//GLM_GTX_spline
+00090 
+
+
+ + + + + + diff --git a/doc/api/a00087.html b/doc/api/a00087.html new file mode 100644 index 00000000..1f2c243b --- /dev/null +++ b/doc/api/a00087.html @@ -0,0 +1,98 @@ + + + + + +std_based_type.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
std_based_type.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Typedefs

typedef detail::tvec2
+< std::size_t > 
size2
typedef detail::tvec2
+< std::size_t > 
size2_t
typedef detail::tvec3
+< std::size_t > 
size3
typedef detail::tvec3
+< std::size_t > 
size3_t
typedef detail::tvec4
+< std::size_t > 
size4
typedef detail::tvec4
+< std::size_t > 
size4_t
+

Detailed Description

+

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.

+

GLM_GTX_std_based_type: Add types based on STL

+
Date:
2008-06-08 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_extented_min_max: Extended min max (dependence)
+ +

Definition in file std_based_type.hpp.

+
+ + + + + + diff --git a/doc/api/a00087_source.html b/doc/api/a00087_source.html new file mode 100644 index 00000000..2760263b --- /dev/null +++ b/doc/api/a00087_source.html @@ -0,0 +1,133 @@ + + + + + +std_based_type.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
std_based_type.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_std_based_type
+00039 #define GLM_GTX_std_based_type GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 #include <cstdlib>
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_std_based_type extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053         
+00056         typedef detail::tvec2<std::size_t>              size2;
+00057         
+00060         typedef detail::tvec3<std::size_t>              size3;
+00061 
+00064         typedef detail::tvec4<std::size_t>              size4;
+00065 
+00068         typedef detail::tvec2<std::size_t>              size2_t;
+00069         
+00072         typedef detail::tvec3<std::size_t>              size3_t;
+00073         
+00076         typedef detail::tvec4<std::size_t>              size4_t;
+00077 
+00079 }//namespace glm
+00080 
+00081 #include "std_based_type.inl"
+00082 
+00083 #endif//GLM_GTX_std_based_type
+
+
+ + + + + + diff --git a/doc/api/a00088.html b/doc/api/a00088.html new file mode 100644 index 00000000..d8446e0d --- /dev/null +++ b/doc/api/a00088.html @@ -0,0 +1,92 @@ + + + + + +string_cast.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
string_cast.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

template<typename genType >
std::string to_string (genType const &x)
+

Detailed Description

+

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.

+

GLM_GTX_string_cast: String cast

+
Date:
2008-04-26 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_half_float: Half-precision floating-point based types and functions (dependence)
+
+GLM_GTX_integer: Extended integer functions (dependence)
+
+GLM_GTX_quaternion: Extented quaternion types and functions (dependence)
+ +

Definition in file string_cast.hpp.

+
+ + + + + + diff --git a/doc/api/a00088_source.html b/doc/api/a00088_source.html new file mode 100644 index 00000000..b52420c7 --- /dev/null +++ b/doc/api/a00088_source.html @@ -0,0 +1,130 @@ + + + + + +string_cast.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
string_cast.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 
+00041 #ifndef GLM_GTX_string_cast
+00042 #define GLM_GTX_string_cast GLM_VERSION
+00043 
+00044 // Dependency:
+00045 #include "../glm.hpp"
+00046 #include "../gtc/half_float.hpp"
+00047 #include "../gtx/integer.hpp"
+00048 #include "../gtx/quaternion.hpp"
+00049 #include <string>
+00050 
+00051 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00052 #       pragma message("GLM: GLM_GTX_string_cast extension included")
+00053 #endif
+00054 
+00055 namespace glm
+00056 {
+00059 
+00062         template <typename genType> 
+00063         std::string to_string(genType const & x);
+00064 
+00066 }//namespace glm
+00067 
+00068 #include "string_cast.inl"
+00069 
+00070 #endif//GLM_GTX_string_cast
+
+
+ + + + + + diff --git a/doc/api/a00089.html b/doc/api/a00089.html new file mode 100644 index 00000000..094ef115 --- /dev/null +++ b/doc/api/a00089.html @@ -0,0 +1,86 @@ + + + + + +swizzle.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
swizzle.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Functions

template<typename T , template< typename > class vecType>
detail::tvec2< T > const & swizzle (vecType< T > const &v, comp x, comp y)
+

Detailed Description

+

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.

+

GLM_GTC_swizzle: Swizzle 'operator' implementation

+
Date:
2010-02-20 / 2011-06-05
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file swizzle.hpp.

+
+ + + + + + diff --git a/doc/api/a00089_source.html b/doc/api/a00089_source.html new file mode 100644 index 00000000..86aa1a54 --- /dev/null +++ b/doc/api/a00089_source.html @@ -0,0 +1,438 @@ + + + + + +swizzle.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
swizzle.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTC_swizzle
+00039 #define GLM_GTC_swizzle GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 #include "../gtc/type_precision.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTC_swizzle extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053         
+00054 
+00055         template <typename T, template <typename> class vecType>
+00056         T const & swizzle(      
+00057                 vecType<T> const & v,
+00058                 comp x);
+00059 
+00067         template <typename T, template <typename> class vecType>
+00068         detail::tvec2<T> const & swizzle(
+00069                 vecType<T> const & v,
+00070                 comp x, comp y);
+00071 
+00072         template <typename T, template <typename> class vecType>
+00073         detail::tvec3<T> const & swizzle(
+00074                 vecType<T> const & v,
+00075                 comp x, comp y, comp z);
+00076 
+00077         template <typename T, template <typename> class vecType>
+00078         detail::tvec4<T> const & swizzle(
+00079                 vecType<T> const & v,
+00080                 comp x, comp y, comp z, comp w);
+00081 
+00082         template <typename T, template <typename> class vecType>
+00083         T & swizzle(
+00084                 vecType<T> & v,
+00085                 comp x);
+00086 
+00087         template <typename T, template <typename> class vecType>
+00088         detail::tref2<T> swizzle(
+00089                 vecType<T> & v,
+00090                 comp x, comp y);
+00091 
+00092         template <typename T, template <typename> class vecType>
+00093         detail::tref3<T> swizzle(
+00094                 vecType<T> & v,
+00095                 comp x, comp y, comp z);
+00096 
+00097         template <typename T, template <typename> class vecType>
+00098         detail::tref4<T> swizzle(
+00099                 vecType<T> & v,
+00100                 comp x, comp y, comp z, comp w);
+00101 
+00102 #       define static_swizzle1_const(TYPE, SIZE)                                                        \
+00103                 template <comp x>                                                                               \
+00104                 GLM_FUNC_QUALIFIER TYPE swizzle(detail::tvec##SIZE<TYPE> const & v)     \
+00105                 {return v[x];}                                                                                  
+00106                                                                                                                                 
+00107 #       define static_swizzle1_ref(TYPE, SIZE)                                                                  \
+00108                 template <comp x>                                                                                                       \
+00109                 GLM_FUNC_QUALIFIER TYPE& swizzle(detail::tvec##SIZE<TYPE> & v)          \
+00110                 {return v[x];}
+00111 
+00112         static_swizzle1_ref(detail::float16, 2)
+00113         static_swizzle1_ref(detail::float16, 3)
+00114         static_swizzle1_ref(detail::float16, 4)
+00115         static_swizzle1_ref(detail::float32, 2)
+00116         static_swizzle1_ref(detail::float32, 3)
+00117         static_swizzle1_ref(detail::float32, 4)
+00118         static_swizzle1_ref(detail::float64, 2)
+00119         static_swizzle1_ref(detail::float64, 3)
+00120         static_swizzle1_ref(detail::float64, 4)
+00121 
+00122         static_swizzle1_ref(detail::int8,  2)
+00123         static_swizzle1_ref(detail::int8,  3)
+00124         static_swizzle1_ref(detail::int8,  4)
+00125         static_swizzle1_ref(detail::int16, 2)
+00126         static_swizzle1_ref(detail::int16, 3)
+00127         static_swizzle1_ref(detail::int16, 4)
+00128         static_swizzle1_ref(detail::int32, 2)
+00129         static_swizzle1_ref(detail::int32, 3)
+00130         static_swizzle1_ref(detail::int32, 4)
+00131         static_swizzle1_ref(detail::int64, 2)
+00132         static_swizzle1_ref(detail::int64, 3)
+00133         static_swizzle1_ref(detail::int64, 4)
+00134 
+00135         static_swizzle1_ref(detail::uint8,  2)
+00136         static_swizzle1_ref(detail::uint8,  3)
+00137         static_swizzle1_ref(detail::uint8,  4)
+00138         static_swizzle1_ref(detail::uint16, 2)
+00139         static_swizzle1_ref(detail::uint16, 3)
+00140         static_swizzle1_ref(detail::uint16, 4)
+00141         static_swizzle1_ref(detail::uint32, 2)
+00142         static_swizzle1_ref(detail::uint32, 3)
+00143         static_swizzle1_ref(detail::uint32, 4)
+00144         static_swizzle1_ref(detail::uint64, 2)
+00145         static_swizzle1_ref(detail::uint64, 3)
+00146         static_swizzle1_ref(detail::uint64, 4)
+00147 /*
+00148 #       define static_swizzle2_const(TYPE) \
+00149                 template <comp x, comp y> \
+00150                 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
+00151                 {return TYPE(v[x], v[y]);}
+00152 
+00153 #       define static_swizzle3_const(TYPE) \
+00154                 template <comp x, comp y, comp z> \
+00155                 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
+00156                 {return TYPE(v[x], v[y], v[z]);}
+00157 
+00158 #       define static_swizzle4_const(TYPE) \
+00159                 template <comp x, comp y, comp z, comp w> \
+00160                 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
+00161                 {return TYPE(v[x], v[y], v[z], v[w]);}
+00162 */
+00163 
+00164 #       define static_swizzle2_const(TYPE, SIZE)                                                                        \
+00165                 template <comp x, comp y>                                                                                               \
+00166                 GLM_FUNC_QUALIFIER detail::tvec2<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v)      \
+00167                 {return detail::tvec2<TYPE>(v[x], v[y]);}
+00168 
+00169 #       define static_swizzle3_const(TYPE, SIZE)                                                                        \
+00170                 template <comp x, comp y, comp z>                                                                               \
+00171                 GLM_FUNC_QUALIFIER detail::tvec3<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v)      \
+00172                 {return detail::tvec3<TYPE>(v[x], v[y], v[z]);}
+00173 
+00174 #       define static_swizzle4_const(TYPE, SIZE)                                                                        \
+00175                 template <comp x, comp y, comp z, comp w>                                                               \
+00176                 GLM_FUNC_QUALIFIER detail::tvec4<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v)      \
+00177                 {return detail::tvec4<TYPE>(v[x], v[y], v[z], v[w]);}
+00178 
+00179 
+00180         static_swizzle2_const(glm::f16, 2)
+00181         static_swizzle2_const(glm::f16, 3)
+00182         static_swizzle2_const(glm::f16, 4)
+00183         static_swizzle2_const(glm::f32, 2)
+00184         static_swizzle2_const(glm::f32, 3)
+00185         static_swizzle2_const(glm::f32, 4)
+00186         static_swizzle2_const(glm::f64, 2)
+00187         static_swizzle2_const(glm::f64, 3)
+00188         static_swizzle2_const(glm::f64, 4)
+00189 
+00190         static_swizzle2_const(glm::i8, 2)
+00191         static_swizzle2_const(glm::i8, 3)
+00192         static_swizzle2_const(glm::i8, 4)
+00193         static_swizzle2_const(glm::i16, 2)
+00194         static_swizzle2_const(glm::i16, 3)
+00195         static_swizzle2_const(glm::i16, 4)
+00196         static_swizzle2_const(glm::i32, 2)
+00197         static_swizzle2_const(glm::i32, 3)
+00198         static_swizzle2_const(glm::i32, 4)
+00199         static_swizzle2_const(glm::i64, 2)
+00200         static_swizzle2_const(glm::i64, 3)
+00201         static_swizzle2_const(glm::i64, 4)
+00202 
+00203         static_swizzle2_const(glm::u8, 2)
+00204         static_swizzle2_const(glm::u8, 3)
+00205         static_swizzle2_const(glm::u8, 4)
+00206         static_swizzle2_const(glm::u16, 2)
+00207         static_swizzle2_const(glm::u16, 3)
+00208         static_swizzle2_const(glm::u16, 4)
+00209         static_swizzle2_const(glm::u32, 2)
+00210         static_swizzle2_const(glm::u32, 3)
+00211         static_swizzle2_const(glm::u32, 4)
+00212         static_swizzle2_const(glm::u64, 2)
+00213         static_swizzle2_const(glm::u64, 3)
+00214         static_swizzle2_const(glm::u64, 4)
+00215 
+00216         static_swizzle3_const(glm::f16, 2)
+00217         static_swizzle3_const(glm::f16, 3)
+00218         static_swizzle3_const(glm::f16, 4)
+00219         static_swizzle3_const(glm::f32, 2)
+00220         static_swizzle3_const(glm::f32, 3)
+00221         static_swizzle3_const(glm::f32, 4)
+00222         static_swizzle3_const(glm::f64, 2)
+00223         static_swizzle3_const(glm::f64, 3)
+00224         static_swizzle3_const(glm::f64, 4)
+00225 
+00226         static_swizzle3_const(glm::i8, 2)
+00227         static_swizzle3_const(glm::i8, 3)
+00228         static_swizzle3_const(glm::i8, 4)
+00229         static_swizzle3_const(glm::i16, 2)
+00230         static_swizzle3_const(glm::i16, 3)
+00231         static_swizzle3_const(glm::i16, 4)
+00232         static_swizzle3_const(glm::i32, 2)
+00233         static_swizzle3_const(glm::i32, 3)
+00234         static_swizzle3_const(glm::i32, 4)
+00235         static_swizzle3_const(glm::i64, 2)
+00236         static_swizzle3_const(glm::i64, 3)
+00237         static_swizzle3_const(glm::i64, 4)
+00238 
+00239         static_swizzle3_const(glm::u8, 2)
+00240         static_swizzle3_const(glm::u8, 3)
+00241         static_swizzle3_const(glm::u8, 4)
+00242         static_swizzle3_const(glm::u16, 2)
+00243         static_swizzle3_const(glm::u16, 3)
+00244         static_swizzle3_const(glm::u16, 4)
+00245         static_swizzle3_const(glm::u32, 2)
+00246         static_swizzle3_const(glm::u32, 3)
+00247         static_swizzle3_const(glm::u32, 4)
+00248         static_swizzle3_const(glm::u64, 2)
+00249         static_swizzle3_const(glm::u64, 3)
+00250         static_swizzle3_const(glm::u64, 4)
+00251 
+00252         static_swizzle4_const(glm::f16, 2)
+00253         static_swizzle4_const(glm::f16, 3)
+00254         static_swizzle4_const(glm::f16, 4)
+00255         static_swizzle4_const(glm::f32, 2)
+00256         static_swizzle4_const(glm::f32, 3)
+00257         static_swizzle4_const(glm::f32, 4)
+00258         static_swizzle4_const(glm::f64, 2)
+00259         static_swizzle4_const(glm::f64, 3)
+00260         static_swizzle4_const(glm::f64, 4)
+00261 
+00262         static_swizzle4_const(glm::i8, 2)
+00263         static_swizzle4_const(glm::i8, 3)
+00264         static_swizzle4_const(glm::i8, 4)
+00265         static_swizzle4_const(glm::i16, 2)
+00266         static_swizzle4_const(glm::i16, 3)
+00267         static_swizzle4_const(glm::i16, 4)
+00268         static_swizzle4_const(glm::i32, 2)
+00269         static_swizzle4_const(glm::i32, 3)
+00270         static_swizzle4_const(glm::i32, 4)
+00271         static_swizzle4_const(glm::i64, 2)
+00272         static_swizzle4_const(glm::i64, 3)
+00273         static_swizzle4_const(glm::i64, 4)
+00274 
+00275         static_swizzle4_const(glm::u8, 2)
+00276         static_swizzle4_const(glm::u8, 3)
+00277         static_swizzle4_const(glm::u8, 4)
+00278         static_swizzle4_const(glm::u16, 2)
+00279         static_swizzle4_const(glm::u16, 3)
+00280         static_swizzle4_const(glm::u16, 4)
+00281         static_swizzle4_const(glm::u32, 2)
+00282         static_swizzle4_const(glm::u32, 3)
+00283         static_swizzle4_const(glm::u32, 4)
+00284         static_swizzle4_const(glm::u64, 2)
+00285         static_swizzle4_const(glm::u64, 3)
+00286         static_swizzle4_const(glm::u64, 4)
+00287 
+00288 #       define static_swizzle2_ref(TYPE, SIZE) \
+00289                 template <glm::comp x, glm::comp y> \
+00290                 GLM_FUNC_QUALIFIER glm::detail::tref2<TYPE> swizzle(detail::tvec##SIZE<TYPE> & v) \
+00291                 {return glm::detail::tref2<TYPE>(v[x], v[y]);}  
+00292 
+00293 #       define static_swizzle3_ref(TYPE, SIZE) \
+00294                 template <glm::comp x, glm::comp y, glm::comp z> \
+00295                 GLM_FUNC_QUALIFIER glm::detail::tref3<TYPE> swizzle(detail::tvec##SIZE<TYPE> & v) \
+00296                 {return glm::detail::tref3<TYPE>(v[x], v[y], v[z]);}    
+00297 
+00298 #       define static_swizzle4_ref(TYPE, SIZE) \
+00299                 template <glm::comp x, glm::comp y, glm::comp z, glm::comp w> \
+00300                 GLM_FUNC_QUALIFIER glm::detail::tref4<TYPE> swizzle(detail::tvec##SIZE<TYPE> & v) \
+00301                 {return glm::detail::tref4<TYPE>(v[x], v[y], v[z], v[w]);}      
+00302 
+00303         static_swizzle2_ref(glm::f16, 2)
+00304         static_swizzle2_ref(glm::f16, 3)
+00305         static_swizzle2_ref(glm::f16, 4)
+00306         static_swizzle2_ref(glm::f32, 2)
+00307         static_swizzle2_ref(glm::f32, 3)
+00308         static_swizzle2_ref(glm::f32, 4)
+00309         static_swizzle2_ref(glm::f64, 2)
+00310         static_swizzle2_ref(glm::f64, 3)
+00311         static_swizzle2_ref(glm::f64, 4)
+00312 
+00313         static_swizzle2_ref(glm::i8, 2)
+00314         static_swizzle2_ref(glm::i8, 3)
+00315         static_swizzle2_ref(glm::i8, 4)
+00316         static_swizzle2_ref(glm::i16, 2)
+00317         static_swizzle2_ref(glm::i16, 3)
+00318         static_swizzle2_ref(glm::i16, 4)
+00319         static_swizzle2_ref(glm::i32, 2)
+00320         static_swizzle2_ref(glm::i32, 3)
+00321         static_swizzle2_ref(glm::i32, 4)
+00322         static_swizzle2_ref(glm::i64, 2)
+00323         static_swizzle2_ref(glm::i64, 3)
+00324         static_swizzle2_ref(glm::i64, 4)
+00325 
+00326         static_swizzle2_ref(glm::u8, 2)
+00327         static_swizzle2_ref(glm::u8, 3)
+00328         static_swizzle2_ref(glm::u8, 4)
+00329         static_swizzle2_ref(glm::u16, 2)
+00330         static_swizzle2_ref(glm::u16, 3)
+00331         static_swizzle2_ref(glm::u16, 4)
+00332         static_swizzle2_ref(glm::u32, 2)
+00333         static_swizzle2_ref(glm::u32, 3)
+00334         static_swizzle2_ref(glm::u32, 4)
+00335         static_swizzle2_ref(glm::u64, 2)
+00336         static_swizzle2_ref(glm::u64, 3)
+00337         static_swizzle2_ref(glm::u64, 4)
+00338 
+00339         static_swizzle3_ref(glm::f16, 3)
+00340         static_swizzle3_ref(glm::f16, 4)
+00341         static_swizzle3_ref(glm::f32, 3)
+00342         static_swizzle3_ref(glm::f32, 4)
+00343         static_swizzle3_ref(glm::f64, 3)
+00344         static_swizzle3_ref(glm::f64, 4)
+00345 
+00346         static_swizzle3_ref(glm::i8, 3)
+00347         static_swizzle3_ref(glm::i8, 4)
+00348         static_swizzle3_ref(glm::i16, 3)
+00349         static_swizzle3_ref(glm::i16, 4)
+00350         static_swizzle3_ref(glm::i32, 3)
+00351         static_swizzle3_ref(glm::i32, 4)
+00352         static_swizzle3_ref(glm::i64, 3)
+00353         static_swizzle3_ref(glm::i64, 4)
+00354 
+00355         static_swizzle3_ref(glm::u8, 3)
+00356         static_swizzle3_ref(glm::u8, 4)
+00357         static_swizzle3_ref(glm::u16, 3)
+00358         static_swizzle3_ref(glm::u16, 4)
+00359         static_swizzle3_ref(glm::u32, 3)
+00360         static_swizzle3_ref(glm::u32, 4)
+00361         static_swizzle3_ref(glm::u64, 3)
+00362         static_swizzle3_ref(glm::u64, 4)
+00363 
+00364         static_swizzle4_ref(glm::f16, 4)
+00365         static_swizzle4_ref(glm::f32, 4)
+00366         static_swizzle4_ref(glm::f64, 4)
+00367 
+00368         static_swizzle4_ref(glm::i8, 4)
+00369         static_swizzle4_ref(glm::i16, 4)
+00370         static_swizzle4_ref(glm::i32, 4)
+00371         static_swizzle4_ref(glm::i64, 4)
+00372 
+00373         static_swizzle4_ref(glm::u8, 4)
+00374         static_swizzle4_ref(glm::u16, 4)
+00375         static_swizzle4_ref(glm::u32, 4)
+00376         static_swizzle4_ref(glm::u64, 4)
+00377 
+00379 }//namespace glm
+00380 
+00381 #include "swizzle.inl"
+00382 
+00383 #endif//GLM_GTC_swizzle
+
+
+ + + + + + diff --git a/doc/api/a00090.html b/doc/api/a00090.html new file mode 100644 index 00000000..5f7ce3fc --- /dev/null +++ b/doc/api/a00090.html @@ -0,0 +1,108 @@ + + + + + +transform.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
transform.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat4x4< T > rotate (T angle, T x, T y, T z)
template<typename T >
detail::tmat4x4< T > rotate (T angle, detail::tvec3< T > const &v)
template<typename T >
detail::tmat4x4< T > rotate (detail::tmat4x4< T > const &m, T angle, T x, T y, T z)
template<typename T >
detail::tmat4x4< T > scale (T x, T y, T z)
template<typename T >
detail::tmat4x4< T > scale (detail::tmat4x4< T > const &m, T x, T y, T z)
template<typename T >
detail::tmat4x4< T > scale (detail::tvec3< T > const &v)
template<typename T >
detail::tmat4x4< T > translate (T x, T y, T z)
template<typename T >
detail::tmat4x4< T > translate (detail::tmat4x4< T > const &m, T x, T y, T z)
template<typename T >
detail::tmat4x4< T > translate (detail::tvec3< T > const &v)
+

Detailed Description

+

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.

+

GLM_GTX_transform: Extented transformation matrices

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_matrix_transform: Matrix transform functions (dependence)
+
+GLM_GTX_transform: Extented transformation matrices
+
+GLM_GTX_transform2: Extra transformation matrices
+ +

Definition in file transform.hpp.

+
+ + + + + + diff --git a/doc/api/a00090_source.html b/doc/api/a00090_source.html new file mode 100644 index 00000000..b76dad77 --- /dev/null +++ b/doc/api/a00090_source.html @@ -0,0 +1,175 @@ + + + + + +transform.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
transform.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 
+00041 #ifndef GLM_GTX_transform 
+00042 #define GLM_GTX_transform GLM_VERSION
+00043 
+00044 // Dependency:
+00045 #include "../glm.hpp"
+00046 #include "../gtc/matrix_transform.hpp"
+00047 
+00048 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00049 #       pragma message("GLM: GLM_GTX_transform extension included")
+00050 #endif
+00051 
+00052 namespace glm
+00053 {
+00056 
+00059         // - See also: \link glm::translate GLM_GTC_matrix_transform \endlink
+00060         template <typename T> 
+00061         detail::tmat4x4<T> translate(
+00062                 T x, T y, T z);
+00063                 
+00066         // - See also: \link glm::translate GLM_GTC_matrix_transform \endlink
+00067         template <typename T> 
+00068         detail::tmat4x4<T> translate(
+00069                 detail::tmat4x4<T> const & m, 
+00070                 T x, T y, T z);
+00071                 
+00074         // - See also: \link glm::translate GLM_GTC_matrix_transform \endlink
+00075         template <typename T> 
+00076         detail::tmat4x4<T> translate(
+00077                 detail::tvec3<T> const & v);
+00078 
+00081         // - See also: \link glm::rotate GLM_GTC_matrix_transform \endlink
+00082         template <typename T> 
+00083         detail::tmat4x4<T> rotate(
+00084                 T angle, 
+00085                 T x, T y, T z);
+00086 
+00089         // - See also: \link glm::rotate GLM_GTC_matrix_transform \endlink
+00090         template <typename T> 
+00091         detail::tmat4x4<T> rotate(
+00092                 T angle, 
+00093                 detail::tvec3<T> const & v);
+00094 
+00097         // - See also: \link glm::rotate GLM_GTC_matrix_transform \endlink
+00098         template <typename T> 
+00099         detail::tmat4x4<T> rotate(
+00100                 detail::tmat4x4<T> const & m, 
+00101                 T angle, 
+00102                 T x, T y, T z);
+00103                 
+00106         // - See also: \link glm::scale GLM_GTC_matrix_transform \endlink
+00107         template <typename T> 
+00108         detail::tmat4x4<T> scale(
+00109                 T x, T y, T z);
+00110                 
+00113         // - See also: \link glm::scale GLM_GTC_matrix_transform \endlink
+00114         template <typename T> 
+00115         detail::tmat4x4<T> scale(
+00116                 detail::tmat4x4<T> const & m, 
+00117                 T x, T y, T z);
+00118 
+00121         // - See also: \link glm::scale GLM_GTC_matrix_transform \endlink
+00122         template <typename T> 
+00123         detail::tmat4x4<T> scale(
+00124                 detail::tvec3<T> const & v);
+00125 
+00127 }// namespace glm
+00128 
+00129 #include "transform.inl"
+00130 
+00131 #endif//GLM_GTX_transform
+
+
+ + + + + + diff --git a/doc/api/a00091.html b/doc/api/a00091.html new file mode 100644 index 00000000..cd49c257 --- /dev/null +++ b/doc/api/a00091.html @@ -0,0 +1,104 @@ + + + + + +transform2.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
transform2.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat3x3< T > proj2D (const detail::tmat3x3< T > &m, const detail::tvec3< T > &normal)
template<typename T >
detail::tmat4x4< T > proj3D (const detail::tmat4x4< T > &m, const detail::tvec3< T > &normal)
template<typename valType >
detail::tmat4x4< valType > scaleBias (valType scale, valType bias)
template<typename valType >
detail::tmat4x4< valType > scaleBias (detail::tmat4x4< valType > const &m, valType scale, valType bias)
template<typename T >
detail::tmat3x3< T > shearX2D (detail::tmat3x3< T > const &m, T y)
template<typename T >
detail::tmat4x4< T > shearX3D (const detail::tmat4x4< T > &m, T y, T z)
template<typename T >
detail::tmat3x3< T > shearY2D (detail::tmat3x3< T > const &m, T x)
template<typename T >
detail::tmat4x4< T > shearY3D (const detail::tmat4x4< T > &m, T x, T z)
template<typename T >
detail::tmat4x4< T > shearZ3D (const detail::tmat4x4< T > &m, T x, T y)
+

Detailed Description

+

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.

+

GLM_GTX_transform2: Extra transformation matrices

+
Date:
2005-12-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_transform: Extented transformation matrices (dependence)
+ +

Definition in file transform2.hpp.

+
+ + + + + + diff --git a/doc/api/a00091_source.html b/doc/api/a00091_source.html new file mode 100644 index 00000000..8dd1b9fd --- /dev/null +++ b/doc/api/a00091_source.html @@ -0,0 +1,179 @@ + + + + + +transform2.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
transform2.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_transform2
+00040 #define GLM_GTX_transform2 GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 #include "../gtx/transform.hpp"
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_transform2 extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename T> 
+00058         detail::tmat3x3<T> shearX2D(
+00059                 detail::tmat3x3<T> const & m, 
+00060                 T y);
+00061 
+00064         template <typename T> 
+00065         detail::tmat3x3<T> shearY2D(
+00066                 detail::tmat3x3<T> const & m, 
+00067                 T x);
+00068 
+00071         template <typename T> 
+00072         detail::tmat4x4<T> shearX3D(
+00073                 const detail::tmat4x4<T> & m,
+00074                 T y, 
+00075                 T z);
+00076                 
+00079         template <typename T> 
+00080         detail::tmat4x4<T> shearY3D(
+00081                 const detail::tmat4x4<T> & m, 
+00082                 T x, 
+00083                 T z);
+00084                 
+00087         template <typename T> 
+00088         detail::tmat4x4<T> shearZ3D(
+00089                 const detail::tmat4x4<T> & m, 
+00090                 T x, 
+00091                 T y);
+00092 
+00093         //template <typename T> GLM_FUNC_QUALIFIER detail::tmat4x4<T> shear(const detail::tmat4x4<T> & m, shearPlane, planePoint, angle)
+00094         // Identity + tan(angle) * cross(Normal, OnPlaneVector)     0
+00095         // - dot(PointOnPlane, normal) * OnPlaneVector              1
+00096 
+00097         // Reflect functions seem to don't work
+00098         //template <typename T> detail::tmat3x3<T> reflect2D(const detail::tmat3x3<T> & m, const detail::tvec3<T>& normal){return reflect2DGTX(m, normal);}                                                                     //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
+00099         //template <typename T> detail::tmat4x4<T> reflect3D(const detail::tmat4x4<T> & m, const detail::tvec3<T>& normal){return reflect3DGTX(m, normal);}                                                                     //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
+00100                 
+00103         template <typename T> 
+00104         detail::tmat3x3<T> proj2D(
+00105                 const detail::tmat3x3<T> & m, 
+00106                 const detail::tvec3<T>& normal);
+00107                                 
+00110         template <typename T> 
+00111         detail::tmat4x4<T> proj3D(
+00112                 const detail::tmat4x4<T> & m, 
+00113                 const detail::tvec3<T>& normal);
+00114 
+00117         template <typename valType> 
+00118         detail::tmat4x4<valType> scaleBias(
+00119                 valType scale, 
+00120                 valType bias);
+00121 
+00124         template <typename valType> 
+00125         detail::tmat4x4<valType> scaleBias(
+00126                 detail::tmat4x4<valType> const & m, 
+00127                 valType scale, 
+00128                 valType bias);
+00129 
+00131 }// namespace glm
+00132 
+00133 #include "transform2.inl"
+00134 
+00135 #endif//GLM_GTX_transform2
+
+
+ + + + + + diff --git a/doc/api/a00092.html b/doc/api/a00092.html new file mode 100644 index 00000000..dfa18009 --- /dev/null +++ b/doc/api/a00092.html @@ -0,0 +1,122 @@ + + + + + +type.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef detail::tvec2< bool > bvec2
typedef detail::tvec3< bool > bvec3
typedef detail::tvec4< bool > bvec4
typedef detail::tmat2x2< double > dmat2
typedef detail::tmat2x2< double > dmat2x2
typedef detail::tmat2x3< double > dmat2x3
typedef detail::tmat2x4< double > dmat2x4
typedef detail::tmat3x3< double > dmat3
typedef detail::tmat3x2< double > dmat3x2
typedef detail::tmat3x3< double > dmat3x3
typedef detail::tmat3x4< double > dmat3x4
typedef detail::tmat4x4< double > dmat4
typedef detail::tmat4x2< double > dmat4x2
typedef detail::tmat4x3< double > dmat4x3
typedef detail::tmat4x4< double > dmat4x4
typedef detail::tvec2< double > dvec2
typedef detail::tvec3< double > dvec3
typedef detail::tvec4< double > dvec4
typedef mediump_ivec2 ivec2
typedef mediump_ivec3 ivec3
typedef mediump_ivec4 ivec4
typedef mat2x2 mat2
typedef mediump_mat2x2 mat2x2
typedef mediump_mat2x3 mat2x3
typedef mediump_mat2x4 mat2x4
typedef mat3x3 mat3
typedef mediump_mat3x2 mat3x2
typedef mediump_mat3x3 mat3x3
typedef mediump_mat3x4 mat3x4
typedef mat4x4 mat4
typedef mediump_mat4x2 mat4x2
typedef mediump_mat4x3 mat4x3
typedef mediump_mat4x4 mat4x4
typedef mediump_uvec2 uvec2
typedef mediump_uvec3 uvec3
typedef mediump_uvec4 uvec4
typedef mediump_vec2 vec2
typedef mediump_vec3 vec3
typedef mediump_vec4 vec4
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-01-08 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type.hpp.

+
+ + + + + + diff --git a/doc/api/a00092_source.html b/doc/api/a00092_source.html new file mode 100644 index 00000000..fc242df1 --- /dev/null +++ b/doc/api/a00092_source.html @@ -0,0 +1,290 @@ + + + + + +type.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type
+00030 #define glm_core_type
+00031 
+00032 #include "type_half.hpp"
+00033 #include "type_float.hpp"
+00034 #include "type_int.hpp"
+00035 
+00036 #include "type_gentype.hpp"
+00037 
+00038 #include "type_vec1.hpp"
+00039 #include "type_vec2.hpp"
+00040 #include "type_vec3.hpp"
+00041 #include "type_vec4.hpp"
+00042 
+00043 #include "type_mat2x2.hpp"
+00044 #include "type_mat2x3.hpp"
+00045 #include "type_mat2x4.hpp"
+00046 #include "type_mat3x2.hpp"
+00047 #include "type_mat3x3.hpp"
+00048 #include "type_mat3x4.hpp"
+00049 #include "type_mat4x2.hpp"
+00050 #include "type_mat4x3.hpp"
+00051 #include "type_mat4x4.hpp"
+00052 
+00053 namespace glm
+00054 {
+00057 
+00059         // Float definition
+00060 
+00061 #if(defined(GLM_PRECISION_HIGHP_FLOAT))
+00062         typedef highp_vec2          vec2;
+00063         typedef highp_vec3          vec3;
+00064         typedef highp_vec4          vec4;
+00065         typedef highp_mat2x2            mat2x2;
+00066         typedef highp_mat2x3            mat2x3;
+00067         typedef highp_mat2x4            mat2x4;
+00068         typedef highp_mat3x2            mat3x2;
+00069         typedef highp_mat3x3            mat3x3;
+00070         typedef highp_mat3x4            mat3x4;
+00071         typedef highp_mat4x2            mat4x2;
+00072         typedef highp_mat4x3            mat4x3;
+00073         typedef highp_mat4x4            mat4x4;
+00074 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+00075         typedef mediump_vec2            vec2;
+00076         typedef mediump_vec3            vec3;
+00077         typedef mediump_vec4            vec4;
+00078         typedef mediump_mat2x2      mat2x2;
+00079         typedef mediump_mat2x3      mat2x3;
+00080         typedef mediump_mat2x4      mat2x4;
+00081         typedef mediump_mat3x2      mat3x2;
+00082         typedef mediump_mat3x3      mat3x3;
+00083         typedef mediump_mat3x4      mat3x4;
+00084         typedef mediump_mat4x2      mat4x2;
+00085         typedef mediump_mat4x3      mat4x3;
+00086         typedef mediump_mat4x4      mat4x4;
+00087 #elif(defined(GLM_PRECISION_LOWP_FLOAT))
+00088         typedef lowp_vec2                       vec2;
+00089         typedef lowp_vec3                       vec3;
+00090         typedef lowp_vec4                       vec4;
+00091         typedef lowp_mat2x2                     mat2x2;
+00092         typedef lowp_mat2x3                     mat2x3;
+00093         typedef lowp_mat2x4                     mat2x4;
+00094         typedef lowp_mat3x2                     mat3x2;
+00095         typedef lowp_mat3x3                     mat3x3;
+00096         typedef lowp_mat3x4                     mat3x4;
+00097         typedef lowp_mat4x2                     mat4x2;
+00098         typedef lowp_mat4x3                     mat4x3;
+00099         typedef lowp_mat4x4                     mat4x4;
+00100 #else
+00101 
+00102 
+00103 
+00104         typedef mediump_vec2            vec2;
+00105 
+00109         typedef mediump_vec3            vec3;
+00110 
+00114         typedef mediump_vec4            vec4;
+00115 
+00119         typedef mediump_mat2x2          mat2x2;
+00120 
+00124         typedef mediump_mat2x3          mat2x3;
+00125 
+00129         typedef mediump_mat2x4          mat2x4;
+00130 
+00134         typedef mediump_mat3x2          mat3x2;
+00135 
+00139         typedef mediump_mat3x3          mat3x3;
+00140 
+00144         typedef mediump_mat3x4          mat3x4;
+00145 
+00149         typedef mediump_mat4x2          mat4x2;
+00150 
+00154         typedef mediump_mat4x3          mat4x3;
+00155 
+00159         typedef mediump_mat4x4          mat4x4;
+00160 
+00161 #endif//GLM_PRECISION
+00162 
+00166         typedef mat2x2                                                  mat2;
+00167 
+00171         typedef mat3x3                                                  mat3;
+00172 
+00176         typedef mat4x4                                                  mat4;
+00177 
+00179         // Signed integer definition
+00180 
+00181 #if(defined(GLM_PRECISION_HIGHP_INT))
+00182         typedef highp_ivec2                     ivec2;
+00183         typedef highp_ivec3                     ivec3;
+00184         typedef highp_ivec4                     ivec4;
+00185 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+00186         typedef mediump_ivec2           ivec2;
+00187         typedef mediump_ivec3           ivec3;
+00188         typedef mediump_ivec4           ivec4;
+00189 #elif(defined(GLM_PRECISION_LOWP_INT))
+00190         typedef lowp_ivec2                      ivec2;
+00191         typedef lowp_ivec3                      ivec3;
+00192         typedef lowp_ivec4                      ivec4;
+00193 #else
+00194 
+00195 
+00196 
+00197         typedef mediump_ivec2           ivec2;
+00198 
+00202         typedef mediump_ivec3           ivec3;
+00203 
+00207         typedef mediump_ivec4           ivec4;
+00208 #endif//GLM_PRECISION
+00209 
+00211         // Unsigned integer definition
+00212 
+00213 #if(defined(GLM_PRECISION_HIGHP_UINT))
+00214         typedef highp_uvec2                     uvec2;
+00215         typedef highp_uvec3                     uvec3;
+00216         typedef highp_uvec4                     uvec4;
+00217 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
+00218         typedef mediump_uvec2           uvec2;
+00219         typedef mediump_uvec3           uvec3;
+00220         typedef mediump_uvec4           uvec4;
+00221 #elif(defined(GLM_PRECISION_LOWP_UINT))
+00222         typedef lowp_uvec2                      uvec2;
+00223         typedef lowp_uvec3                      uvec3;
+00224         typedef lowp_uvec4                      uvec4;
+00225 #else
+00226 
+00227 
+00228 
+00229         typedef mediump_uvec2           uvec2;
+00230 
+00234         typedef mediump_uvec3           uvec3;
+00235 
+00239         typedef mediump_uvec4           uvec4;
+00240 #endif//GLM_PRECISION
+00241 
+00243         // Boolean definition
+00244 
+00248         typedef detail::tvec2<bool>             bvec2;
+00249 
+00253         typedef detail::tvec3<bool>             bvec3;
+00254 
+00258         typedef detail::tvec4<bool>             bvec4;
+00259 
+00261         // Double definition
+00262 
+00266         typedef detail::tvec2<double>   dvec2;
+00267 
+00271         typedef detail::tvec3<double>   dvec3;
+00272 
+00276         typedef detail::tvec4<double>   dvec4;
+00277 
+00281         typedef detail::tmat2x2<double> dmat2;
+00282 
+00286         typedef detail::tmat3x3<double> dmat3;
+00287 
+00291         typedef detail::tmat4x4<double> dmat4;
+00292 
+00296         typedef detail::tmat2x2<double> dmat2x2;
+00297 
+00301         typedef detail::tmat2x3<double> dmat2x3;
+00302 
+00306         typedef detail::tmat2x4<double> dmat2x4;
+00307 
+00311         typedef detail::tmat3x2<double> dmat3x2;
+00312 
+00316         typedef detail::tmat3x3<double> dmat3x3;
+00317 
+00321         typedef detail::tmat3x4<double> dmat3x4;
+00322 
+00326         typedef detail::tmat4x2<double> dmat4x2;
+00327 
+00331         typedef detail::tmat4x3<double> dmat4x3;
+00332 
+00336         typedef detail::tmat4x4<double> dmat4x4;
+00337 
+00339 }//namespace glm
+00340 
+00341 #endif//glm_core_type
+
+
+ + + + + + diff --git a/doc/api/a00093.html b/doc/api/a00093.html new file mode 100644 index 00000000..a5a9a520 --- /dev/null +++ b/doc/api/a00093.html @@ -0,0 +1,86 @@ + + + + + +type_float.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_float.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef highp_float_t highp_float
typedef lowp_float_t lowp_float
typedef mediump_float_t mediump_float
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-22 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_float.hpp.

+
+ + + + + + diff --git a/doc/api/a00093_source.html b/doc/api/a00093_source.html new file mode 100644 index 00000000..ce56b448 --- /dev/null +++ b/doc/api/a00093_source.html @@ -0,0 +1,131 @@ + + + + + +type_float.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_float.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_float
+00030 #define glm_core_type_float
+00031 
+00032 #include "type_half.hpp"
+00033 #include "setup.hpp"
+00034 
+00035 namespace glm
+00036 {
+00037 #ifdef GLM_USE_HALF_SCALAR
+00038     typedef detail::half                lowp_float_t;
+00039 #else//GLM_USE_HALF_SCALAR
+00040     typedef float                               lowp_float_t;
+00041 #endif//GLM_USE_HALF_SCALAR
+00042     typedef float                               mediump_float_t;
+00043     typedef double                              highp_float_t;
+00044 
+00047 
+00053     typedef lowp_float_t                lowp_float;
+00054     
+00060     typedef mediump_float_t     mediump_float;
+00061     
+00067     typedef highp_float_t               highp_float;
+00068 
+00069 #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+00070         typedef mediump_float                           float_t;
+00071 #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+00072         typedef highp_float                  float_t;
+00073 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+00074         typedef mediump_float                           float_t;
+00075 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
+00076         typedef lowp_float                                      float_t;
+00077 #else
+00078 #       error "GLM error: multiple default precision requested for floating-point types"
+00079 #endif
+00080 
+00082 }//namespace glm
+00083 
+00084 #endif//glm_core_type_float
+
+
+ + + + + + diff --git a/doc/api/a00094.html b/doc/api/a00094.html new file mode 100644 index 00000000..af98041f --- /dev/null +++ b/doc/api/a00094.html @@ -0,0 +1,77 @@ + + + + + +type_gentype.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
type_gentype.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-10-05 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_gentype.hpp.

+
+ + + + + + diff --git a/doc/api/a00094_source.html b/doc/api/a00094_source.html new file mode 100644 index 00000000..cc6a4f82 --- /dev/null +++ b/doc/api/a00094_source.html @@ -0,0 +1,228 @@ + + + + + +type_gentype.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_gentype.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_gentype
+00030 #define glm_core_type_gentype
+00031 
+00032 #include "type_size.hpp"
+00033 
+00034 namespace glm
+00035 {
+00036         enum profile
+00037         {
+00038                 nice,
+00039                 fast,
+00040                 simd
+00041         };
+00042 
+00043 namespace detail
+00044 {
+00045         template
+00046         <
+00047                 typename VALTYPE, 
+00048                 template <typename> class TYPE
+00049         >
+00050         struct genType
+00051         {
+00052         public:
+00053                 enum ctor{null};
+00054 
+00055                 typedef VALTYPE value_type;
+00056                 typedef VALTYPE & value_reference;
+00057                 typedef VALTYPE * value_pointer;
+00058                 typedef VALTYPE const * value_const_pointer;
+00059                 typedef TYPE<bool> bool_type;
+00060 
+00061                 typedef sizeType size_type;
+00062                 static bool is_vector();
+00063                 static bool is_matrix();
+00064                 
+00065                 typedef TYPE<VALTYPE> type;
+00066                 typedef TYPE<VALTYPE> * pointer;
+00067                 typedef TYPE<VALTYPE> const * const_pointer;
+00068                 typedef TYPE<VALTYPE> const * const const_pointer_const;
+00069                 typedef TYPE<VALTYPE> * const pointer_const;
+00070                 typedef TYPE<VALTYPE> & reference;
+00071                 typedef TYPE<VALTYPE> const & const_reference;
+00072                 typedef TYPE<VALTYPE> const & param_type;
+00073 
+00075                 // Address (Implementation details)
+00076 
+00077                 value_const_pointer value_address() const{return value_pointer(this);}
+00078                 value_pointer value_address(){return value_pointer(this);}
+00079 
+00080         //protected:
+00081         //      enum kind
+00082         //      {
+00083         //              GEN_TYPE,
+00084         //              VEC_TYPE,
+00085         //              MAT_TYPE
+00086         //      };
+00087 
+00088         //      typedef typename TYPE::kind kind;
+00089         };
+00090 
+00091         template
+00092         <
+00093                 typename VALTYPE, 
+00094                 template <typename> class TYPE
+00095         >
+00096         bool genType<VALTYPE, TYPE>::is_vector()
+00097         {
+00098                 return true;
+00099         }
+00100 /*
+00101         template <typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice>
+00102         class base
+00103         {
+00104         public:
+00106                 // Traits
+00107 
+00108                 typedef sizeType                                                        size_type;
+00109                 typedef valTypeT                                                        value_type;
+00110 
+00111                 typedef base<value_type, colT, rowT>            class_type;
+00112 
+00113                 typedef base<bool, colT, rowT>                          bool_type;
+00114                 typedef base<value_type, rowT, 1>                       col_type;
+00115                 typedef base<value_type, colT, 1>                       row_type;
+00116                 typedef base<value_type, rowT, colT>            transpose_type;
+00117 
+00118                 static size_type                                                        col_size();
+00119                 static size_type                                                        row_size();
+00120                 static size_type                                                        value_size();
+00121                 static bool                                                                     is_scalar();
+00122                 static bool                                                                     is_vector();
+00123                 static bool                                                                     is_matrix();
+00124 
+00125         private:
+00126                 // Data 
+00127                 col_type value[colT];           
+00128 
+00129         public:
+00131                 // Constructors
+00132                 base();
+00133                 base(class_type const & m);
+00134 
+00135                 explicit base(value_type const & x);
+00136                 explicit base(value_type const * const x);
+00137                 explicit base(col_type const * const x);
+00138 
+00140                 // Conversions
+00141                 template <typename vU, uint cU, uint rU, profile pU>
+00142                 explicit base(base<vU, cU, rU, pU> const & m);
+00143 
+00145                 // Accesses
+00146                 col_type& operator[](size_type i);
+00147                 col_type const & operator[](size_type i) const;
+00148 
+00150                 // Unary updatable operators
+00151                 class_type& operator=  (class_type const & x);
+00152                 class_type& operator+= (value_type const & x);
+00153                 class_type& operator+= (class_type const & x);
+00154                 class_type& operator-= (value_type const & x);
+00155                 class_type& operator-= (class_type const & x);
+00156                 class_type& operator*= (value_type const & x);
+00157                 class_type& operator*= (class_type const & x);
+00158                 class_type& operator/= (value_type const & x);
+00159                 class_type& operator/= (class_type const & x);
+00160                 class_type& operator++ ();
+00161                 class_type& operator-- ();
+00162         };
+00163 */
+00164         }//namespace detail
+00165 }//namespace glm
+00166 
+00167 //#include "type_gentype.inl"
+00168 
+00169 #endif//glm_core_type_gentype
+
+
+ + + + + + diff --git a/doc/api/a00095.html b/doc/api/a00095.html new file mode 100644 index 00000000..9ba29790 --- /dev/null +++ b/doc/api/a00095.html @@ -0,0 +1,85 @@ + + + + + +type_half.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_half.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Classes

class  half
 16-bit floating point type. More...
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-17 / 2011-09-20
+
Author:
Christophe Riccio
+ +

Definition in file type_half.hpp.

+
+ + + + + + diff --git a/doc/api/a00095_source.html b/doc/api/a00095_source.html new file mode 100644 index 00000000..8110b0f8 --- /dev/null +++ b/doc/api/a00095_source.html @@ -0,0 +1,182 @@ + + + + + +type_half.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_half.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_half
+00030 #define glm_core_type_half
+00031 
+00032 #include <cstdlib>
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         typedef short hdata;
+00038 
+00039         float toFloat32(hdata value);
+00040         hdata toFloat16(float const & value);
+00041 
+00044         class half
+00045         {
+00046         public: 
+00047                 // Constructors
+00048                 GLM_FUNC_DECL half();
+00049                 GLM_FUNC_DECL half(half const & s);
+00050                         
+00051                 template <typename U>
+00052                 GLM_FUNC_DECL explicit half(U const & s);
+00053 
+00054                 // Cast
+00055                 template <typename U>
+00056                 GLM_FUNC_DECL operator U() const;
+00057 
+00058                 // Unary updatable operators
+00059                 GLM_FUNC_DECL half& operator= (half const & s);
+00060                 GLM_FUNC_DECL half& operator+=(half const & s);
+00061                 GLM_FUNC_DECL half& operator-=(half const & s);
+00062                 GLM_FUNC_DECL half& operator*=(half const & s);
+00063                 GLM_FUNC_DECL half& operator/=(half const & s);
+00064                 GLM_FUNC_DECL half& operator++();
+00065                 GLM_FUNC_DECL half& operator--();
+00066         
+00067                 GLM_FUNC_DECL float toFloat() const{return toFloat32(data);}
+00068 
+00069                 GLM_FUNC_DECL hdata _data() const{return data;}
+00070 
+00071         private:
+00072                 hdata data;
+00073         };
+00074 
+00075         half operator+ (half const & s1, half const & s2);
+00076 
+00077         half operator- (half const & s1, half const & s2);
+00078 
+00079         half operator* (half const & s1, half const & s2);
+00080 
+00081         half operator/ (half const & s1, half const & s2);
+00082 
+00083         // Unary constant operators
+00084         half operator- (half const & s);
+00085 
+00086         half operator-- (half const & s, int);
+00087 
+00088         half operator++ (half const & s, int);
+00089 
+00090         bool operator==(
+00091                 detail::half const & x, 
+00092                 detail::half const & y);
+00093 
+00094         bool operator!=(
+00095                 detail::half const & x, 
+00096                 detail::half const & y);
+00097 
+00098         bool operator<(
+00099                 detail::half const & x, 
+00100                 detail::half const & y);
+00101 
+00102         bool operator<=(
+00103                 detail::half const & x, 
+00104                 detail::half const & y);
+00105 
+00106         bool operator>(
+00107                 detail::half const & x, 
+00108                 detail::half const & y);
+00109 
+00110         bool operator>=(
+00111                 detail::half const & x, 
+00112                 detail::half const & y);
+00113 
+00114 }//namespace detail
+00115 }//namespace glm
+00116 
+00117 #include "type_half.inl"
+00118 
+00119 #endif//glm_core_type_half
+
+
+ + + + + + diff --git a/doc/api/a00096.html b/doc/api/a00096.html new file mode 100644 index 00000000..bcbe1263 --- /dev/null +++ b/doc/api/a00096.html @@ -0,0 +1,90 @@ + + + + + +type_int.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_int.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + +

+Typedefs

typedef detail::highp_int_t highp_int
typedef detail::highp_uint_t highp_uint
typedef detail::lowp_int_t lowp_int
typedef detail::lowp_uint_t lowp_uint
typedef detail::mediump_int_t mediump_int
typedef detail::mediump_uint_t mediump_uint
typedef uint_t uint
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-22 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_int.hpp.

+
+ + + + + + diff --git a/doc/api/a00096_source.html b/doc/api/a00096_source.html new file mode 100644 index 00000000..0d8563f4 --- /dev/null +++ b/doc/api/a00096_source.html @@ -0,0 +1,166 @@ + + + + + +type_int.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_int.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_int
+00030 #define glm_core_type_int
+00031 
+00032 #include "setup.hpp"
+00033 #include "_detail.hpp"
+00034 
+00035 namespace glm{
+00036 namespace detail
+00037 {
+00038         typedef signed short                    lowp_int_t;
+00039         typedef signed int                              mediump_int_t;
+00040         typedef sint64                                  highp_int_t;
+00041 
+00042         typedef unsigned short                  lowp_uint_t;
+00043         typedef unsigned int                    mediump_uint_t;
+00044         typedef uint64                                  highp_uint_t;
+00045 
+00046         GLM_DETAIL_IS_INT(signed char);
+00047         GLM_DETAIL_IS_INT(signed short);
+00048         GLM_DETAIL_IS_INT(signed int);
+00049         GLM_DETAIL_IS_INT(signed long);
+00050         GLM_DETAIL_IS_INT(highp_int_t);
+00051 
+00052         GLM_DETAIL_IS_UINT(unsigned char);
+00053         GLM_DETAIL_IS_UINT(unsigned short);
+00054         GLM_DETAIL_IS_UINT(unsigned int);
+00055         GLM_DETAIL_IS_UINT(unsigned long);
+00056         GLM_DETAIL_IS_UINT(highp_uint_t);
+00057 }//namespace detail
+00058 
+00061 
+00067         typedef detail::lowp_int_t                              lowp_int;
+00068     
+00074         typedef detail::mediump_int_t                   mediump_int;
+00075     
+00081         typedef detail::highp_int_t                             highp_int;
+00082 
+00088         typedef detail::lowp_uint_t                             lowp_uint;
+00089     
+00095         typedef detail::mediump_uint_t                  mediump_uint;
+00096     
+00102         typedef detail::highp_uint_t                            highp_uint;
+00103 
+00104 #if(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
+00105         typedef mediump_int                 int_t;
+00106 #elif(defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
+00107         typedef highp_int                                       int_t;
+00108 #elif(!defined(GLM_PRECISION_HIGHP_INT) && defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
+00109         typedef mediump_int                 int_t;
+00110 #elif(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && defined(GLM_PRECISION_LOWP_INT))
+00111         typedef lowp_int                                        int_t;
+00112 #else
+00113 #       error "GLM error: multiple default precision requested for signed interger types"
+00114 #endif
+00115 
+00116 #if(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
+00117         typedef mediump_uint                            uint_t;
+00118 #elif(defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
+00119         typedef highp_uint                                      uint_t;
+00120 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
+00121         typedef mediump_uint                            uint_t;
+00122 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && defined(GLM_PRECISION_LOWP_UINT))
+00123         typedef lowp_uint                                       uint_t;
+00124 #else
+00125 #       error "GLM error: multiple default precision requested for unsigned interger types"
+00126 #endif
+00127 
+00131         typedef uint_t                                                          uint;
+00132 
+00134 
+00135 }//namespace glm
+00136 
+00137 #endif//glm_core_type_int
+
+
+ + + + + + diff --git a/doc/api/a00097.html b/doc/api/a00097.html new file mode 100644 index 00000000..011a4650 --- /dev/null +++ b/doc/api/a00097.html @@ -0,0 +1,77 @@ + + + + + +type_mat.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
type_mat.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2010-01-26 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_mat.hpp.

+
+ + + + + + diff --git a/doc/api/a00097_source.html b/doc/api/a00097_source.html new file mode 100644 index 00000000..eb01870c --- /dev/null +++ b/doc/api/a00097_source.html @@ -0,0 +1,140 @@ + + + + + +type_mat.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_mat.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_mat
+00030 #define glm_core_type_mat
+00031 
+00032 #include "type_gentype.hpp"
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         //template 
+00038         //<
+00039         //      typename T, 
+00040         //      template <typename> class C, 
+00041         //      template <typename> class R
+00042         //>
+00043         //struct matType
+00044         //{
+00045         //      enum ctor{null};
+00046         //      typedef T value_type;
+00047         //      typedef std::size_t size_type;
+00048         //      typedef C<T> col_type;
+00049         //      typedef R<T> row_type;
+00050         //      static size_type const col_size;
+00051         //      static size_type const row_size;
+00052         //};
+00053 
+00054         //template 
+00055         //<
+00056         //      typename T, 
+00057         //      template <typename> class C, 
+00058         //      template <typename> class R
+00059         //>
+00060         //typename matType<T, C, R>::size_type const 
+00061         //matType<T, C, R>::col_size = matType<T, C, R>::col_type::value_size;
+00062 
+00063         //template 
+00064         //<
+00065         //      typename T, 
+00066         //      template <typename> class C, 
+00067         //      template <typename> class R
+00068         //>
+00069         //typename matType<T, C, R>::size_type const 
+00070         //matType<T, C, R>::row_size = matType<T, C, R>::row_type::value_size;
+00071 
+00072 }//namespace detail
+00073 }//namespace glm
+00074 
+00075 #endif//glm_core_type_mat
+
+
+ + + + + + diff --git a/doc/api/a00098.html b/doc/api/a00098.html new file mode 100644 index 00000000..630e7e4b --- /dev/null +++ b/doc/api/a00098.html @@ -0,0 +1,95 @@ + + + + + +type_mat2x2.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_mat2x2.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Typedefs

typedef detail::tmat2x2
+< highp_float > 
highp_mat2
typedef detail::tmat2x2
+< highp_float > 
highp_mat2x2
typedef detail::tmat2x2
+< lowp_float > 
lowp_mat2
typedef detail::tmat2x2
+< lowp_float > 
lowp_mat2x2
typedef detail::tmat2x2
+< mediump_float > 
mediump_mat2
typedef detail::tmat2x2
+< mediump_float > 
mediump_mat2x2
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2005-01-27 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_mat2x2.hpp.

+
+ + + + + + diff --git a/doc/api/a00098_source.html b/doc/api/a00098_source.html new file mode 100644 index 00000000..96a6a2f9 --- /dev/null +++ b/doc/api/a00098_source.html @@ -0,0 +1,343 @@ + + + + + +type_mat2x2.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_mat2x2.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_mat2x2
+00030 #define glm_core_type_mat2x2
+00031 
+00032 #include "type_mat.hpp"
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         template <typename T> struct tvec1;
+00038         template <typename T> struct tvec2;
+00039         template <typename T> struct tvec3;
+00040         template <typename T> struct tvec4;
+00041         template <typename T> struct tmat2x2;
+00042         template <typename T> struct tmat2x3;
+00043         template <typename T> struct tmat2x4;
+00044         template <typename T> struct tmat3x2;
+00045         template <typename T> struct tmat3x3;
+00046         template <typename T> struct tmat3x4;
+00047         template <typename T> struct tmat4x2;
+00048         template <typename T> struct tmat4x3;
+00049         template <typename T> struct tmat4x4;
+00050 
+00051         // @brief Template for 2 * 2 matrix of floating-point numbers.
+00052         // @ingroup core_template
+00053         template <typename T> 
+00054         struct tmat2x2
+00055         {
+00056                 // Implementation detail
+00057                 enum ctor{null};
+00058                 typedef T value_type;
+00059                 typedef std::size_t size_type;
+00060                 typedef tvec2<T> col_type;
+00061                 typedef tvec2<T> row_type;
+00062                 static GLM_FUNC_DECL size_type col_size();
+00063                 static GLM_FUNC_DECL size_type row_size();
+00064 
+00065                 typedef tmat2x2<T> type;
+00066                 typedef tmat2x2<T> transpose_type;
+00067         
+00068                 GLM_FUNC_DECL size_type length() const;
+00069         
+00070         public:
+00071                 // Implementation detail
+00072                 GLM_FUNC_DECL tmat2x2<T> _inverse() const;
+00073 
+00074         private:
+00076                 // Implementation detail
+00077                 col_type value[2];
+00078         
+00079         public:
+00081                 // Constructors
+00082                 GLM_FUNC_DECL tmat2x2();
+00083                 GLM_FUNC_DECL tmat2x2(
+00084                         tmat2x2 const & m);
+00085 
+00086                 GLM_FUNC_DECL explicit tmat2x2(
+00087                         ctor Null);
+00088                 GLM_FUNC_DECL explicit tmat2x2(
+00089                         value_type const & x);
+00090                 GLM_FUNC_DECL explicit tmat2x2(
+00091                         value_type const & x1, value_type const & y1, 
+00092                         value_type const & x2, value_type const & y2);
+00093                 GLM_FUNC_DECL explicit tmat2x2(
+00094                         col_type const & v1, 
+00095                         col_type const & v2);
+00096 
+00098                 // Conversions
+00099                 template <typename U> 
+00100                 GLM_FUNC_DECL explicit tmat2x2(
+00101                         U const & x);
+00102 
+00103                 template <typename U, typename V, typename M, typename N> 
+00104                 GLM_FUNC_DECL explicit tmat2x2(
+00105                         U const & x1, V const & y1, 
+00106                         M const & x2, N const & y2);
+00107                         
+00108                 template <typename U, typename V> 
+00109                 GLM_FUNC_DECL explicit tmat2x2(
+00110                         tvec2<U> const & v1, 
+00111                         tvec2<V> const & v2);
+00112 
+00114                 // Matrix conversions
+00115                 template <typename U> 
+00116                 GLM_FUNC_DECL explicit tmat2x2(tmat2x2<U> const & m);
+00117 
+00118                 GLM_FUNC_DECL explicit tmat2x2(tmat3x3<T> const & x);
+00119                 GLM_FUNC_DECL explicit tmat2x2(tmat4x4<T> const & x);
+00120                 GLM_FUNC_DECL explicit tmat2x2(tmat2x3<T> const & x);
+00121                 GLM_FUNC_DECL explicit tmat2x2(tmat3x2<T> const & x);
+00122                 GLM_FUNC_DECL explicit tmat2x2(tmat2x4<T> const & x);
+00123                 GLM_FUNC_DECL explicit tmat2x2(tmat4x2<T> const & x);
+00124                 GLM_FUNC_DECL explicit tmat2x2(tmat3x4<T> const & x);
+00125                 GLM_FUNC_DECL explicit tmat2x2(tmat4x3<T> const & x);
+00126 
+00128                 // Accesses
+00129 
+00130                 GLM_FUNC_DECL col_type & operator[](size_type i);
+00131                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+00132 
+00133                 // Unary updatable operators
+00134                 GLM_FUNC_DECL tmat2x2<T> & operator=(tmat2x2<T> const & m);
+00135                 template <typename U> 
+00136                 GLM_FUNC_DECL tmat2x2<T> & operator=(tmat2x2<U> const & m);
+00137                 template <typename U> 
+00138                 GLM_FUNC_DECL tmat2x2<T> & operator+=(U const & s);
+00139                 template <typename U> 
+00140                 GLM_FUNC_DECL tmat2x2<T> & operator+=(tmat2x2<U> const & m);
+00141                 template <typename U> 
+00142                 GLM_FUNC_DECL tmat2x2<T> & operator-=(U const & s);
+00143                 template <typename U> 
+00144                 GLM_FUNC_DECL tmat2x2<T> & operator-=(tmat2x2<U> const & m);
+00145                 template <typename U> 
+00146                 GLM_FUNC_DECL tmat2x2<T> & operator*=(U const & s);
+00147                 template <typename U> 
+00148                 GLM_FUNC_DECL tmat2x2<T> & operator*=(tmat2x2<U> const & m);
+00149                 template <typename U> 
+00150                 GLM_FUNC_DECL tmat2x2<T> & operator/=(U const & s);
+00151                 template <typename U> 
+00152                 GLM_FUNC_DECL tmat2x2<T> & operator/=(tmat2x2<U> const & m);
+00153                 GLM_FUNC_DECL tmat2x2<T> & operator++();
+00154                 GLM_FUNC_DECL tmat2x2<T> & operator--();
+00155         };
+00156 
+00157         // Binary operators
+00158         template <typename T> 
+00159         tmat2x2<T> operator+ (
+00160                 tmat2x2<T> const & m, 
+00161                 typename tmat2x2<T>::value_type const & s);
+00162 
+00163         template <typename T> 
+00164         tmat2x2<T> operator+ (
+00165                 typename tmat2x2<T>::value_type const & s, 
+00166                 tmat2x2<T> const & m);
+00167 
+00168         template <typename T> 
+00169         tmat2x2<T> operator+ (
+00170                 tmat2x2<T> const & m1, 
+00171                 tmat2x2<T> const & m2);
+00172             
+00173         template <typename T> 
+00174         tmat2x2<T> operator- (
+00175                 tmat2x2<T> const & m, 
+00176                 typename tmat2x2<T>::value_type const & s);
+00177 
+00178         template <typename T> 
+00179         tmat2x2<T> operator- (
+00180                 typename tmat2x2<T>::value_type const & s, 
+00181                 tmat2x2<T> const & m);
+00182 
+00183         template <typename T> 
+00184         tmat2x2<T> operator- (
+00185                 tmat2x2<T> const & m1, 
+00186                 tmat2x2<T> const & m2);
+00187 
+00188         template <typename T> 
+00189         tmat2x2<T> operator* (
+00190                 tmat2x2<T> const & m, 
+00191                 typename tmat2x2<T>::value_type const & s);
+00192 
+00193         template <typename T> 
+00194         tmat2x2<T> operator* (
+00195                 typename tmat2x2<T>::value_type const & s, 
+00196                 tmat2x2<T> const & m);
+00197 
+00198         template <typename T> 
+00199         typename tmat2x2<T>::col_type operator* (
+00200                 tmat2x2<T> const & m, 
+00201                 typename tmat2x2<T>::row_type const & v);
+00202 
+00203         template <typename T> 
+00204         typename tmat2x2<T>::row_type operator* (
+00205                 typename tmat2x2<T>::col_type const & v, 
+00206                 tmat2x2<T> const & m);
+00207 
+00208         template <typename T> 
+00209         tmat2x2<T> operator* (
+00210                 tmat2x2<T> const & m1, 
+00211                 tmat2x2<T> const & m2);
+00212                 
+00213         template <typename T>
+00214         tmat3x2<T> operator* (
+00215                 tmat2x2<T> const & m1, 
+00216                 tmat3x2<T> const & m2);
+00217                 
+00218         template <typename T>
+00219         tmat4x2<T> operator* (
+00220                 tmat2x2<T> const & m1, 
+00221                 tmat4x2<T> const & m2);
+00222 
+00223         template <typename T> 
+00224         tmat2x2<T> operator/ (
+00225                 tmat2x2<T> const & m, 
+00226                 typename tmat2x2<T>::value_type const & s);
+00227 
+00228         template <typename T> 
+00229         tmat2x2<T> operator/ (
+00230                 typename tmat2x2<T>::value_type const & s,
+00231                 tmat2x2<T> const & m);
+00232 
+00233         template <typename T> 
+00234         typename tmat2x2<T>::col_type operator/ (
+00235                 tmat2x2<T> const & m, 
+00236                 typename tmat2x2<T>::row_type const & v);
+00237 
+00238         template <typename T> 
+00239         typename tmat2x2<T>::row_type operator/ (
+00240                 typename tmat2x2<T>::col_type const & v, 
+00241                 tmat2x2<T> const & m);
+00242 
+00243         template <typename T> 
+00244         tmat2x2<T> operator/ (
+00245                 tmat2x2<T> const & m1, 
+00246                 tmat2x2<T> const & m2);
+00247 
+00248         // Unary constant operators
+00249         template <typename T> 
+00250         tmat2x2<T> const operator-  (
+00251                 tmat2x2<T> const & m);
+00252 
+00253         template <typename T> 
+00254         tmat2x2<T> const operator-- (
+00255                 tmat2x2<T> const & m, 
+00256                 int);
+00257 
+00258         template <typename T> 
+00259         tmat2x2<T> const operator++ (
+00260                 tmat2x2<T> const & m, 
+00261                 int);
+00262 } //namespace detail
+00263 
+00266 
+00272         typedef detail::tmat2x2<lowp_float>             lowp_mat2;
+00273 
+00279         typedef detail::tmat2x2<mediump_float>  mediump_mat2;
+00280 
+00286         typedef detail::tmat2x2<highp_float>    highp_mat2;
+00287 
+00293         typedef detail::tmat2x2<lowp_float>             lowp_mat2x2;
+00294 
+00300         typedef detail::tmat2x2<mediump_float>  mediump_mat2x2;
+00301 
+00307         typedef detail::tmat2x2<highp_float>    highp_mat2x2;
+00308 
+00310 }//namespace glm
+00311 
+00312 #ifndef GLM_EXTERNAL_TEMPLATE
+00313 #include "type_mat2x2.inl"
+00314 #endif
+00315 
+00316 #endif //glm_core_type_mat2x2
+
+
+ + + + + + diff --git a/doc/api/a00099.html b/doc/api/a00099.html new file mode 100644 index 00000000..340813b0 --- /dev/null +++ b/doc/api/a00099.html @@ -0,0 +1,89 @@ + + + + + +type_mat2x3.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_mat2x3.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef detail::tmat2x3
+< highp_float > 
highp_mat2x3
typedef detail::tmat2x3
+< lowp_float > 
lowp_mat2x3
typedef detail::tmat2x3
+< mediump_float > 
mediump_mat2x3
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2006-10-01 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_mat2x3.hpp.

+
+ + + + + + diff --git a/doc/api/a00099_source.html b/doc/api/a00099_source.html new file mode 100644 index 00000000..e09f5a8b --- /dev/null +++ b/doc/api/a00099_source.html @@ -0,0 +1,304 @@ + + + + + +type_mat2x3.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_mat2x3.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_mat2x3
+00030 #define glm_core_type_mat2x3
+00031 
+00032 #include "type_mat.hpp"
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         template <typename T> struct tvec1;
+00038         template <typename T> struct tvec2;
+00039         template <typename T> struct tvec3;
+00040         template <typename T> struct tvec4;
+00041         template <typename T> struct tmat2x2;
+00042         template <typename T> struct tmat2x3;
+00043         template <typename T> struct tmat2x4;
+00044         template <typename T> struct tmat3x2;
+00045         template <typename T> struct tmat3x3;
+00046         template <typename T> struct tmat3x4;
+00047         template <typename T> struct tmat4x2;
+00048         template <typename T> struct tmat4x3;
+00049         template <typename T> struct tmat4x4;
+00050 
+00051         // \brief Template for 2 columns and 3 rows matrix of floating-point numbers.
+00052         // \ingroup core_template
+00053         template <typename T> 
+00054         struct tmat2x3
+00055         {
+00056                 enum ctor{null};
+00057                 typedef T value_type;
+00058                 typedef std::size_t size_type;
+00059                 typedef tvec3<T> col_type;
+00060                 typedef tvec2<T> row_type;
+00061         GLM_FUNC_DECL size_type length() const;
+00062                 static GLM_FUNC_DECL size_type col_size();
+00063                 static GLM_FUNC_DECL size_type row_size();
+00064 
+00065                 typedef tmat2x3<T> type;
+00066                 typedef tmat3x2<T> transpose_type;
+00067 
+00068         private:
+00069                 // Data 
+00070                 col_type value[2];
+00071 
+00072         public:
+00073                 // Constructors
+00074                 GLM_FUNC_DECL tmat2x3();
+00075                 GLM_FUNC_DECL tmat2x3(tmat2x3 const & m);
+00076 
+00077                 GLM_FUNC_DECL explicit tmat2x3(
+00078                         ctor);
+00079                 GLM_FUNC_DECL explicit tmat2x3(
+00080                         value_type const & s);
+00081                 GLM_FUNC_DECL explicit tmat2x3(
+00082                         value_type const & x0, value_type const & y0, value_type const & z0,
+00083                         value_type const & x1, value_type const & y1, value_type const & z1);
+00084                 GLM_FUNC_DECL explicit tmat2x3(
+00085                         col_type const & v0, 
+00086                         col_type const & v1);
+00087             
+00089                 // Conversions
+00090                 template <typename U> 
+00091                 GLM_FUNC_DECL explicit tmat2x3(
+00092             U const & x);
+00093                         
+00094                 template <typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2> 
+00095                 GLM_FUNC_DECL explicit tmat2x3(
+00096             X1 const & x1, Y1 const & y1, Z1 const & z1, 
+00097             X2 const & x2, Y2 const & y2, Z2 const & z2);
+00098                         
+00099                 template <typename U, typename V> 
+00100                 GLM_FUNC_DECL explicit tmat2x3(
+00101             tvec3<U> const & v1, 
+00102             tvec3<V> const & v2);
+00103             
+00105         // Matrix conversion
+00106                 template <typename U> 
+00107                 GLM_FUNC_DECL explicit tmat2x3(tmat2x3<U> const & m);
+00108 
+00109                 GLM_FUNC_DECL explicit tmat2x3(tmat2x2<T> const & x);
+00110                 GLM_FUNC_DECL explicit tmat2x3(tmat3x3<T> const & x);
+00111                 GLM_FUNC_DECL explicit tmat2x3(tmat4x4<T> const & x);
+00112                 GLM_FUNC_DECL explicit tmat2x3(tmat2x4<T> const & x);
+00113                 GLM_FUNC_DECL explicit tmat2x3(tmat3x2<T> const & x);
+00114                 GLM_FUNC_DECL explicit tmat2x3(tmat3x4<T> const & x);
+00115                 GLM_FUNC_DECL explicit tmat2x3(tmat4x2<T> const & x);
+00116                 GLM_FUNC_DECL explicit tmat2x3(tmat4x3<T> const & x);
+00117 
+00118                 // Accesses
+00119                 col_type & operator[](size_type i);
+00120                 col_type const & operator[](size_type i) const;
+00121 
+00122                 // Unary updatable operators
+00123                 GLM_FUNC_DECL tmat2x3<T> & operator=  (tmat2x3<T> const & m);
+00124                 template <typename U> 
+00125                 GLM_FUNC_DECL tmat2x3<T> & operator=  (tmat2x3<U> const & m);
+00126                 template <typename U> 
+00127                 GLM_FUNC_DECL tmat2x3<T> & operator+= (U const & s);
+00128                 template <typename U> 
+00129                 GLM_FUNC_DECL tmat2x3<T> & operator+= (tmat2x3<U> const & m);
+00130                 template <typename U> 
+00131                 GLM_FUNC_DECL tmat2x3<T> & operator-= (U const & s);
+00132                 template <typename U> 
+00133                 GLM_FUNC_DECL tmat2x3<T> & operator-= (tmat2x3<U> const & m);
+00134                 template <typename U> 
+00135                 GLM_FUNC_DECL tmat2x3<T> & operator*= (U const & s);
+00136                 template <typename U> 
+00137                 GLM_FUNC_DECL tmat2x3<T> & operator*= (tmat2x3<U> const & m);
+00138                 template <typename U> 
+00139                 GLM_FUNC_DECL tmat2x3<T> & operator/= (U const & s);
+00140 
+00141                 GLM_FUNC_DECL tmat2x3<T> & operator++ ();
+00142                 GLM_FUNC_DECL tmat2x3<T> & operator-- ();
+00143         };
+00144 
+00145         // Binary operators
+00146         template <typename T> 
+00147         tmat2x3<T> operator+ (
+00148                 tmat2x3<T> const & m, 
+00149                 typename tmat2x3<T>::value_type const & s);
+00150             
+00151         template <typename T> 
+00152         tmat2x3<T> operator+ (
+00153                 tmat2x3<T> const & m1, 
+00154                 tmat2x3<T> const & m2);
+00155             
+00156         template <typename T> 
+00157         tmat2x3<T> operator- (
+00158                 tmat2x3<T> const & m, 
+00159                 typename tmat2x3<T>::value_type const & s);
+00160 
+00161         template <typename T> 
+00162         tmat2x3<T> operator- (
+00163                 tmat2x3<T> const & m1, 
+00164                 tmat2x3<T> const & m2);
+00165 
+00166         template <typename T> 
+00167         tmat2x3<T> operator* (
+00168                 tmat2x3<T> const & m, 
+00169                 typename tmat2x3<T>::value_type const & s);
+00170 
+00171         template <typename T> 
+00172         tmat2x3<T> operator* (
+00173                 typename tmat2x3<T>::value_type const & s, 
+00174                 tmat2x3<T> const & m);
+00175 
+00176         template <typename T>
+00177         typename tmat2x3<T>::col_type operator* (
+00178                 tmat2x3<T> const & m, 
+00179                 typename tmat2x3<T>::row_type const & v);
+00180 
+00181         template <typename T> 
+00182         typename tmat2x3<T>::row_type operator* (
+00183                 typename tmat2x3<T>::col_type const & v, 
+00184                 tmat2x3<T> const & m);
+00185 
+00186         template <typename T>
+00187         tmat2x3<T> operator* (
+00188                 tmat2x3<T> const & m1, 
+00189                 tmat2x2<T> const & m2);
+00190 
+00191         template <typename T>
+00192         tmat3x3<T> operator* (
+00193                 tmat2x3<T> const & m1, 
+00194                 tmat3x2<T> const & m2);
+00195                 
+00196         template <typename T>
+00197         tmat4x3<T> operator* (
+00198                 tmat2x3<T> const & m1, 
+00199                 tmat4x2<T> const & m2);
+00200 
+00201         template <typename T> 
+00202         tmat2x3<T> operator/ (
+00203                 tmat2x3<T> const & m, 
+00204                 typename tmat2x3<T>::value_type const & s);
+00205 
+00206         template <typename T> 
+00207         tmat2x3<T> operator/ (
+00208                 typename tmat2x3<T>::value_type const & s,
+00209                 tmat2x3<T> const & m);
+00210 
+00211         // Unary constant operators
+00212         template <typename T> 
+00213         tmat2x3<T> const operator-  (
+00214                 tmat2x3<T> const & m);
+00215 
+00216         template <typename T> 
+00217         tmat2x3<T> const operator-- (
+00218                 tmat2x3<T> const & m, 
+00219                 int);
+00220 
+00221         template <typename T> 
+00222         tmat2x3<T> const operator++ (
+00223                 tmat2x3<T> const & m, 
+00224                 int);
+00225 
+00226 } //namespace detail
+00227 
+00230 
+00236         typedef detail::tmat2x3<lowp_float>             lowp_mat2x3;
+00237     
+00243         typedef detail::tmat2x3<mediump_float>  mediump_mat2x3;
+00244     
+00250         typedef detail::tmat2x3<highp_float>    highp_mat2x3;
+00251 
+00253 }//namespace glm
+00254 
+00255 #ifndef GLM_EXTERNAL_TEMPLATE
+00256 #include "type_mat2x3.inl"
+00257 #endif
+00258 
+00259 #endif //glm_core_type_mat2x3
+
+
+ + + + + + diff --git a/doc/api/a00100.html b/doc/api/a00100.html new file mode 100644 index 00000000..9a9b4cee --- /dev/null +++ b/doc/api/a00100.html @@ -0,0 +1,89 @@ + + + + + +type_mat2x4.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_mat2x4.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef detail::tmat2x4
+< highp_float > 
highp_mat2x4
typedef detail::tmat2x4
+< lowp_float > 
lowp_mat2x4
typedef detail::tmat2x4
+< mediump_float > 
mediump_mat2x4
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2006-08-05 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_mat2x4.hpp.

+
+ + + + + + diff --git a/doc/api/a00100_source.html b/doc/api/a00100_source.html new file mode 100644 index 00000000..e976171f --- /dev/null +++ b/doc/api/a00100_source.html @@ -0,0 +1,306 @@ + + + + + +type_mat2x4.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_mat2x4.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_mat2x4
+00030 #define glm_core_type_mat2x4
+00031 
+00032 #include "type_mat.hpp"
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         template <typename T> struct tvec1;
+00038         template <typename T> struct tvec2;
+00039         template <typename T> struct tvec3;
+00040         template <typename T> struct tvec4;
+00041         template <typename T> struct tmat2x2;
+00042         template <typename T> struct tmat2x3;
+00043         template <typename T> struct tmat2x4;
+00044         template <typename T> struct tmat3x2;
+00045         template <typename T> struct tmat3x3;
+00046         template <typename T> struct tmat3x4;
+00047         template <typename T> struct tmat4x2;
+00048         template <typename T> struct tmat4x3;
+00049         template <typename T> struct tmat4x4;
+00050 
+00051         // Template for 2 columns and 4 rows matrix of floating-point numbers.
+00052         // \ingroup core_template
+00053         template <typename T> 
+00054         struct tmat2x4
+00055         {
+00056                 enum ctor{null};
+00057                 typedef T value_type;
+00058                 typedef std::size_t size_type;
+00059                 typedef tvec4<T> col_type;
+00060                 typedef tvec2<T> row_type;
+00061         GLM_FUNC_DECL size_type length() const;
+00062                 static GLM_FUNC_DECL size_type col_size();
+00063                 static GLM_FUNC_DECL size_type row_size();
+00064 
+00065                 typedef tmat2x4<T> type;
+00066                 typedef tmat4x2<T> transpose_type;
+00067 
+00068         private:
+00069                 // Data 
+00070                 col_type value[2];
+00071 
+00072         public:
+00073                 // Constructors
+00074                 GLM_FUNC_DECL tmat2x4();
+00075                 GLM_FUNC_DECL tmat2x4(tmat2x4 const & m);
+00076 
+00077                 GLM_FUNC_DECL explicit tmat2x4(
+00078                         ctor);
+00079                 GLM_FUNC_DECL explicit tmat2x4(
+00080                         value_type const & s);
+00081                 GLM_FUNC_DECL explicit tmat2x4(
+00082                         value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
+00083                         value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1);
+00084                 GLM_FUNC_DECL explicit tmat2x4(
+00085                         col_type const & v0, 
+00086                         col_type const & v1);
+00087             
+00089                 // Conversions
+00090                 template <typename U> 
+00091                 GLM_FUNC_DECL explicit tmat2x4(
+00092             U const & x);
+00093                         
+00094                 template <
+00095             typename X1, typename Y1, typename Z1, typename W1, 
+00096             typename X2, typename Y2, typename Z2, typename W2> 
+00097                 GLM_FUNC_DECL explicit tmat2x4(
+00098             X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1, 
+00099             X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2);
+00100                         
+00101                 template <typename U, typename V> 
+00102                 GLM_FUNC_DECL explicit tmat2x4(
+00103             tvec4<U> const & v1, 
+00104             tvec4<V> const & v2);
+00105             
+00107                 // Matrix conversions
+00108                 template <typename U> 
+00109                 GLM_FUNC_DECL explicit tmat2x4(tmat2x4<U> const & m);
+00110 
+00111                 GLM_FUNC_DECL explicit tmat2x4(tmat2x2<T> const & x);
+00112                 GLM_FUNC_DECL explicit tmat2x4(tmat3x3<T> const & x);
+00113                 GLM_FUNC_DECL explicit tmat2x4(tmat4x4<T> const & x);
+00114                 GLM_FUNC_DECL explicit tmat2x4(tmat2x3<T> const & x);
+00115                 GLM_FUNC_DECL explicit tmat2x4(tmat3x2<T> const & x);
+00116                 GLM_FUNC_DECL explicit tmat2x4(tmat3x4<T> const & x);
+00117                 GLM_FUNC_DECL explicit tmat2x4(tmat4x2<T> const & x);
+00118                 GLM_FUNC_DECL explicit tmat2x4(tmat4x3<T> const & x);
+00119 
+00120                 // Accesses
+00121                 GLM_FUNC_DECL col_type & operator[](size_type i);
+00122                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+00123 
+00124                 // Unary updatable operators
+00125                 GLM_FUNC_DECL tmat2x4<T>& operator=  (tmat2x4<T> const & m);
+00126                 template <typename U> 
+00127                 GLM_FUNC_DECL tmat2x4<T>& operator=  (tmat2x4<U> const & m);
+00128                 template <typename U> 
+00129                 GLM_FUNC_DECL tmat2x4<T>& operator+= (U const & s);
+00130                 template <typename U> 
+00131                 GLM_FUNC_DECL tmat2x4<T>& operator+= (tmat2x4<U> const & m);
+00132                 template <typename U> 
+00133                 GLM_FUNC_DECL tmat2x4<T>& operator-= (U const & s);
+00134                 template <typename U> 
+00135                 GLM_FUNC_DECL tmat2x4<T>& operator-= (tmat2x4<U> const & m);
+00136                 template <typename U> 
+00137                 GLM_FUNC_DECL tmat2x4<T>& operator*= (U const & s);
+00138                 template <typename U> 
+00139                 GLM_FUNC_DECL tmat2x4<T>& operator*= (tmat2x4<U> const & m);
+00140                 template <typename U> 
+00141                 GLM_FUNC_DECL tmat2x4<T>& operator/= (U const & s);
+00142 
+00143                 GLM_FUNC_DECL tmat2x4<T>& operator++ ();
+00144                 GLM_FUNC_DECL tmat2x4<T>& operator-- ();
+00145         };
+00146 
+00147         // Binary operators
+00148         template <typename T> 
+00149         tmat2x4<T> operator+ (
+00150                 tmat2x4<T> const & m, 
+00151                 typename tmat2x4<T>::value_type const & s);
+00152             
+00153         template <typename T> 
+00154         tmat2x4<T> operator+ (
+00155                 tmat2x4<T> const & m1, 
+00156                 tmat2x4<T> const & m2);
+00157             
+00158         template <typename T> 
+00159         tmat2x4<T> operator- (
+00160                 tmat2x4<T> const & m, 
+00161                 typename tmat2x4<T>::value_type const & s);
+00162 
+00163         template <typename T> 
+00164         tmat2x4<T> operator- (
+00165                 tmat2x4<T> const & m1, 
+00166                 tmat2x4<T> const & m2);
+00167 
+00168         template <typename T> 
+00169         tmat2x4<T> operator* (
+00170                 tmat2x4<T> const & m, 
+00171                 typename tmat2x4<T>::value_type const & s);
+00172 
+00173         template <typename T> 
+00174         tmat2x4<T> operator* (
+00175                 typename tmat2x4<T>::value_type const & s, 
+00176                 tmat2x4<T> const & m);
+00177 
+00178         template <typename T>
+00179         typename tmat2x4<T>::col_type operator* (
+00180                 tmat2x4<T> const & m, 
+00181                 typename tmat2x4<T>::row_type const & v);
+00182 
+00183         template <typename T> 
+00184         typename tmat2x4<T>::row_type operator* (
+00185                 typename tmat2x4<T>::col_type const & v, 
+00186                 tmat2x4<T> const & m);
+00187 
+00188         template <typename T>
+00189         tmat4x4<T> operator* (
+00190                 tmat2x4<T> const & m1, 
+00191                 tmat4x2<T> const & m2);
+00192                 
+00193         template <typename T>
+00194         tmat2x4<T> operator* (
+00195                 tmat2x4<T> const & m1, 
+00196                 tmat2x2<T> const & m2);
+00197                 
+00198         template <typename T>
+00199         tmat3x4<T> operator* (
+00200                 tmat2x4<T> const & m1, 
+00201                 tmat3x2<T> const & m2);
+00202 
+00203         template <typename T> 
+00204         tmat2x4<T> operator/ (
+00205                 tmat2x4<T> const & m, 
+00206                 typename tmat2x4<T>::value_type const & s);
+00207 
+00208         template <typename T> 
+00209         tmat2x4<T> operator/ (
+00210                 typename tmat2x4<T>::value_type const & s, 
+00211                 tmat2x4<T> const & m);
+00212 
+00213         // Unary constant operators
+00214         template <typename T> 
+00215         tmat2x4<T> const operator-  (
+00216                 tmat2x4<T> const & m);
+00217 
+00218         template <typename T> 
+00219         tmat2x4<T> const operator-- (
+00220                 tmat2x4<T> const & m, 
+00221                 int);
+00222 
+00223         template <typename T> 
+00224         tmat2x4<T> const operator++ (
+00225                 tmat2x4<T> const & m, 
+00226                 int);
+00227 
+00228 } //namespace detail
+00229 
+00232 
+00238         typedef detail::tmat2x4<lowp_float>             lowp_mat2x4;
+00239 
+00245         typedef detail::tmat2x4<mediump_float>  mediump_mat2x4;
+00246 
+00252         typedef detail::tmat2x4<highp_float>    highp_mat2x4;
+00253 
+00255 }//namespace glm
+00256 
+00257 #ifndef GLM_EXTERNAL_TEMPLATE
+00258 #include "type_mat2x4.inl"
+00259 #endif
+00260 
+00261 #endif //glm_core_type_mat2x4
+
+
+ + + + + + diff --git a/doc/api/a00101.html b/doc/api/a00101.html new file mode 100644 index 00000000..3d6adfc4 --- /dev/null +++ b/doc/api/a00101.html @@ -0,0 +1,89 @@ + + + + + +type_mat3x2.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_mat3x2.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef detail::tmat3x2
+< highp_float > 
highp_mat3x2
typedef detail::tmat3x2
+< lowp_float > 
lowp_mat3x2
typedef detail::tmat3x2
+< mediump_float > 
mediump_mat3x2
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2006-08-05 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_mat3x2.hpp.

+
+ + + + + + diff --git a/doc/api/a00101_source.html b/doc/api/a00101_source.html new file mode 100644 index 00000000..7a96ff6b --- /dev/null +++ b/doc/api/a00101_source.html @@ -0,0 +1,313 @@ + + + + + +type_mat3x2.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_mat3x2.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_mat3x2
+00030 #define glm_core_type_mat3x2
+00031 
+00032 #include "type_mat.hpp"
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         template <typename T> struct tvec1;
+00038         template <typename T> struct tvec2;
+00039         template <typename T> struct tvec3;
+00040         template <typename T> struct tvec4;
+00041         template <typename T> struct tmat2x2;
+00042         template <typename T> struct tmat2x3;
+00043         template <typename T> struct tmat2x4;
+00044         template <typename T> struct tmat3x2;
+00045         template <typename T> struct tmat3x3;
+00046         template <typename T> struct tmat3x4;
+00047         template <typename T> struct tmat4x2;
+00048         template <typename T> struct tmat4x3;
+00049         template <typename T> struct tmat4x4;
+00050 
+00051         // \brief Template for 3 columns and 2 rows matrix of floating-point numbers.
+00052         // \ingroup core_template
+00053         template <typename T> 
+00054         struct tmat3x2
+00055         {
+00056                 enum ctor{null};
+00057                 typedef T value_type;
+00058                 typedef std::size_t size_type;
+00059                 typedef tvec2<T> col_type;
+00060                 typedef tvec3<T> row_type;
+00061         GLM_FUNC_DECL size_type length() const;
+00062                 static GLM_FUNC_DECL size_type col_size();
+00063                 static GLM_FUNC_DECL size_type row_size();
+00064 
+00065                 typedef tmat3x2<T> type;
+00066                 typedef tmat2x3<T> transpose_type;
+00067 
+00068         private:
+00069                 // Data
+00070                 col_type value[3];
+00071 
+00072         public:
+00073                 // Constructors
+00074                 GLM_FUNC_DECL tmat3x2();
+00075                 GLM_FUNC_DECL tmat3x2(tmat3x2 const & m);
+00076 
+00077                 GLM_FUNC_DECL explicit tmat3x2(
+00078                         ctor);
+00079                 GLM_FUNC_DECL explicit tmat3x2(
+00080                         value_type const & s);
+00081                 GLM_FUNC_DECL explicit tmat3x2(
+00082                         value_type const & x0, value_type const & y0,
+00083                         value_type const & x1, value_type const & y1,
+00084                         value_type const & x2, value_type const & y2);
+00085                 GLM_FUNC_DECL explicit tmat3x2(
+00086                         col_type const & v0, 
+00087                         col_type const & v1,
+00088                         col_type const & v2);
+00089 
+00091                 // Conversions
+00092                 template <typename U> 
+00093                 GLM_FUNC_DECL explicit tmat3x2(
+00094             U const & x);
+00095                         
+00096                 template 
+00097         <
+00098             typename X1, typename Y1, 
+00099             typename X2, typename Y2, 
+00100             typename X3, typename Y3
+00101         > 
+00102                 GLM_FUNC_DECL explicit tmat3x2(
+00103             X1 const & x1, Y1 const & y1, 
+00104             X2 const & x2, Y2 const & y2,
+00105             X3 const & x3, Y3 const & y3);
+00106                         
+00107                 template <typename V1, typename V2, typename V3> 
+00108                 GLM_FUNC_DECL explicit tmat3x2(
+00109             tvec2<V1> const & v1, 
+00110             tvec2<V2> const & v2,
+00111             tvec2<V3> const & v3);
+00112             
+00113                 // Matrix conversions
+00114                 template <typename U> 
+00115                 GLM_FUNC_DECL explicit tmat3x2(tmat3x2<U> const & m);
+00116 
+00117                 GLM_FUNC_DECL explicit tmat3x2(tmat2x2<T> const & x);
+00118                 GLM_FUNC_DECL explicit tmat3x2(tmat3x3<T> const & x);
+00119                 GLM_FUNC_DECL explicit tmat3x2(tmat4x4<T> const & x);
+00120                 GLM_FUNC_DECL explicit tmat3x2(tmat2x3<T> const & x);
+00121                 GLM_FUNC_DECL explicit tmat3x2(tmat2x4<T> const & x);
+00122                 GLM_FUNC_DECL explicit tmat3x2(tmat3x4<T> const & x);
+00123                 GLM_FUNC_DECL explicit tmat3x2(tmat4x2<T> const & x);
+00124                 GLM_FUNC_DECL explicit tmat3x2(tmat4x3<T> const & x);
+00125 
+00126                 // Accesses
+00127                 GLM_FUNC_DECL col_type & operator[](size_type i);
+00128                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+00129 
+00130                 // Unary updatable operators
+00131                 GLM_FUNC_DECL tmat3x2<T> & operator=  (tmat3x2<T> const & m);
+00132                 template <typename U> 
+00133                 GLM_FUNC_DECL tmat3x2<T> & operator=  (tmat3x2<U> const & m);
+00134                 template <typename U> 
+00135                 GLM_FUNC_DECL tmat3x2<T> & operator+= (U const & s);
+00136                 template <typename U> 
+00137                 GLM_FUNC_DECL tmat3x2<T> & operator+= (tmat3x2<U> const & m);
+00138                 template <typename U> 
+00139                 GLM_FUNC_DECL tmat3x2<T> & operator-= (U const & s);
+00140                 template <typename U> 
+00141                 GLM_FUNC_DECL tmat3x2<T> & operator-= (tmat3x2<U> const & m);
+00142                 template <typename U> 
+00143                 GLM_FUNC_DECL tmat3x2<T> & operator*= (U const & s);
+00144                 template <typename U> 
+00145                 GLM_FUNC_DECL tmat3x2<T> & operator*= (tmat3x2<U> const & m);
+00146                 template <typename U> 
+00147                 GLM_FUNC_DECL tmat3x2<T> & operator/= (U const & s);
+00148 
+00149                 GLM_FUNC_DECL tmat3x2<T> & operator++ ();
+00150                 GLM_FUNC_DECL tmat3x2<T> & operator-- ();
+00151         };
+00152 
+00153         // Binary operators
+00154         template <typename T> 
+00155         tmat3x2<T> operator+ (
+00156                 tmat3x2<T> const & m, 
+00157                 typename tmat3x2<T>::value_type const & s);
+00158             
+00159         template <typename T> 
+00160         tmat3x2<T> operator+ (
+00161                 tmat3x2<T> const & m1, 
+00162                 tmat3x2<T> const & m2);
+00163             
+00164         template <typename T> 
+00165         tmat3x2<T> operator- (
+00166                 tmat3x2<T> const & m, 
+00167                 typename tmat3x2<T>::value_type const & s);
+00168 
+00169         template <typename T> 
+00170         tmat3x2<T> operator- (
+00171                 tmat3x2<T> const & m1, 
+00172                 tmat3x2<T> const & m2);
+00173 
+00174         template <typename T> 
+00175         tmat3x2<T> operator* (
+00176                 tmat3x2<T> const & m, 
+00177                 typename tmat3x2<T>::value_type const & s);
+00178 
+00179         template <typename T> 
+00180         tmat3x2<T> operator* (
+00181                 typename tmat3x2<T>::value_type const & s, 
+00182                 tmat3x2<T> const & m);
+00183 
+00184         template <typename T>
+00185         typename tmat3x2<T>::col_type operator* (
+00186                 tmat3x2<T> const & m, 
+00187                 typename tmat3x2<T>::row_type const & v);
+00188 
+00189         template <typename T> 
+00190         typename tmat3x2<T>::row_type operator* (
+00191                 typename tmat3x2<T>::col_type const & v,
+00192                 tmat3x2<T> const & m);
+00193 
+00194         template <typename T>
+00195         tmat2x2<T> operator* (
+00196                 tmat3x2<T> const & m1, 
+00197                 tmat2x3<T> const & m2);
+00198                 
+00199         template <typename T>
+00200         tmat3x2<T> operator* (
+00201                 tmat3x2<T> const & m1, 
+00202                 tmat3x3<T> const & m2);
+00203                 
+00204         template <typename T>
+00205         tmat4x2<T> operator* (
+00206                 tmat3x2<T> const & m1, 
+00207                 tmat4x3<T> const & m2);
+00208 
+00209         template <typename T> 
+00210         tmat3x2<T> operator/ (
+00211                 tmat3x2<T> const & m, 
+00212                 typename tmat3x2<T>::value_type const & s);
+00213 
+00214         template <typename T> 
+00215         tmat3x2<T> operator/ (
+00216                 typename tmat3x2<T>::value_type const & s, 
+00217                 tmat3x2<T> const & m);
+00218 
+00219         // Unary constant operators
+00220         template <typename T> 
+00221         tmat3x2<T> const operator-  (
+00222                 tmat3x2<T> const & m);
+00223 
+00224         template <typename T> 
+00225         tmat3x2<T> const operator-- (
+00226                 tmat3x2<T> const & m, 
+00227                 int);
+00228 
+00229         template <typename T> 
+00230         tmat3x2<T> const operator++ (
+00231                 tmat3x2<T> const & m, 
+00232                 int);
+00233 
+00234 } //namespace detail
+00235 
+00238 
+00244         typedef detail::tmat3x2<lowp_float>             lowp_mat3x2;
+00245     
+00251         typedef detail::tmat3x2<mediump_float>  mediump_mat3x2;
+00252     
+00258         typedef detail::tmat3x2<highp_float>    highp_mat3x2;
+00259 
+00261 }//namespace glm
+00262 
+00263 #ifndef GLM_EXTERNAL_TEMPLATE
+00264 #include "type_mat3x2.inl"
+00265 #endif
+00266 
+00267 #endif //glm_core_type_mat3x2
+
+
+ + + + + + diff --git a/doc/api/a00102.html b/doc/api/a00102.html new file mode 100644 index 00000000..75cefa3a --- /dev/null +++ b/doc/api/a00102.html @@ -0,0 +1,95 @@ + + + + + +type_mat3x3.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_mat3x3.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Typedefs

typedef detail::tmat3x3
+< highp_float > 
highp_mat3
typedef detail::tmat3x3
+< highp_float > 
highp_mat3x3
typedef detail::tmat3x3
+< lowp_float > 
lowp_mat3
typedef detail::tmat3x3
+< lowp_float > 
lowp_mat3x3
typedef detail::tmat3x3
+< mediump_float > 
mediump_mat3
typedef detail::tmat3x3
+< mediump_float > 
mediump_mat3x3
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2005-01-27 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_mat3x3.hpp.

+
+ + + + + + diff --git a/doc/api/a00102_source.html b/doc/api/a00102_source.html new file mode 100644 index 00000000..2822f3ed --- /dev/null +++ b/doc/api/a00102_source.html @@ -0,0 +1,348 @@ + + + + + +type_mat3x3.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_mat3x3.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_mat3x3
+00030 #define glm_core_type_mat3x3
+00031 
+00032 #include "type_mat.hpp"
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         template <typename T> struct tvec1;
+00038         template <typename T> struct tvec2;
+00039         template <typename T> struct tvec3;
+00040         template <typename T> struct tvec4;
+00041         template <typename T> struct tmat2x2;
+00042         template <typename T> struct tmat2x3;
+00043         template <typename T> struct tmat2x4;
+00044         template <typename T> struct tmat3x2;
+00045         template <typename T> struct tmat3x3;
+00046         template <typename T> struct tmat3x4;
+00047         template <typename T> struct tmat4x2;
+00048         template <typename T> struct tmat4x3;
+00049         template <typename T> struct tmat4x4;
+00050 
+00051         // @brief Template for 3 * 3 matrix of floating-point numbers.
+00052         // @ingroup core_template
+00053         template <typename T> 
+00054         struct tmat3x3
+00055         {
+00056                 enum ctor{null};
+00057                 typedef T value_type;
+00058                 typedef std::size_t size_type;
+00059                 typedef tvec3<T> col_type;
+00060                 typedef tvec3<T> row_type;
+00061         GLM_FUNC_DECL size_type length() const;
+00062                 static GLM_FUNC_DECL size_type col_size();
+00063                 static GLM_FUNC_DECL size_type row_size();
+00064 
+00065                 typedef tmat3x3<T> type;
+00066                 typedef tmat3x3<T> transpose_type;
+00067 
+00068         public:
+00071                 GLM_FUNC_DECL tmat3x3<T> _inverse() const;
+00073         
+00074         private:
+00075                 // Data
+00076                 col_type value[3];
+00077 
+00078         public:
+00079                 // Constructors
+00080                 GLM_FUNC_DECL tmat3x3();
+00081                 GLM_FUNC_DECL tmat3x3(tmat3x3 const & m);
+00082 
+00083                 GLM_FUNC_DECL explicit tmat3x3(
+00084                         ctor Null);
+00085                 GLM_FUNC_DECL explicit tmat3x3(
+00086                         value_type const & s);
+00087                 GLM_FUNC_DECL explicit tmat3x3(
+00088                         value_type const & x0, value_type const & y0, value_type const & z0,
+00089                         value_type const & x1, value_type const & y1, value_type const & z1,
+00090                         value_type const & x2, value_type const & y2, value_type const & z2);
+00091                 GLM_FUNC_DECL explicit tmat3x3(
+00092                         col_type const & v0, 
+00093                         col_type const & v1,
+00094                         col_type const & v2);
+00095 
+00097                 // Conversions
+00098                 template <typename U> 
+00099                 GLM_FUNC_DECL explicit tmat3x3(
+00100             U const & x);
+00101                         
+00102                 template 
+00103         <
+00104             typename X1, typename Y1, typename Z1, 
+00105             typename X2, typename Y2, typename Z2, 
+00106             typename X3, typename Y3, typename Z3
+00107         > 
+00108                 GLM_FUNC_DECL explicit tmat3x3(
+00109             X1 const & x1, Y1 const & y1, Z1 const & z1, 
+00110             X2 const & x2, Y2 const & y2, Z2 const & z2, 
+00111             X3 const & x3, Y3 const & y3, Z3 const & z3);
+00112                         
+00113                 template <typename V1, typename V2, typename V3> 
+00114                 GLM_FUNC_DECL explicit tmat3x3(
+00115             tvec3<V1> const & v1, 
+00116             tvec3<V2> const & v2,
+00117             tvec3<V3> const & v3);
+00118             
+00119                 // Matrix conversions
+00120                 template <typename U> 
+00121                 GLM_FUNC_DECL explicit tmat3x3(tmat3x3<U> const & m);
+00122 
+00123                 GLM_FUNC_DECL explicit tmat3x3(tmat2x2<T> const & x);
+00124                 GLM_FUNC_DECL explicit tmat3x3(tmat4x4<T> const & x);
+00125                 GLM_FUNC_DECL explicit tmat3x3(tmat2x3<T> const & x);
+00126                 GLM_FUNC_DECL explicit tmat3x3(tmat3x2<T> const & x);
+00127                 GLM_FUNC_DECL explicit tmat3x3(tmat2x4<T> const & x);
+00128                 GLM_FUNC_DECL explicit tmat3x3(tmat4x2<T> const & x);
+00129                 GLM_FUNC_DECL explicit tmat3x3(tmat3x4<T> const & x);
+00130                 GLM_FUNC_DECL explicit tmat3x3(tmat4x3<T> const & x);
+00131 
+00132                 // Accesses
+00133                 GLM_FUNC_DECL col_type & operator[](size_type i);
+00134                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+00135 
+00136                 // Unary updatable operators
+00137                 GLM_FUNC_DECL tmat3x3<T>& operator=  (tmat3x3<T> const & m);
+00138                 template <typename U> 
+00139                 GLM_FUNC_DECL tmat3x3<T>& operator=  (tmat3x3<U> const & m);
+00140                 template <typename U> 
+00141                 GLM_FUNC_DECL tmat3x3<T>& operator+= (U const & s);
+00142                 template <typename U> 
+00143                 GLM_FUNC_DECL tmat3x3<T>& operator+= (tmat3x3<U> const & m);
+00144                 template <typename U> 
+00145                 GLM_FUNC_DECL tmat3x3<T>& operator-= (U const & s);
+00146                 template <typename U> 
+00147                 GLM_FUNC_DECL tmat3x3<T>& operator-= (tmat3x3<U> const & m);
+00148                 template <typename U> 
+00149                 GLM_FUNC_DECL tmat3x3<T>& operator*= (U const & s);
+00150                 template <typename U> 
+00151                 GLM_FUNC_DECL tmat3x3<T>& operator*= (tmat3x3<U> const & m);
+00152                 template <typename U> 
+00153                 GLM_FUNC_DECL tmat3x3<T>& operator/= (U const & s);
+00154                 template <typename U> 
+00155                 GLM_FUNC_DECL tmat3x3<T>& operator/= (tmat3x3<U> const & m);
+00156                 GLM_FUNC_DECL tmat3x3<T>& operator++ ();
+00157                 GLM_FUNC_DECL tmat3x3<T>& operator-- ();
+00158         };
+00159 
+00160         // Binary operators
+00161         template <typename T> 
+00162         tmat3x3<T> operator+ (
+00163                 tmat3x3<T> const & m, 
+00164                 typename tmat3x3<T>::value_type const & s);
+00165 
+00166         template <typename T> 
+00167         tmat3x3<T> operator+ (
+00168                 typename tmat3x3<T>::value_type const & s, 
+00169                 tmat3x3<T> const & m);
+00170 
+00171         template <typename T> 
+00172         tmat3x3<T> operator+ (
+00173                 tmat3x3<T> const & m1, 
+00174                 tmat3x3<T> const & m2);
+00175             
+00176         template <typename T> 
+00177         tmat3x3<T> operator- (
+00178                 tmat3x3<T> const & m, 
+00179                 typename tmat3x3<T>::value_type const & s);
+00180 
+00181         template <typename T> 
+00182         tmat3x3<T> operator- (
+00183                 typename tmat3x3<T>::value_type const & s, 
+00184                 tmat3x3<T> const & m);
+00185 
+00186         template <typename T> 
+00187         tmat3x3<T> operator- (
+00188                 tmat3x3<T> const & m1, 
+00189                 tmat3x3<T> const & m2);
+00190 
+00191         template <typename T> 
+00192         tmat3x3<T> operator* (
+00193                 tmat3x3<T> const & m, 
+00194                 typename tmat3x3<T>::value_type const & s);
+00195 
+00196         template <typename T> 
+00197         tmat3x3<T> operator* (
+00198                 typename tmat3x3<T>::value_type const & s, 
+00199                 tmat3x3<T> const & m);
+00200 
+00201         template <typename T> 
+00202         typename tmat3x3<T>::col_type operator* (
+00203                 tmat3x3<T> const & m, 
+00204                 typename tmat3x3<T>::row_type const & v);
+00205 
+00206         template <typename T> 
+00207         typename tmat3x3<T>::row_type operator* (
+00208                 typename tmat3x3<T>::col_type const & v, 
+00209                 tmat3x3<T> const & m);
+00210 
+00211         template <typename T> 
+00212         tmat3x3<T> operator* (
+00213                 tmat3x3<T> const & m1, 
+00214                 tmat3x3<T> const & m2);
+00215                 
+00216         template <typename T>
+00217         tmat2x3<T> operator* (
+00218                 tmat3x3<T> const & m1, 
+00219                 tmat2x3<T> const & m2);
+00220                 
+00221         template <typename T>
+00222         tmat4x3<T> operator* (
+00223                 tmat3x3<T> const & m1, 
+00224                 tmat4x3<T> const & m2);
+00225 
+00226         template <typename T> 
+00227         tmat3x3<T> operator/ (
+00228                 tmat3x3<T> const & m, 
+00229                 typename tmat3x3<T>::value_type const & s);
+00230 
+00231         template <typename T> 
+00232         tmat3x3<T> operator/ (
+00233                 typename tmat3x3<T>::value_type const & s, 
+00234                 tmat3x3<T> const & m);
+00235 
+00236         template <typename T> 
+00237         typename tmat3x3<T>::col_type operator/ (
+00238                 tmat3x3<T> const & m, 
+00239                 typename tmat3x3<T>::row_type const & v);
+00240 
+00241         template <typename T> 
+00242         typename tmat3x3<T>::row_type operator/ (
+00243                 typename tmat3x3<T>::col_type const & v, 
+00244                 tmat3x3<T> const & m);
+00245 
+00246         template <typename T> 
+00247         tmat3x3<T> operator/ (
+00248                 tmat3x3<T> const & m1, 
+00249                 tmat3x3<T> const & m2);
+00250 
+00251         // Unary constant operators
+00252         template <typename T> 
+00253         tmat3x3<T> const operator-  (
+00254                 tmat3x3<T> const & m);
+00255 
+00256         template <typename T> 
+00257         tmat3x3<T> const operator-- (
+00258                 tmat3x3<T> const & m, 
+00259                 int);
+00260 
+00261         template <typename T> 
+00262         tmat3x3<T> const operator++ (
+00263                 tmat3x3<T> const & m, 
+00264                 int);
+00265 
+00266 } //namespace detail
+00267 
+00270 
+00276         typedef detail::tmat3x3<lowp_float>             lowp_mat3;
+00277         
+00283         typedef detail::tmat3x3<mediump_float>  mediump_mat3;
+00284         
+00290         typedef detail::tmat3x3<highp_float>    highp_mat3;
+00291 
+00297         typedef detail::tmat3x3<lowp_float>             lowp_mat3x3;
+00298 
+00304         typedef detail::tmat3x3<mediump_float>  mediump_mat3x3;
+00305 
+00311         typedef detail::tmat3x3<highp_float>    highp_mat3x3;
+00312 
+00314 }//namespace glm
+00315 
+00316 #ifndef GLM_EXTERNAL_TEMPLATE
+00317 #include "type_mat3x3.inl"
+00318 #endif
+00319 
+00320 #endif //glm_core_type_mat3x3
+
+
+ + + + + + diff --git a/doc/api/a00103.html b/doc/api/a00103.html new file mode 100644 index 00000000..a48cf7d7 --- /dev/null +++ b/doc/api/a00103.html @@ -0,0 +1,89 @@ + + + + + +type_mat3x4.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_mat3x4.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef detail::tmat3x4
+< highp_float > 
highp_mat3x4
typedef detail::tmat3x4
+< lowp_float > 
lowp_mat3x4
typedef detail::tmat3x4
+< mediump_float > 
mediump_mat3x4
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2006-08-05 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_mat3x4.hpp.

+
+ + + + + + diff --git a/doc/api/a00103_source.html b/doc/api/a00103_source.html new file mode 100644 index 00000000..38d2ae47 --- /dev/null +++ b/doc/api/a00103_source.html @@ -0,0 +1,313 @@ + + + + + +type_mat3x4.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_mat3x4.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_mat3x4
+00030 #define glm_core_type_mat3x4
+00031 
+00032 #include "type_mat.hpp"
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         template <typename T> struct tvec1;
+00038         template <typename T> struct tvec2;
+00039         template <typename T> struct tvec3;
+00040         template <typename T> struct tvec4;
+00041         template <typename T> struct tmat2x2;
+00042         template <typename T> struct tmat2x3;
+00043         template <typename T> struct tmat2x4;
+00044         template <typename T> struct tmat3x2;
+00045         template <typename T> struct tmat3x3;
+00046         template <typename T> struct tmat3x4;
+00047         template <typename T> struct tmat4x2;
+00048         template <typename T> struct tmat4x3;
+00049         template <typename T> struct tmat4x4;
+00050 
+00051         // \brief Template for 3 columns and 4 rows matrix of floating-point numbers.
+00052         // \ingroup core_template
+00053         template <typename T> 
+00054         struct tmat3x4
+00055         {
+00056                 enum ctor{null};
+00057                 typedef T value_type;
+00058                 typedef std::size_t size_type;
+00059                 typedef tvec4<T> col_type;
+00060                 typedef tvec3<T> row_type;
+00061         GLM_FUNC_DECL size_type length() const;
+00062                 static GLM_FUNC_DECL size_type col_size();
+00063                 static GLM_FUNC_DECL size_type row_size();
+00064 
+00065                 typedef tmat3x4<T> type;
+00066                 typedef tmat4x3<T> transpose_type;
+00067 
+00068         private:
+00069                 // Data 
+00070                 col_type value[3];
+00071 
+00072         public:
+00073                 // Constructors
+00074                 GLM_FUNC_DECL tmat3x4();
+00075                 GLM_FUNC_DECL tmat3x4(tmat3x4 const & m);
+00076 
+00077                 GLM_FUNC_DECL explicit tmat3x4(
+00078                         ctor Null);
+00079                 GLM_FUNC_DECL explicit tmat3x4(
+00080                         value_type const & s);
+00081                 GLM_FUNC_DECL explicit tmat3x4(
+00082                         value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
+00083                         value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1,
+00084                         value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2);
+00085                 GLM_FUNC_DECL explicit tmat3x4(
+00086                         col_type const & v0, 
+00087                         col_type const & v1,
+00088                         col_type const & v2);
+00089 
+00091                 // Conversions
+00092                 template <typename U> 
+00093                 GLM_FUNC_DECL explicit tmat3x4(
+00094             U const & x);
+00095                         
+00096                 template 
+00097         <
+00098             typename X1, typename Y1, typename Z1, typename W1, 
+00099             typename X2, typename Y2, typename Z2, typename W2, 
+00100             typename X3, typename Y3, typename Z3, typename W3 
+00101         > 
+00102                 GLM_FUNC_DECL explicit tmat3x4(
+00103             X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1, 
+00104             X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2, 
+00105             X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3);
+00106                         
+00107                 template <typename V1, typename V2, typename V3> 
+00108                 GLM_FUNC_DECL explicit tmat3x4(
+00109             tvec4<V1> const & v1, 
+00110             tvec4<V2> const & v2,
+00111             tvec4<V3> const & v3);
+00112             
+00113                 // Matrix conversion
+00114                 template <typename U> 
+00115                 GLM_FUNC_DECL explicit tmat3x4(tmat3x4<U> const & m);
+00116 
+00117                 GLM_FUNC_DECL explicit tmat3x4(tmat2x2<T> const & x);
+00118                 GLM_FUNC_DECL explicit tmat3x4(tmat3x3<T> const & x);
+00119                 GLM_FUNC_DECL explicit tmat3x4(tmat4x4<T> const & x);
+00120                 GLM_FUNC_DECL explicit tmat3x4(tmat2x3<T> const & x);
+00121                 GLM_FUNC_DECL explicit tmat3x4(tmat3x2<T> const & x);
+00122                 GLM_FUNC_DECL explicit tmat3x4(tmat2x4<T> const & x);
+00123                 GLM_FUNC_DECL explicit tmat3x4(tmat4x2<T> const & x);
+00124                 GLM_FUNC_DECL explicit tmat3x4(tmat4x3<T> const & x);
+00125 
+00126                 // Accesses
+00127                 col_type & operator[](size_type i);
+00128                 col_type const & operator[](size_type i) const;
+00129 
+00130                 // Unary updatable operators
+00131                 GLM_FUNC_DECL tmat3x4<T> & operator=  (tmat3x4<T> const & m);
+00132                 template <typename U> 
+00133                 GLM_FUNC_DECL tmat3x4<T> & operator=  (tmat3x4<U> const & m);
+00134                 template <typename U> 
+00135                 GLM_FUNC_DECL tmat3x4<T> & operator+= (U const & s);
+00136                 template <typename U> 
+00137                 GLM_FUNC_DECL tmat3x4<T> & operator+= (tmat3x4<U> const & m);
+00138                 template <typename U> 
+00139                 GLM_FUNC_DECL tmat3x4<T> & operator-= (U const & s);
+00140                 template <typename U> 
+00141                 GLM_FUNC_DECL tmat3x4<T> & operator-= (tmat3x4<U> const & m);
+00142                 template <typename U> 
+00143                 GLM_FUNC_DECL tmat3x4<T> & operator*= (U const & s);
+00144                 template <typename U> 
+00145                 GLM_FUNC_DECL tmat3x4<T> & operator*= (tmat3x4<U> const & m);
+00146                 template <typename U> 
+00147                 GLM_FUNC_DECL tmat3x4<T> & operator/= (U const & s);
+00148 
+00149                 GLM_FUNC_DECL tmat3x4<T> & operator++ ();
+00150                 GLM_FUNC_DECL tmat3x4<T> & operator-- ();
+00151         };
+00152 
+00153         // Binary operators
+00154         template <typename T> 
+00155         tmat3x4<T> operator+ (
+00156                 tmat3x4<T> const & m, 
+00157                 typename tmat3x4<T>::value_type const & s);
+00158             
+00159         template <typename T> 
+00160         tmat3x4<T> operator+ (
+00161                 tmat3x4<T> const & m1, 
+00162                 tmat3x4<T> const & m2);
+00163             
+00164         template <typename T> 
+00165         tmat3x4<T> operator- (
+00166                 tmat3x4<T> const & m, 
+00167                 typename tmat3x4<T>::value_type const & s);
+00168 
+00169         template <typename T> 
+00170         tmat3x4<T> operator- (
+00171                 tmat3x4<T> const & m1, 
+00172                 tmat3x4<T> const & m2);
+00173 
+00174         template <typename T> 
+00175         tmat3x4<T> operator* (
+00176                 tmat3x4<T> const & m, 
+00177                 typename tmat3x4<T>::value_type const & s);
+00178 
+00179         template <typename T> 
+00180         tmat3x4<T> operator* (
+00181                 typename tmat3x4<T>::value_type const & s, 
+00182                 tmat3x4<T> const & m);
+00183 
+00184         template <typename T>
+00185         typename tmat3x4<T>::col_type operator* (
+00186                 tmat3x4<T> const & m, 
+00187                 typename tmat3x4<T>::row_type const & v);
+00188 
+00189         template <typename T> 
+00190         typename tmat3x4<T>::row_type operator* (
+00191                 typename tmat3x4<T>::col_type const & v, 
+00192                 tmat3x4<T> const & m);
+00193 
+00194         template <typename T>
+00195         tmat4x4<T> operator* (
+00196                 tmat3x4<T> const & m1, 
+00197                 tmat4x3<T> const & m2);
+00198                 
+00199         template <typename T>
+00200         tmat2x4<T> operator* (
+00201                 tmat3x4<T> const & m1, 
+00202                 tmat2x3<T> const & m2);
+00203                 
+00204         template <typename T>
+00205         tmat3x4<T> operator* (
+00206                 tmat3x4<T> const & m1, 
+00207                 tmat3x3<T> const & m2);
+00208 
+00209         template <typename T> 
+00210         tmat3x4<T> operator/ (
+00211                 tmat3x4<T> const & m, 
+00212                 typename tmat3x4<T>::value_type const & s);
+00213 
+00214         template <typename T> 
+00215         tmat3x4<T> operator/ (
+00216                 typename tmat3x4<T>::value_type const & s, 
+00217                 tmat3x4<T> const & m);
+00218 
+00219         // Unary constant operators
+00220         template <typename T> 
+00221         tmat3x4<T> const operator-  (
+00222                 tmat3x4<T> const & m);
+00223 
+00224         template <typename T> 
+00225         tmat3x4<T> const operator-- (
+00226                 tmat3x4<T> const & m, 
+00227                 int);
+00228 
+00229         template <typename T> 
+00230         tmat3x4<T> const operator++ (
+00231                 tmat3x4<T> const & m, 
+00232                 int);
+00233 
+00234 }//namespace detail
+00235 
+00238 
+00244         typedef detail::tmat3x4<lowp_float>             lowp_mat3x4;
+00245 
+00251         typedef detail::tmat3x4<mediump_float>  mediump_mat3x4;
+00252 
+00258         typedef detail::tmat3x4<highp_float>    highp_mat3x4;
+00259 
+00261 }//namespace glm
+00262 
+00263 #ifndef GLM_EXTERNAL_TEMPLATE
+00264 #include "type_mat3x4.inl"
+00265 #endif
+00266 
+00267 #endif //glm_core_type_mat3x4
+
+
+ + + + + + diff --git a/doc/api/a00104.html b/doc/api/a00104.html new file mode 100644 index 00000000..8359bddd --- /dev/null +++ b/doc/api/a00104.html @@ -0,0 +1,89 @@ + + + + + +type_mat4x2.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_mat4x2.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef detail::tmat4x2
+< highp_float > 
highp_mat4x2
typedef detail::tmat4x2
+< lowp_float > 
lowp_mat4x2
typedef detail::tmat4x2
+< mediump_float > 
mediump_mat4x2
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2006-10-01 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_mat4x2.hpp.

+
+ + + + + + diff --git a/doc/api/a00104_source.html b/doc/api/a00104_source.html new file mode 100644 index 00000000..bc8cefae --- /dev/null +++ b/doc/api/a00104_source.html @@ -0,0 +1,318 @@ + + + + + +type_mat4x2.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_mat4x2.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_mat4x2
+00030 #define glm_core_type_mat4x2
+00031 
+00032 #include "type_mat.hpp"
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         template <typename T> struct tvec1;
+00038         template <typename T> struct tvec2;
+00039         template <typename T> struct tvec3;
+00040         template <typename T> struct tvec4;
+00041         template <typename T> struct tmat2x2;
+00042         template <typename T> struct tmat2x3;
+00043         template <typename T> struct tmat2x4;
+00044         template <typename T> struct tmat3x2;
+00045         template <typename T> struct tmat3x3;
+00046         template <typename T> struct tmat3x4;
+00047         template <typename T> struct tmat4x2;
+00048         template <typename T> struct tmat4x3;
+00049         template <typename T> struct tmat4x4;
+00050 
+00051         // \brief Template for 4 columns and 2 rows matrix of floating-point numbers.
+00052         // \ingroup core_template
+00053         template <typename T> 
+00054         struct tmat4x2
+00055         {
+00056                 enum ctor{null};
+00057                 typedef T value_type;
+00058                 typedef std::size_t size_type;
+00059                 typedef tvec2<T> col_type;
+00060                 typedef tvec4<T> row_type;
+00061         GLM_FUNC_DECL size_type length() const;
+00062                 static GLM_FUNC_DECL size_type col_size();
+00063                 static GLM_FUNC_DECL size_type row_size();
+00064 
+00065                 typedef tmat4x2<T> type;
+00066                 typedef tmat2x4<T> transpose_type;
+00067 
+00068         private:
+00069                 // Data 
+00070                 col_type value[4];
+00071 
+00072         public:
+00073                 // Constructors
+00074                 GLM_FUNC_DECL tmat4x2();
+00075                 GLM_FUNC_DECL tmat4x2(tmat4x2 const & m);
+00076 
+00077                 GLM_FUNC_DECL explicit tmat4x2(
+00078                         ctor Null);
+00079                 GLM_FUNC_DECL explicit tmat4x2(
+00080                         value_type const & x);
+00081                 GLM_FUNC_DECL explicit tmat4x2(
+00082                         value_type const & x0, value_type const & y0,
+00083                         value_type const & x1, value_type const & y1,
+00084                         value_type const & x2, value_type const & y2,
+00085                         value_type const & x3, value_type const & y3);
+00086                 GLM_FUNC_DECL explicit tmat4x2(
+00087                         col_type const & v0, 
+00088                         col_type const & v1,
+00089                         col_type const & v2,
+00090                         col_type const & v3);
+00091             
+00093                 // Conversions
+00094                 template <typename U> 
+00095                 GLM_FUNC_DECL explicit tmat4x2(
+00096             U const & x);
+00097                         
+00098                 template 
+00099         <
+00100             typename X1, typename Y1, 
+00101             typename X2, typename Y2, 
+00102             typename X3, typename Y3,
+00103             typename X4, typename Y4
+00104         > 
+00105                 GLM_FUNC_DECL explicit tmat4x2(
+00106             X1 const & x1, Y1 const & y1, 
+00107             X2 const & x2, Y2 const & y2,
+00108             X3 const & x3, Y3 const & y3,
+00109             X4 const & x4, Y4 const & y4);
+00110                         
+00111                 template <typename V1, typename V2, typename V3, typename V4> 
+00112                 GLM_FUNC_DECL explicit tmat4x2(
+00113             tvec2<V1> const & v1, 
+00114             tvec2<V2> const & v2,
+00115             tvec2<V3> const & v3,
+00116             tvec2<V4> const & v4);
+00117             
+00118                 // Matrix conversions
+00119                 template <typename U> 
+00120                 GLM_FUNC_DECL explicit tmat4x2(tmat4x2<U> const & m);
+00121                         
+00122                 GLM_FUNC_DECL explicit tmat4x2(tmat2x2<T> const & x);
+00123                 GLM_FUNC_DECL explicit tmat4x2(tmat3x3<T> const & x);
+00124                 GLM_FUNC_DECL explicit tmat4x2(tmat4x4<T> const & x);
+00125                 GLM_FUNC_DECL explicit tmat4x2(tmat2x3<T> const & x);
+00126                 GLM_FUNC_DECL explicit tmat4x2(tmat3x2<T> const & x);
+00127                 GLM_FUNC_DECL explicit tmat4x2(tmat2x4<T> const & x);
+00128                 GLM_FUNC_DECL explicit tmat4x2(tmat4x3<T> const & x);
+00129                 GLM_FUNC_DECL explicit tmat4x2(tmat3x4<T> const & x);
+00130 
+00131                 // Accesses
+00132                 GLM_FUNC_DECL col_type & operator[](size_type i);
+00133                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+00134 
+00135                 // Unary updatable operators
+00136                 GLM_FUNC_DECL tmat4x2<T>& operator=  (tmat4x2<T> const & m);
+00137                 template <typename U> 
+00138                 GLM_FUNC_DECL tmat4x2<T>& operator=  (tmat4x2<U> const & m);
+00139                 template <typename U> 
+00140                 GLM_FUNC_DECL tmat4x2<T>& operator+= (U const & s);
+00141                 template <typename U> 
+00142                 GLM_FUNC_DECL tmat4x2<T>& operator+= (tmat4x2<U> const & m);
+00143                 template <typename U> 
+00144                 GLM_FUNC_DECL tmat4x2<T>& operator-= (U const & s);
+00145                 template <typename U> 
+00146                 GLM_FUNC_DECL tmat4x2<T>& operator-= (tmat4x2<U> const & m);
+00147                 template <typename U> 
+00148                 GLM_FUNC_DECL tmat4x2<T>& operator*= (U const & s);
+00149                 template <typename U> 
+00150                 GLM_FUNC_DECL tmat4x2<T>& operator*= (tmat4x2<U> const & m);
+00151                 template <typename U> 
+00152                 GLM_FUNC_DECL tmat4x2<T>& operator/= (U const & s);
+00153 
+00154                 GLM_FUNC_DECL tmat4x2<T>& operator++ ();
+00155                 GLM_FUNC_DECL tmat4x2<T>& operator-- ();
+00156         };
+00157 
+00158         // Binary operators
+00159         template <typename T> 
+00160         tmat4x2<T> operator+ (
+00161                 tmat4x2<T> const & m, 
+00162                 typename tmat4x2<T>::value_type const & s);
+00163             
+00164         template <typename T> 
+00165         tmat4x2<T> operator+ (
+00166                 tmat4x2<T> const & m1, 
+00167                 tmat4x2<T> const & m2);
+00168             
+00169         template <typename T> 
+00170         tmat4x2<T> operator- (
+00171                 tmat4x2<T> const & m, 
+00172                 typename tmat4x2<T>::value_type const & s);
+00173 
+00174         template <typename T> 
+00175         tmat4x2<T> operator- (
+00176                 tmat4x2<T> const & m1, 
+00177                 tmat4x2<T> const & m2);
+00178 
+00179         template <typename T> 
+00180         tmat4x2<T> operator* (
+00181                 tmat4x2<T> const & m, 
+00182                 typename tmat4x2<T>::value_type const & s);
+00183 
+00184         template <typename T> 
+00185         tmat4x2<T> operator* (
+00186                 typename tmat4x2<T>::value_type const & s, 
+00187                 tmat4x2<T> const & m);
+00188 
+00189         template <typename T>
+00190         typename tmat4x2<T>::col_type operator* (
+00191                 tmat4x2<T> const & m, 
+00192                 typename tmat4x2<T>::row_type const & v);
+00193 
+00194         template <typename T> 
+00195         typename tmat4x2<T>::row_type operator* (
+00196                 typename tmat4x2<T>::col_type const & v, 
+00197                 tmat4x2<T> const & m);
+00198 
+00199         template <typename T>
+00200         tmat3x2<T> operator* (
+00201                 tmat4x2<T> const & m1, 
+00202                 tmat3x4<T> const & m2);
+00203                 
+00204         template <typename T>
+00205         tmat4x2<T> operator* (
+00206                 tmat4x2<T> const & m1, 
+00207                 tmat4x4<T> const & m2);
+00208                 
+00209         template <typename T>
+00210         tmat2x3<T> operator* (
+00211                 tmat4x3<T> const & m1, 
+00212                 tmat2x4<T> const & m2);
+00213 
+00214         template <typename T> 
+00215         tmat4x2<T> operator/ (
+00216                 tmat4x2<T> const & m, 
+00217                 typename tmat4x2<T>::value_type const & s);
+00218 
+00219         template <typename T> 
+00220         tmat4x2<T> operator/ (
+00221                 typename tmat4x2<T>::value_type const & s, 
+00222                 tmat4x2<T> const & m);
+00223 
+00224         // Unary constant operators
+00225         template <typename T> 
+00226         tmat4x2<T> const operator-  (
+00227                 tmat4x2<T> const & m);
+00228 
+00229         template <typename T> 
+00230         tmat4x2<T> const operator-- (
+00231                 tmat4x2<T> const & m, 
+00232                 int);
+00233 
+00234         template <typename T> 
+00235         tmat4x2<T> const operator++ (
+00236                 tmat4x2<T> const & m, 
+00237                 int);
+00238 
+00239 } //namespace detail
+00240 
+00243 
+00249         typedef detail::tmat4x2<lowp_float>             lowp_mat4x2;
+00250 
+00256         typedef detail::tmat4x2<mediump_float>  mediump_mat4x2;
+00257 
+00263         typedef detail::tmat4x2<highp_float>    highp_mat4x2;
+00264 
+00266 }//namespace glm
+00267 
+00268 #ifndef GLM_EXTERNAL_TEMPLATE
+00269 #include "type_mat4x2.inl"
+00270 #endif
+00271 
+00272 #endif //glm_core_type_mat4x2
+
+
+ + + + + + diff --git a/doc/api/a00105.html b/doc/api/a00105.html new file mode 100644 index 00000000..7689c423 --- /dev/null +++ b/doc/api/a00105.html @@ -0,0 +1,89 @@ + + + + + +type_mat4x3.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_mat4x3.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef detail::tmat4x3
+< highp_float > 
highp_mat4x3
typedef detail::tmat4x3
+< lowp_float > 
lowp_mat4x3
typedef detail::tmat4x3
+< mediump_float > 
mediump_mat4x3
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2006-08-04 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_mat4x3.hpp.

+
+ + + + + + diff --git a/doc/api/a00105_source.html b/doc/api/a00105_source.html new file mode 100644 index 00000000..ffbb373c --- /dev/null +++ b/doc/api/a00105_source.html @@ -0,0 +1,316 @@ + + + + + +type_mat4x3.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_mat4x3.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_mat4x3
+00030 #define glm_core_type_mat4x3
+00031 
+00032 #include "type_mat.hpp"
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         template <typename T> struct tvec1;
+00038         template <typename T> struct tvec2;
+00039         template <typename T> struct tvec3;
+00040         template <typename T> struct tvec4;
+00041         template <typename T> struct tmat2x2;
+00042         template <typename T> struct tmat2x3;
+00043         template <typename T> struct tmat2x4;
+00044         template <typename T> struct tmat3x2;
+00045         template <typename T> struct tmat3x3;
+00046         template <typename T> struct tmat3x4;
+00047         template <typename T> struct tmat4x2;
+00048         template <typename T> struct tmat4x3;
+00049         template <typename T> struct tmat4x4;
+00050 
+00051         // \brief Template for 4 columns and 3 rows matrix of floating-point numbers.
+00052         // \ingroup core_template
+00053         template <typename T> 
+00054         struct tmat4x3
+00055         {
+00056                 enum ctor{null};
+00057                 typedef T value_type;
+00058                 typedef std::size_t size_type;
+00059                 typedef tvec3<T> col_type;
+00060                 typedef tvec4<T> row_type;
+00061         GLM_FUNC_DECL size_type length() const;
+00062                 static GLM_FUNC_DECL size_type col_size();
+00063                 static GLM_FUNC_DECL size_type row_size();
+00064 
+00065                 typedef tmat4x3<T> type;
+00066                 typedef tmat3x4<T> transpose_type;
+00067 
+00068         private:
+00069                 // Data 
+00070                 col_type value[4];
+00071 
+00072         public:
+00073                 // Constructors
+00074                 GLM_FUNC_DECL tmat4x3();
+00075                 GLM_FUNC_DECL tmat4x3(tmat4x3 const & m);
+00076 
+00077                 GLM_FUNC_DECL explicit tmat4x3(
+00078                         ctor Null);
+00079                 GLM_FUNC_DECL explicit tmat4x3(
+00080                         value_type const & x);
+00081                 GLM_FUNC_DECL explicit tmat4x3(
+00082                         value_type const & x0, value_type const & y0, value_type const & z0,
+00083                         value_type const & x1, value_type const & y1, value_type const & z1,
+00084                         value_type const & x2, value_type const & y2, value_type const & z2,
+00085                         value_type const & x3, value_type const & y3, value_type const & z3);
+00086                 GLM_FUNC_DECL explicit tmat4x3(
+00087                         col_type const & v0, 
+00088                         col_type const & v1,
+00089                         col_type const & v2,
+00090             col_type const & v3);
+00091             
+00093                 // Conversions
+00094                 template <typename U> 
+00095                 GLM_FUNC_DECL explicit tmat4x3(
+00096             U const & x);
+00097                         
+00098                 template <
+00099             typename X1, typename Y1, typename Z1, 
+00100             typename X2, typename Y2, typename Z2, 
+00101             typename X3, typename Y3, typename Z3, 
+00102             typename X4, typename Y4, typename Z4> 
+00103                 GLM_FUNC_DECL explicit tmat4x3(
+00104             X1 const & x1, Y1 const & y1, Z1 const & z1, 
+00105             X2 const & x2, Y2 const & y2, Z2 const & z2, 
+00106             X3 const & x3, Y3 const & y3, Z3 const & z3, 
+00107             X4 const & x4, Y4 const & y4, Z4 const & z4);
+00108                         
+00109                 template <typename V1, typename V2, typename V3, typename V4> 
+00110                 GLM_FUNC_DECL explicit tmat4x3(
+00111             tvec3<V1> const & v1, 
+00112             tvec3<V2> const & v2,
+00113             tvec3<V3> const & v3,
+00114             tvec3<V4> const & v4);
+00115             
+00116                 // Matrix conversions
+00117                 template <typename U> 
+00118                 GLM_FUNC_DECL explicit tmat4x3(tmat4x3<U> const & m);
+00119                         
+00120                 GLM_FUNC_DECL explicit tmat4x3(tmat2x2<T> const & x);
+00121                 GLM_FUNC_DECL explicit tmat4x3(tmat3x3<T> const & x);
+00122                 GLM_FUNC_DECL explicit tmat4x3(tmat4x4<T> const & x);
+00123                 GLM_FUNC_DECL explicit tmat4x3(tmat2x3<T> const & x);
+00124                 GLM_FUNC_DECL explicit tmat4x3(tmat3x2<T> const & x);
+00125                 GLM_FUNC_DECL explicit tmat4x3(tmat2x4<T> const & x);
+00126                 GLM_FUNC_DECL explicit tmat4x3(tmat4x2<T> const & x);
+00127                 GLM_FUNC_DECL explicit tmat4x3(tmat3x4<T> const & x);
+00128 
+00129                 // Accesses
+00130                 col_type & operator[](size_type i);
+00131                 col_type const & operator[](size_type i) const;
+00132 
+00133                 // Unary updatable operators
+00134                 GLM_FUNC_DECL tmat4x3<T> & operator=  (tmat4x3<T> const & m);
+00135                 template <typename U> 
+00136                 GLM_FUNC_DECL tmat4x3<T> & operator=  (tmat4x3<U> const & m);
+00137                 template <typename U> 
+00138                 GLM_FUNC_DECL tmat4x3<T> & operator+= (U const & s);
+00139                 template <typename U> 
+00140                 GLM_FUNC_DECL tmat4x3<T> & operator+= (tmat4x3<U> const & m);
+00141                 template <typename U> 
+00142                 GLM_FUNC_DECL tmat4x3<T> & operator-= (U const & s);
+00143                 template <typename U> 
+00144                 GLM_FUNC_DECL tmat4x3<T> & operator-= (tmat4x3<U> const & m);
+00145                 template <typename U> 
+00146                 GLM_FUNC_DECL tmat4x3<T> & operator*= (U const & s);
+00147                 template <typename U> 
+00148                 GLM_FUNC_DECL tmat4x3<T> & operator*= (tmat4x3<U> const & m);
+00149                 template <typename U> 
+00150                 GLM_FUNC_DECL tmat4x3<T> & operator/= (U const & s);
+00151 
+00152                 GLM_FUNC_DECL tmat4x3<T> & operator++ ();
+00153                 GLM_FUNC_DECL tmat4x3<T> & operator-- ();
+00154         };
+00155 
+00156         // Binary operators
+00157         template <typename T> 
+00158         tmat4x3<T> operator+ (
+00159                 tmat4x3<T> const & m, 
+00160                 typename tmat4x3<T>::value_type const & s);
+00161             
+00162         template <typename T> 
+00163         tmat4x3<T> operator+ (
+00164                 tmat4x3<T> const & m1, 
+00165                 tmat4x3<T> const & m2);
+00166             
+00167         template <typename T> 
+00168         tmat4x3<T> operator- (
+00169                 tmat4x3<T> const & m, 
+00170                 typename tmat4x3<T>::value_type const & s);
+00171 
+00172         template <typename T> 
+00173         tmat4x3<T> operator- (
+00174                 tmat4x3<T> const & m1, 
+00175                 tmat4x3<T> const & m2);
+00176 
+00177         template <typename T> 
+00178         tmat4x3<T> operator* (
+00179                 tmat4x3<T> const & m, 
+00180                 typename tmat4x3<T>::value_type const & s);
+00181 
+00182         template <typename T> 
+00183         tmat4x3<T> operator* (
+00184                 typename tmat4x3<T>::value_type const & s, 
+00185                 tmat4x3<T> const & m);
+00186 
+00187         template <typename T>
+00188         typename tmat4x3<T>::col_type operator* (
+00189                 tmat4x3<T> const & m, 
+00190                 typename tmat4x3<T>::row_type const & v);
+00191 
+00192         template <typename T> 
+00193         typename tmat4x3<T>::row_type operator* (
+00194                 typename tmat4x3<T>::col_type const & v, 
+00195                 tmat4x3<T> const & m);
+00196 
+00197         template <typename T> 
+00198         tmat2x3<T> operator* (
+00199                 tmat4x3<T> const & m1, 
+00200                 tmat2x4<T> const & m2);
+00201 
+00202         template <typename T> 
+00203         tmat3x3<T> operator* (
+00204                 tmat4x3<T> const & m1, 
+00205                 tmat3x4<T> const & m2);
+00206                 
+00207         template <typename T>
+00208         tmat4x3<T> operator* (
+00209                 tmat4x3<T> const & m1, 
+00210                 tmat4x4<T> const & m2);
+00211 
+00212         template <typename T> 
+00213         tmat4x3<T> operator/ (
+00214                 tmat4x3<T> const & m, 
+00215                 typename tmat4x3<T>::value_type const & s);
+00216 
+00217         template <typename T> 
+00218         tmat4x3<T> operator/ (
+00219                 typename tmat4x3<T>::value_type const & s, 
+00220                 tmat4x3<T> const & m);
+00221 
+00222         // Unary constant operators
+00223         template <typename T> 
+00224         tmat4x3<T> const operator- (
+00225                 tmat4x3<T> const & m);
+00226 
+00227         template <typename T> 
+00228         tmat4x3<T> const operator-- (
+00229                 tmat4x3<T> const & m, 
+00230                 int);
+00231 
+00232         template <typename T> 
+00233         tmat4x3<T> const operator++ (
+00234                 tmat4x3<T> const & m, 
+00235                 int);
+00236 
+00237 }//namespace detail
+00238 
+00241 
+00247         typedef detail::tmat4x3<lowp_float>             lowp_mat4x3;
+00248 
+00254         typedef detail::tmat4x3<mediump_float>  mediump_mat4x3;
+00255 
+00261         typedef detail::tmat4x3<highp_float>    highp_mat4x3;
+00262 
+00264 }//namespace glm
+00265 
+00266 #ifndef GLM_EXTERNAL_TEMPLATE
+00267 #include "type_mat4x3.inl"
+00268 #endif //GLM_EXTERNAL_TEMPLATE
+00269 
+00270 #endif//glm_core_type_mat4x3
+
+
+ + + + + + diff --git a/doc/api/a00106.html b/doc/api/a00106.html new file mode 100644 index 00000000..8cb96c6a --- /dev/null +++ b/doc/api/a00106.html @@ -0,0 +1,95 @@ + + + + + +type_mat4x4.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_mat4x4.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Typedefs

typedef detail::tmat4x4
+< highp_float > 
highp_mat4
typedef detail::tmat4x4
+< highp_float > 
highp_mat4x4
typedef detail::tmat4x4
+< lowp_float > 
lowp_mat4
typedef detail::tmat4x4
+< lowp_float > 
lowp_mat4x4
typedef detail::tmat4x4
+< mediump_float > 
mediump_mat4
typedef detail::tmat4x4
+< mediump_float > 
mediump_mat4x4
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2005-01-27 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_mat4x4.hpp.

+
+ + + + + + diff --git a/doc/api/a00106_source.html b/doc/api/a00106_source.html new file mode 100644 index 00000000..7f8a9792 --- /dev/null +++ b/doc/api/a00106_source.html @@ -0,0 +1,349 @@ + + + + + +type_mat4x4.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_mat4x4.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_mat4x4
+00030 #define glm_core_type_mat4x4
+00031 
+00032 #include "type_mat.hpp"
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         template <typename T> struct tvec1;
+00038         template <typename T> struct tvec2;
+00039         template <typename T> struct tvec3;
+00040         template <typename T> struct tvec4;
+00041         template <typename T> struct tmat2x2;
+00042         template <typename T> struct tmat2x3;
+00043         template <typename T> struct tmat2x4;
+00044         template <typename T> struct tmat3x2;
+00045         template <typename T> struct tmat3x3;
+00046         template <typename T> struct tmat3x4;
+00047         template <typename T> struct tmat4x2;
+00048         template <typename T> struct tmat4x3;
+00049         template <typename T> struct tmat4x4;
+00050 
+00051         // \brief Template for 4 * 4 matrix of floating-point numbers.
+00052         // \ingroup core_template
+00053         template <typename T> 
+00054         struct tmat4x4
+00055         {
+00056                 enum ctor{null};
+00057                 typedef T value_type;
+00058                 typedef std::size_t size_type;
+00059                 typedef tvec4<T> col_type;
+00060                 typedef tvec4<T> row_type;
+00061         GLM_FUNC_DECL size_type length() const;
+00062                 static GLM_FUNC_DECL size_type col_size();
+00063                 static GLM_FUNC_DECL size_type row_size();
+00064 
+00065                 typedef tmat4x4<T> type;
+00066                 typedef tmat4x4<T> transpose_type;
+00067 
+00068         public:
+00071                 GLM_FUNC_DECL tmat4x4<T> _inverse() const;
+00073 
+00074         private:
+00075                 // Data 
+00076                 col_type value[4];
+00077 
+00078         public:
+00079                 // Constructors
+00080                 GLM_FUNC_DECL tmat4x4();
+00081                 GLM_FUNC_DECL tmat4x4(tmat4x4 const & m);
+00082 
+00083                 GLM_FUNC_DECL explicit tmat4x4(
+00084                         ctor Null);
+00085                 GLM_FUNC_DECL explicit tmat4x4(
+00086                         value_type const & x);
+00087                 GLM_FUNC_DECL explicit tmat4x4(
+00088                         value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
+00089                         value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1,
+00090                         value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2,
+00091                         value_type const & x3, value_type const & y3, value_type const & z3, value_type const & w3);
+00092                 GLM_FUNC_DECL explicit tmat4x4(
+00093                         col_type const & v0, 
+00094                         col_type const & v1,
+00095                         col_type const & v2,
+00096                         col_type const & v3);
+00097 
+00099                 // Conversions
+00100                 template <typename U> 
+00101                 GLM_FUNC_DECL explicit tmat4x4(
+00102             U const & x);
+00103                         
+00104                 template <
+00105             typename X1, typename Y1, typename Z1, typename W1, 
+00106             typename X2, typename Y2, typename Z2, typename W2, 
+00107             typename X3, typename Y3, typename Z3, typename W3, 
+00108             typename X4, typename Y4, typename Z4, typename W4> 
+00109                 GLM_FUNC_DECL explicit tmat4x4(
+00110             X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1, 
+00111             X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2, 
+00112             X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3, 
+00113             X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4);
+00114                         
+00115                 template <typename V1, typename V2, typename V3, typename V4> 
+00116                 GLM_FUNC_DECL explicit tmat4x4(
+00117             tvec4<V1> const & v1, 
+00118             tvec4<V2> const & v2,
+00119             tvec4<V3> const & v3,
+00120             tvec4<V4> const & v4);
+00121             
+00122                 // Matrix conversions
+00123                 template <typename U> 
+00124                 GLM_FUNC_DECL explicit tmat4x4(tmat4x4<U> const & m);
+00125 
+00126                 GLM_FUNC_DECL explicit tmat4x4(tmat2x2<T> const & x);
+00127                 GLM_FUNC_DECL explicit tmat4x4(tmat3x3<T> const & x);
+00128                 GLM_FUNC_DECL explicit tmat4x4(tmat2x3<T> const & x);
+00129                 GLM_FUNC_DECL explicit tmat4x4(tmat3x2<T> const & x);
+00130                 GLM_FUNC_DECL explicit tmat4x4(tmat2x4<T> const & x);
+00131                 GLM_FUNC_DECL explicit tmat4x4(tmat4x2<T> const & x);
+00132                 GLM_FUNC_DECL explicit tmat4x4(tmat3x4<T> const & x);
+00133                 GLM_FUNC_DECL explicit tmat4x4(tmat4x3<T> const & x);
+00134 
+00135                 // Accesses
+00136                 GLM_FUNC_DECL col_type & operator[](size_type i);
+00137                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
+00138 
+00139                 // Unary updatable operators
+00140                 GLM_FUNC_DECL tmat4x4<T> & operator=  (tmat4x4<T> const & m);
+00141                 template <typename U>
+00142                 GLM_FUNC_DECL tmat4x4<T> & operator=  (tmat4x4<U> const & m);
+00143                 template <typename U>
+00144                 GLM_FUNC_DECL tmat4x4<T> & operator+= (U const & s);
+00145                 template <typename U>
+00146                 GLM_FUNC_DECL tmat4x4<T> & operator+= (tmat4x4<U> const & m);
+00147                 template <typename U>
+00148                 GLM_FUNC_DECL tmat4x4<T> & operator-= (U const & s);
+00149                 template <typename U>
+00150                 GLM_FUNC_DECL tmat4x4<T> & operator-= (tmat4x4<U> const & m);
+00151                 template <typename U>
+00152                 GLM_FUNC_DECL tmat4x4<T> & operator*= (U const & s);
+00153                 template <typename U>
+00154                 GLM_FUNC_DECL tmat4x4<T> & operator*= (tmat4x4<U> const & m);
+00155                 template <typename U>
+00156                 GLM_FUNC_DECL tmat4x4<T> & operator/= (U const & s);
+00157                 template <typename U>
+00158                 GLM_FUNC_DECL tmat4x4<T> & operator/= (tmat4x4<U> const & m);
+00159                 GLM_FUNC_DECL tmat4x4<T> & operator++ ();
+00160                 GLM_FUNC_DECL tmat4x4<T> & operator-- ();
+00161         };
+00162 
+00163         // Binary operators
+00164         template <typename T> 
+00165         tmat4x4<T> operator+ (
+00166                 tmat4x4<T> const & m, 
+00167                 typename tmat4x4<T>::value_type const & s);
+00168 
+00169         template <typename T> 
+00170         tmat4x4<T> operator+ (
+00171                 typename tmat4x4<T>::value_type const & s, 
+00172                 tmat4x4<T> const & m);
+00173 
+00174         template <typename T> 
+00175         tmat4x4<T> operator+ (
+00176                 tmat4x4<T> const & m1, 
+00177                 tmat4x4<T> const & m2);
+00178             
+00179         template <typename T> 
+00180         tmat4x4<T> operator- (
+00181                 tmat4x4<T> const & m, 
+00182                 typename tmat4x4<T>::value_type const & s);
+00183 
+00184         template <typename T> 
+00185         tmat4x4<T> operator- (
+00186                 typename tmat4x4<T>::value_type const & s, 
+00187                 tmat4x4<T> const & m);
+00188 
+00189         template <typename T> 
+00190         tmat4x4<T> operator- (
+00191                 tmat4x4<T> const & m1, 
+00192                 tmat4x4<T> const & m2);
+00193 
+00194         template <typename T> 
+00195         tmat4x4<T> operator* (
+00196                 tmat4x4<T> const & m, 
+00197                 typename tmat4x4<T>::value_type const & s);
+00198 
+00199         template <typename T> 
+00200         tmat4x4<T> operator* (
+00201                 typename tmat4x4<T>::value_type const & s, 
+00202                 tmat4x4<T> const & m);
+00203 
+00204         template <typename T> 
+00205         typename tmat4x4<T>::col_type operator* (
+00206                 tmat4x4<T> const & m, 
+00207                 typename tmat4x4<T>::row_type const & v);
+00208 
+00209         template <typename T> 
+00210         typename tmat4x4<T>::row_type operator* (
+00211                 typename tmat4x4<T>::col_type const & v, 
+00212                 tmat4x4<T> const & m);
+00213                 
+00214         template <typename T>
+00215         tmat2x4<T> operator* (
+00216                 tmat4x4<T> const & m1, 
+00217                 tmat2x4<T> const & m2);
+00218 
+00219         template <typename T>
+00220         tmat3x4<T> operator* (
+00221                 tmat4x4<T> const & m1, 
+00222                 tmat3x4<T> const & m2);
+00223 
+00224         template <typename T> 
+00225         tmat4x4<T> operator* (
+00226                 tmat4x4<T> const & m1, 
+00227                 tmat4x4<T> const & m2);
+00228 
+00229         template <typename T> 
+00230         tmat4x4<T> operator/ (
+00231                 tmat4x4<T> const & m, 
+00232                 typename tmat4x4<T>::value_type const & s);
+00233 
+00234         template <typename T> 
+00235         tmat4x4<T> operator/ (
+00236                 typename tmat4x4<T>::value_type const & s, 
+00237                 tmat4x4<T> const & m);
+00238 
+00239         template <typename T> 
+00240         typename tmat4x4<T>::col_type operator/ (
+00241                 tmat4x4<T> const & m, 
+00242                 typename tmat4x4<T>::row_type const & v);
+00243 
+00244         template <typename T> 
+00245         typename tmat4x4<T>::row_type operator/ (
+00246                 typename tmat4x4<T>::col_type & v, 
+00247                 tmat4x4<T> const & m);
+00248 
+00249         template <typename T> 
+00250         tmat4x4<T> operator/ (
+00251                 tmat4x4<T> const & m1, 
+00252                 tmat4x4<T> const & m2);
+00253 
+00254         // Unary constant operators
+00255         template <typename T> 
+00256         tmat4x4<T> const operator-  (
+00257                 tmat4x4<T> const & m);
+00258 
+00259         template <typename T> 
+00260         tmat4x4<T> const operator-- (
+00261                 tmat4x4<T> const & m, int);
+00262 
+00263         template <typename T> 
+00264         tmat4x4<T> const operator++ (
+00265                 tmat4x4<T> const & m, int);
+00266 
+00267 } //namespace detail
+00268 
+00271 
+00277         typedef detail::tmat4x4<lowp_float>             lowp_mat4;
+00278 
+00284         typedef detail::tmat4x4<mediump_float>  mediump_mat4;
+00285 
+00291         typedef detail::tmat4x4<highp_float>    highp_mat4;
+00292 
+00298         typedef detail::tmat4x4<lowp_float>             lowp_mat4x4;
+00299 
+00305         typedef detail::tmat4x4<mediump_float>  mediump_mat4x4;
+00306 
+00312         typedef detail::tmat4x4<highp_float>    highp_mat4x4;
+00313 
+00315 }//namespace glm
+00316 
+00317 #ifndef GLM_EXTERNAL_TEMPLATE
+00318 #include "type_mat4x4.inl"
+00319 #endif//GLM_EXTERNAL_TEMPLATE
+00320 
+00321 #endif//glm_core_type_mat4x4
+
+
+ + + + + + diff --git a/doc/api/a00107.html b/doc/api/a00107.html new file mode 100644 index 00000000..a74fc0e7 --- /dev/null +++ b/doc/api/a00107.html @@ -0,0 +1,220 @@ + + + + + +type_precision.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_precision.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef float16 f16
typedef detail::tmat2x2< f16 > f16mat2
typedef detail::tmat2x2< f16 > f16mat2x2
typedef detail::tmat2x3< f16 > f16mat2x3
typedef detail::tmat2x4< f16 > f16mat2x4
typedef detail::tmat3x3< f16 > f16mat3
typedef detail::tmat3x2< f16 > f16mat3x2
typedef detail::tmat3x3< f16 > f16mat3x3
typedef detail::tmat3x4< f16 > f16mat3x4
typedef detail::tmat4x4< f16 > f16mat4
typedef detail::tmat4x2< f16 > f16mat4x2
typedef detail::tmat4x3< f16 > f16mat4x3
typedef detail::tmat4x4< f16 > f16mat4x4
typedef detail::tquat< f16 > f16quat
typedef detail::tvec1< f16 > f16vec1
typedef detail::tvec2< f16 > f16vec2
typedef detail::tvec3< f16 > f16vec3
typedef detail::tvec4< f16 > f16vec4
typedef float32 f32
typedef detail::tmat2x2< f32 > f32mat2
typedef detail::tmat2x2< f32 > f32mat2x2
typedef detail::tmat2x3< f32 > f32mat2x3
typedef detail::tmat2x4< f32 > f32mat2x4
typedef detail::tmat3x3< f32 > f32mat3
typedef detail::tmat3x2< f32 > f32mat3x2
typedef detail::tmat3x3< f32 > f32mat3x3
typedef detail::tmat3x4< f32 > f32mat3x4
typedef detail::tmat4x4< f32 > f32mat4
typedef detail::tmat4x2< f32 > f32mat4x2
typedef detail::tmat4x3< f32 > f32mat4x3
typedef detail::tmat4x4< f32 > f32mat4x4
typedef detail::tquat< f32 > f32quat
typedef detail::tvec1< f32 > f32vec1
typedef detail::tvec2< f32 > f32vec2
typedef detail::tvec3< f32 > f32vec3
typedef detail::tvec4< f32 > f32vec4
typedef float64 f64
typedef detail::tmat2x2< f64 > f64mat2
typedef detail::tmat2x2< f64 > f64mat2x2
typedef detail::tmat2x3< f64 > f64mat2x3
typedef detail::tmat2x4< f64 > f64mat2x4
typedef detail::tmat3x3< f64 > f64mat3
typedef detail::tmat3x2< f64 > f64mat3x2
typedef detail::tmat3x3< f64 > f64mat3x3
typedef detail::tmat3x4< f64 > f64mat3x4
typedef detail::tmat4x4< f64 > f64mat4
typedef detail::tmat4x2< f64 > f64mat4x2
typedef detail::tmat4x3< f64 > f64mat4x3
typedef detail::tmat4x4< f64 > f64mat4x4
typedef detail::tquat< f64 > f64quat
typedef detail::tvec1< f64 > f64vec1
typedef detail::tvec2< f64 > f64vec2
typedef detail::tvec3< f64 > f64vec3
typedef detail::tvec4< f64 > f64vec4
typedef detail::float16 float16
typedef detail::float16 float16_t
typedef detail::float32 float32
typedef detail::float32 float32_t
typedef detail::float64 float64
typedef detail::float64 float64_t
typedef detail::tmat2x2< f32 > fmat2
typedef detail::tmat2x2< f32 > fmat2x2
typedef detail::tmat2x3< f32 > fmat2x3
typedef detail::tmat2x4< f32 > fmat2x4
typedef detail::tmat3x3< f32 > fmat3
typedef detail::tmat3x2< f32 > fmat3x2
typedef detail::tmat3x3< f32 > fmat3x3
typedef detail::tmat3x4< f32 > fmat3x4
typedef detail::tmat4x4< f32 > fmat4
typedef detail::tmat4x2< f32 > fmat4x2
typedef detail::tmat4x3< f32 > fmat4x3
typedef detail::tmat4x4< f32 > fmat4x4
typedef detail::tvec1< float > fvec1
typedef detail::tvec2< float > fvec2
typedef detail::tvec3< float > fvec3
typedef detail::tvec4< float > fvec4
typedef detail::int16 i16
typedef detail::tvec1< i16 > i16vec1
typedef detail::tvec2< i16 > i16vec2
typedef detail::tvec3< i16 > i16vec3
typedef detail::tvec4< i16 > i16vec4
typedef detail::int32 i32
typedef detail::tvec1< i32 > i32vec1
typedef detail::tvec2< i32 > i32vec2
typedef detail::tvec3< i32 > i32vec3
typedef detail::tvec4< i32 > i32vec4
typedef detail::int64 i64
typedef detail::tvec1< i64 > i64vec1
typedef detail::tvec2< i64 > i64vec2
typedef detail::tvec3< i64 > i64vec3
typedef detail::tvec4< i64 > i64vec4
typedef detail::int8 i8
typedef detail::tvec1< i8 > i8vec1
typedef detail::tvec2< i8 > i8vec2
typedef detail::tvec3< i8 > i8vec3
typedef detail::tvec4< i8 > i8vec4
typedef detail::int16 int16
typedef detail::int16 int16_t
typedef detail::int32 int32
typedef detail::int32 int32_t
typedef detail::int64 int64
typedef detail::int64 int64_t
typedef detail::int8 int8
typedef detail::int8 int8_t
typedef detail::uint16 u16
typedef detail::tvec1< u16 > u16vec1
typedef detail::tvec2< u16 > u16vec2
typedef detail::tvec3< u16 > u16vec3
typedef detail::tvec4< u16 > u16vec4
typedef detail::uint32 u32
typedef detail::tvec1< u32 > u32vec1
typedef detail::tvec2< u32 > u32vec2
typedef detail::tvec3< u32 > u32vec3
typedef detail::tvec4< u32 > u32vec4
typedef detail::uint64 u64
typedef detail::tvec1< u64 > u64vec1
typedef detail::tvec2< u64 > u64vec2
typedef detail::tvec3< u64 > u64vec3
typedef detail::tvec4< u64 > u64vec4
typedef detail::uint8 u8
typedef detail::tvec1< u8 > u8vec1
typedef detail::tvec2< u8 > u8vec2
typedef detail::tvec3< u8 > u8vec3
typedef detail::tvec4< u8 > u8vec4
typedef detail::uint16 uint16
typedef detail::uint16 uint16_t
typedef detail::uint32 uint32
typedef detail::uint32 uint32_t
typedef detail::uint64 uint64
typedef detail::uint64 uint64_t
typedef detail::uint8 uint8
typedef detail::uint8 uint8_t
+

Detailed Description

+

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.

+

GLM_GTC_type_precision: Vector and matrix types with defined precisions

+
Date:
2009-06-04 / 2011-12-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_half_float: Half-precision floating-point based types and functions (dependence)
+
+GLM_GTC_quaternion: Quaternion types and functions (dependence)
+ +

Definition in file type_precision.hpp.

+
+ + + + + + diff --git a/doc/api/a00107_source.html b/doc/api/a00107_source.html new file mode 100644 index 00000000..4e3f845b --- /dev/null +++ b/doc/api/a00107_source.html @@ -0,0 +1,446 @@ + + + + + +type_precision.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_precision.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 
+00041 
+00042 
+00043 #ifndef GLM_GTC_type_precision
+00044 #define GLM_GTC_type_precision GLM_VERSION
+00045 
+00046 // Dependency:
+00047 #include "../glm.hpp"
+00048 #include "../gtc/half_float.hpp"
+00049 #include "../gtc/quaternion.hpp"
+00050 
+00051 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00052 #       pragma message("GLM: GLM_GTC_type_precision extension included")
+00053 #endif
+00054 
+00055 namespace glm
+00056 {
+00058         // Signed int vector types 
+00059 
+00062 
+00065         typedef detail::int8 int8;
+00066         
+00069         typedef detail::int16 int16;
+00070 
+00073         typedef detail::int32 int32;
+00074 
+00077         typedef detail::int64 int64;
+00078 
+00079 
+00082         typedef detail::int8 int8_t;
+00083         
+00086         typedef detail::int16 int16_t;
+00087 
+00090         typedef detail::int32 int32_t;
+00091 
+00094         typedef detail::int64 int64_t;
+00095 
+00096 
+00099         typedef detail::int8 i8;
+00100         
+00103         typedef detail::int16 i16;
+00104 
+00107         typedef detail::int32 i32;
+00108 
+00111         typedef detail::int64 i64;
+00112 
+00113 
+00116         typedef detail::tvec1<i8> i8vec1;
+00117         
+00120         typedef detail::tvec2<i8> i8vec2;
+00121 
+00124         typedef detail::tvec3<i8> i8vec3;
+00125 
+00128         typedef detail::tvec4<i8> i8vec4;
+00129 
+00130 
+00133         typedef detail::tvec1<i16> i16vec1;
+00134         
+00137         typedef detail::tvec2<i16> i16vec2;
+00138 
+00141         typedef detail::tvec3<i16> i16vec3;
+00142 
+00145         typedef detail::tvec4<i16> i16vec4;
+00146 
+00147 
+00150         typedef detail::tvec1<i32> i32vec1;
+00151         
+00154         typedef detail::tvec2<i32> i32vec2;
+00155 
+00158         typedef detail::tvec3<i32> i32vec3;
+00159 
+00162         typedef detail::tvec4<i32> i32vec4;
+00163 
+00164 
+00167         typedef detail::tvec1<i64> i64vec1;
+00168         
+00171         typedef detail::tvec2<i64> i64vec2;
+00172 
+00175         typedef detail::tvec3<i64> i64vec3;
+00176 
+00179         typedef detail::tvec4<i64> i64vec4;
+00180 
+00181 
+00183         // Unsigned int vector types 
+00184 
+00187         typedef detail::uint8 uint8;
+00188         
+00191         typedef detail::uint16 uint16;
+00192 
+00195         typedef detail::uint32 uint32;
+00196 
+00199         typedef detail::uint64 uint64;
+00200 
+00201 
+00204         typedef detail::uint8 uint8_t;
+00205         
+00208         typedef detail::uint16 uint16_t;
+00209 
+00212         typedef detail::uint32 uint32_t;
+00213 
+00216         typedef detail::uint64 uint64_t;
+00217 
+00218 
+00221         typedef detail::uint8 u8;
+00222         
+00225         typedef detail::uint16 u16;
+00226 
+00229         typedef detail::uint32 u32;
+00230 
+00233         typedef detail::uint64 u64;
+00234 
+00235 
+00238         typedef detail::tvec1<u8> u8vec1;
+00239         
+00242         typedef detail::tvec2<u8> u8vec2;
+00243 
+00246         typedef detail::tvec3<u8> u8vec3;
+00247 
+00250         typedef detail::tvec4<u8> u8vec4;
+00251 
+00252 
+00255         typedef detail::tvec1<u16> u16vec1;
+00256         
+00259         typedef detail::tvec2<u16> u16vec2;
+00260 
+00263         typedef detail::tvec3<u16> u16vec3;
+00264 
+00267         typedef detail::tvec4<u16> u16vec4;
+00268 
+00269 
+00272         typedef detail::tvec1<u32> u32vec1;
+00273         
+00276         typedef detail::tvec2<u32> u32vec2;
+00277 
+00280         typedef detail::tvec3<u32> u32vec3;
+00281 
+00284         typedef detail::tvec4<u32> u32vec4;
+00285 
+00286 
+00289         typedef detail::tvec1<u64> u64vec1;
+00290         
+00293         typedef detail::tvec2<u64> u64vec2;
+00294 
+00297         typedef detail::tvec3<u64> u64vec3;
+00298 
+00301         typedef detail::tvec4<u64> u64vec4;
+00302 
+00303 
+00305         // Float vector types 
+00306 
+00309         typedef detail::float16 float16;
+00310 
+00313         typedef detail::float32 float32;
+00314 
+00317         typedef detail::float64 float64;
+00318 
+00319 
+00322         typedef detail::float16 float16_t;
+00323 
+00326         typedef detail::float32 float32_t;
+00327 
+00330         typedef detail::float64 float64_t;
+00331 
+00332 
+00335         typedef float16 f16;
+00336 
+00339         typedef float32 f32;
+00340 
+00343         typedef float64 f64;
+00344 
+00345 
+00348         typedef detail::tvec1<float> fvec1;
+00349 
+00352         typedef detail::tvec2<float> fvec2;
+00353 
+00356         typedef detail::tvec3<float> fvec3;
+00357 
+00360         typedef detail::tvec4<float> fvec4;
+00361 
+00362 
+00365         typedef detail::tvec1<f16> f16vec1;
+00366 
+00369         typedef detail::tvec2<f16> f16vec2;
+00370 
+00373         typedef detail::tvec3<f16> f16vec3;
+00374 
+00377         typedef detail::tvec4<f16> f16vec4;
+00378 
+00379         
+00382         typedef detail::tvec1<f32> f32vec1;
+00383 
+00386         typedef detail::tvec2<f32> f32vec2;
+00387 
+00390         typedef detail::tvec3<f32> f32vec3;
+00391 
+00394         typedef detail::tvec4<f32> f32vec4;
+00395 
+00396 
+00399         typedef detail::tvec1<f64> f64vec1;
+00400 
+00403         typedef detail::tvec2<f64> f64vec2;
+00404 
+00407         typedef detail::tvec3<f64> f64vec3;
+00408 
+00411         typedef detail::tvec4<f64> f64vec4;
+00412 
+00413 
+00415         // Float matrix types 
+00416 
+00419         //typedef detail::tmat1x1<f32> fmat1;
+00420 
+00423         typedef detail::tmat2x2<f32> fmat2;
+00424 
+00427         typedef detail::tmat3x3<f32> fmat3;
+00428 
+00431         typedef detail::tmat4x4<f32> fmat4;
+00432 
+00433 
+00436         //typedef f32 fmat1x1;
+00437 
+00440         typedef detail::tmat2x2<f32> fmat2x2;
+00441 
+00444         typedef detail::tmat2x3<f32> fmat2x3;
+00445 
+00448         typedef detail::tmat2x4<f32> fmat2x4;
+00449 
+00452         typedef detail::tmat3x2<f32> fmat3x2;
+00453 
+00456         typedef detail::tmat3x3<f32> fmat3x3;
+00457 
+00460         typedef detail::tmat3x4<f32> fmat3x4;
+00461 
+00464         typedef detail::tmat4x2<f32> fmat4x2;
+00465 
+00468         typedef detail::tmat4x3<f32> fmat4x3;
+00469 
+00472         typedef detail::tmat4x4<f32> fmat4x4;
+00473 
+00474 
+00477         //typedef detail::tmat1x1<f16> f16mat1;
+00478 
+00481         typedef detail::tmat2x2<f16> f16mat2;
+00482 
+00485         typedef detail::tmat3x3<f16> f16mat3;
+00486 
+00489         typedef detail::tmat4x4<f16> f16mat4;
+00490 
+00491 
+00494         //typedef f16 f16mat1x1;
+00495 
+00498         typedef detail::tmat2x2<f16> f16mat2x2;
+00499 
+00502         typedef detail::tmat2x3<f16> f16mat2x3;
+00503 
+00506         typedef detail::tmat2x4<f16> f16mat2x4;
+00507 
+00510         typedef detail::tmat3x2<f16> f16mat3x2;
+00511 
+00514         typedef detail::tmat3x3<f16> f16mat3x3;
+00515 
+00518         typedef detail::tmat3x4<f16> f16mat3x4;
+00519 
+00522         typedef detail::tmat4x2<f16> f16mat4x2;
+00523 
+00526         typedef detail::tmat4x3<f16> f16mat4x3;
+00527 
+00530         typedef detail::tmat4x4<f16> f16mat4x4;
+00531 
+00532 
+00535         //typedef detail::tmat1x1<f32> f32mat1;
+00536 
+00539         typedef detail::tmat2x2<f32> f32mat2;
+00540 
+00543         typedef detail::tmat3x3<f32> f32mat3;
+00544 
+00547         typedef detail::tmat4x4<f32> f32mat4;
+00548 
+00549 
+00552         //typedef f32 f32mat1x1;
+00553 
+00556         typedef detail::tmat2x2<f32> f32mat2x2;
+00557 
+00560         typedef detail::tmat2x3<f32> f32mat2x3;
+00561 
+00564         typedef detail::tmat2x4<f32> f32mat2x4;
+00565 
+00568         typedef detail::tmat3x2<f32> f32mat3x2;
+00569 
+00572         typedef detail::tmat3x3<f32> f32mat3x3;
+00573 
+00576         typedef detail::tmat3x4<f32> f32mat3x4;
+00577 
+00580         typedef detail::tmat4x2<f32> f32mat4x2;
+00581 
+00584         typedef detail::tmat4x3<f32> f32mat4x3;
+00585 
+00588         typedef detail::tmat4x4<f32> f32mat4x4;
+00589 
+00590 
+00593         //typedef detail::tmat1x1<f64> f64mat1;
+00594 
+00597         typedef detail::tmat2x2<f64> f64mat2;
+00598 
+00601         typedef detail::tmat3x3<f64> f64mat3;
+00602 
+00605         typedef detail::tmat4x4<f64> f64mat4;
+00606 
+00607 
+00610         //typedef f64 f64mat1x1;
+00611 
+00614         typedef detail::tmat2x2<f64> f64mat2x2;
+00615 
+00618         typedef detail::tmat2x3<f64> f64mat2x3;
+00619 
+00622         typedef detail::tmat2x4<f64> f64mat2x4;
+00623 
+00626         typedef detail::tmat3x2<f64> f64mat3x2;
+00627 
+00630         typedef detail::tmat3x3<f64> f64mat3x3;
+00631 
+00634         typedef detail::tmat3x4<f64> f64mat3x4;
+00635 
+00638         typedef detail::tmat4x2<f64> f64mat4x2;
+00639 
+00642         typedef detail::tmat4x3<f64> f64mat4x3;
+00643 
+00646         typedef detail::tmat4x4<f64> f64mat4x4;
+00647 
+00648 
+00650         // Quaternion types 
+00651 
+00654         typedef detail::tquat<f16> f16quat;
+00655 
+00658         typedef detail::tquat<f32> f32quat;
+00659 
+00662         typedef detail::tquat<f64> f64quat;
+00663 
+00665 }//namespace glm
+00666 
+00667 #include "type_precision.inl"
+00668 
+00669 #endif//GLM_GTC_type_precision
+
+
+ + + + + + diff --git a/doc/api/a00108.html b/doc/api/a00108.html new file mode 100644 index 00000000..47d3e37e --- /dev/null +++ b/doc/api/a00108.html @@ -0,0 +1,122 @@ + + + + + +type_ptr.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_ptr.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat2x2< T > make_mat2 (T const *const ptr)
template<typename T >
detail::tmat2x2< T > make_mat2x2 (T const *const ptr)
template<typename T >
detail::tmat2x3< T > make_mat2x3 (T const *const ptr)
template<typename T >
detail::tmat2x4< T > make_mat2x4 (T const *const ptr)
template<typename T >
detail::tmat3x3< T > make_mat3 (T const *const ptr)
template<typename T >
detail::tmat3x2< T > make_mat3x2 (T const *const ptr)
template<typename T >
detail::tmat3x3< T > make_mat3x3 (T const *const ptr)
template<typename T >
detail::tmat3x4< T > make_mat3x4 (T const *const ptr)
template<typename T >
detail::tmat4x4< T > make_mat4 (T const *const ptr)
template<typename T >
detail::tmat4x2< T > make_mat4x2 (T const *const ptr)
template<typename T >
detail::tmat4x3< T > make_mat4x3 (T const *const ptr)
template<typename T >
detail::tmat4x4< T > make_mat4x4 (T const *const ptr)
template<typename T >
detail::tquat< T > make_quat (T const *const ptr)
template<typename T >
detail::tvec2< T > make_vec2 (T const *const ptr)
template<typename T >
detail::tvec3< T > make_vec3 (T const *const ptr)
template<typename T >
detail::tvec4< T > make_vec4 (T const *const ptr)
template<typename genType >
genType::value_type const * value_ptr (genType const &vec)
+

Detailed Description

+

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.

+

GLM_GTC_type_ptr: Memory layout access

+
Date:
2009-05-06 / 2011-06-05
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTC_half_float: Half-precision floating-point based types and functions (dependence)
+
+GLM_GTC_quaternion: Quaternion types and functions (dependence)
+ +

Definition in file type_ptr.hpp.

+
+ + + + + + diff --git a/doc/api/a00108_source.html b/doc/api/a00108_source.html new file mode 100644 index 00000000..405af128 --- /dev/null +++ b/doc/api/a00108_source.html @@ -0,0 +1,197 @@ + + + + + +type_ptr.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_ptr.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 
+00041 
+00042 
+00043 
+00044 
+00045 
+00046 
+00047 
+00048 
+00049 
+00050 
+00051 
+00052 
+00053 
+00054 
+00055 
+00056 
+00057 
+00058 
+00059 #ifndef GLM_GTC_type_ptr
+00060 #define GLM_GTC_type_ptr GLM_VERSION
+00061 
+00062 // Dependency:
+00063 #include "../glm.hpp"
+00064 #include "../gtc/half_float.hpp"
+00065 #include "../gtc/quaternion.hpp"
+00066 #include <cstring>
+00067 
+00068 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00069 #       pragma message("GLM: GLM_GTC_type_ptr extension included")
+00070 #endif
+00071 
+00072 namespace glm
+00073 { 
+00076     
+00079         template<typename genType>
+00080     typename genType::value_type const * value_ptr(genType const & vec);
+00081 
+00084         template<typename T>
+00085     detail::tvec2<T> make_vec2(T const * const ptr);
+00086 
+00089         template<typename T>
+00090     detail::tvec3<T> make_vec3(T const * const ptr);
+00091 
+00094         template<typename T>
+00095     detail::tvec4<T> make_vec4(T const * const ptr);
+00096 
+00099         template<typename T>
+00100     detail::tmat2x2<T> make_mat2x2(T const * const ptr);
+00101         
+00104         template<typename T>
+00105     detail::tmat2x3<T> make_mat2x3(T const * const ptr);
+00106         
+00109         template<typename T>
+00110     detail::tmat2x4<T> make_mat2x4(T const * const ptr);
+00111         
+00114         template<typename T>
+00115     detail::tmat3x2<T> make_mat3x2(T const * const ptr);
+00116         
+00119         template<typename T>
+00120     detail::tmat3x3<T> make_mat3x3(T const * const ptr);
+00121 
+00124         template<typename T>
+00125     detail::tmat3x4<T> make_mat3x4(T const * const ptr);
+00126         
+00129         template<typename T>
+00130     detail::tmat4x2<T> make_mat4x2(
+00131         T const * const ptr);
+00132         
+00135         template<typename T>
+00136     detail::tmat4x3<T> make_mat4x3(T const * const ptr);
+00137         
+00140         template<typename T>
+00141     detail::tmat4x4<T> make_mat4x4(T const * const ptr);
+00142         
+00145         template<typename T>
+00146     detail::tmat2x2<T> make_mat2(T const * const ptr);
+00147         
+00150         template<typename T>
+00151     detail::tmat3x3<T> make_mat3(T const * const ptr);
+00152                 
+00155         template<typename T>
+00156     detail::tmat4x4<T> make_mat4(T const * const ptr);
+00157  
+00160         template<typename T>
+00161     detail::tquat<T> make_quat(T const * const ptr);
+00162     
+00164 }//namespace glm
+00165 
+00166 #include "type_ptr.inl"
+00167 
+00168 #endif//GLM_GTC_type_ptr
+00169 
+
+
+ + + + + + diff --git a/doc/api/a00109.html b/doc/api/a00109.html new file mode 100644 index 00000000..760ef615 --- /dev/null +++ b/doc/api/a00109.html @@ -0,0 +1,77 @@ + + + + + +type_size.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
type_size.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-10-05 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_size.hpp.

+
+ + + + + + diff --git a/doc/api/a00109_source.html b/doc/api/a00109_source.html new file mode 100644 index 00000000..112ba62f --- /dev/null +++ b/doc/api/a00109_source.html @@ -0,0 +1,108 @@ + + + + + +type_size.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_size.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_size
+00030 #define glm_core_type_size
+00031 
+00032 #include <cstdlib>
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037         //typedef std::size_t size_t;
+00038         typedef int sizeType;
+00039 
+00040 }//namespace detail
+00041 }//namespace glm
+00042 
+00043 #endif//glm_core_type_size
+
+
+ + + + + + diff --git a/doc/api/a00110.html b/doc/api/a00110.html new file mode 100644 index 00000000..a03fbd11 --- /dev/null +++ b/doc/api/a00110.html @@ -0,0 +1,77 @@ + + + + + +type_vec.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
type_vec.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2010-01-26 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_vec.hpp.

+
+ + + + + + diff --git a/doc/api/a00110_source.html b/doc/api/a00110_source.html new file mode 100644 index 00000000..6c6c2eac --- /dev/null +++ b/doc/api/a00110_source.html @@ -0,0 +1,106 @@ + + + + + +type_vec.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_vec.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_vec
+00030 #define glm_core_type_vec
+00031 
+00032 #include "type_gentype.hpp"
+00033 
+00034 namespace glm{
+00035 namespace detail
+00036 {
+00037 
+00038 }//namespace detail
+00039 }//namespace glm
+00040 
+00041 #endif//glm_core_type_vec
+
+
+ + + + + + diff --git a/doc/api/a00111.html b/doc/api/a00111.html new file mode 100644 index 00000000..f8626e04 --- /dev/null +++ b/doc/api/a00111.html @@ -0,0 +1,77 @@ + + + + + +type_vec1.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
type_vec1.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-25 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_vec1.hpp.

+
+ + + + + + diff --git a/doc/api/a00111_source.html b/doc/api/a00111_source.html new file mode 100644 index 00000000..9f14a45a --- /dev/null +++ b/doc/api/a00111_source.html @@ -0,0 +1,263 @@ + + + + + +type_vec1.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_vec1.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_gentype1
+00030 #define glm_core_type_gentype1
+00031 
+00032 #include "type_vec.hpp"
+00033 #include "type_float.hpp"
+00034 #include "type_int.hpp"
+00035 #include "type_size.hpp"
+00036 #include "_swizzle.hpp"
+00037 
+00038 namespace glm{
+00039 namespace detail
+00040 {
+00041         template <typename T> struct tref1;
+00042         template <typename T> struct tref2;
+00043         template <typename T> struct tref3;
+00044         template <typename T> struct tref4;
+00045         template <typename T> struct tvec1;
+00046         template <typename T> struct tvec2;
+00047         template <typename T> struct tvec3;
+00048         template <typename T> struct tvec4;
+00049 
+00050         template <typename T>
+00051         struct tvec1
+00052         {
+00053                 enum ctor{null};
+00054 
+00055                 typedef T value_type;
+00056                 typedef std::size_t size_type;
+00057                 GLM_FUNC_DECL size_type length() const;
+00058 
+00059                 typedef tvec1<T> type;
+00060                 typedef tvec1<bool> bool_type;
+00061 
+00063                 // Data
+00064 
+00065 #               if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
+00066                         value_type x;
+00067 #               else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
+00068                         union {value_type x, r, s;};
+00069 #               endif//GLM_COMPONENT
+00070 
+00072                 // Accesses
+00073 
+00074                 GLM_FUNC_DECL value_type & operator[](size_type i);
+00075                 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
+00076 
+00078                 // Implicit basic constructors
+00079 
+00080                 GLM_FUNC_DECL tvec1();
+00081                 GLM_FUNC_DECL tvec1(tvec1<T> const & v);
+00082 
+00084                 // Explicit basic constructors
+00085 
+00086                 GLM_FUNC_DECL explicit tvec1(
+00087                         ctor);
+00088                 GLM_FUNC_DECL explicit tvec1(
+00089                         value_type const & s);
+00090 
+00092                 // Swizzle constructors
+00093 
+00094                 GLM_FUNC_DECL tvec1(tref1<T> const & r);
+00095 
+00097                 // Convertion scalar constructors
+00098 
+00100                 template <typename U> 
+00101                 GLM_FUNC_DECL explicit tvec1(U const & s);
+00102 
+00104                 // Convertion vector constructors
+00105 
+00107                 template <typename U> 
+00108                 GLM_FUNC_DECL explicit tvec1(tvec2<U> const & v);
+00110                 template <typename U> 
+00111                 GLM_FUNC_DECL explicit tvec1(tvec3<U> const & v);
+00113                 template <typename U> 
+00114                 GLM_FUNC_DECL explicit tvec1(tvec4<U> const & v);
+00115 
+00117                 // Unary arithmetic operators
+00118 
+00119                 GLM_FUNC_DECL tvec1<T> & operator= (tvec1<T> const & v);
+00120                 template <typename U> 
+00121                 GLM_FUNC_DECL tvec1<T> & operator= (tvec1<U> const & v);
+00122 
+00123                 template <typename U> 
+00124                 GLM_FUNC_DECL tvec1<T> & operator+=(U const & s);
+00125                 template <typename U> 
+00126                 GLM_FUNC_DECL tvec1<T> & operator+=(tvec1<U> const & v);
+00127                 template <typename U> 
+00128                 GLM_FUNC_DECL tvec1<T> & operator-=(U const & s);
+00129                 template <typename U> 
+00130                 GLM_FUNC_DECL tvec1<T> & operator-=(tvec1<U> const & v);
+00131                 template <typename U> 
+00132                 GLM_FUNC_DECL tvec1<T> & operator*=(U const & s);
+00133                 template <typename U> 
+00134                 GLM_FUNC_DECL tvec1<T> & operator*=(tvec1<U> const & v);
+00135                 template <typename U> 
+00136                 GLM_FUNC_DECL tvec1<T> & operator/=(U const & s);
+00137                 template <typename U> 
+00138                 GLM_FUNC_DECL tvec1<T> & operator/=(tvec1<U> const & v);
+00139                 GLM_FUNC_DECL tvec1<T> & operator++();
+00140                 GLM_FUNC_DECL tvec1<T> & operator--();
+00141 
+00143                 // Unary bit operators
+00144 
+00145                 template <typename U> 
+00146                 GLM_FUNC_DECL tvec1<T> & operator%=(U const & s);
+00147                 template <typename U> 
+00148                 GLM_FUNC_DECL tvec1<T> & operator%=(tvec1<U> const & v);
+00149                 template <typename U> 
+00150                 GLM_FUNC_DECL tvec1<T> & operator&=(U const & s);
+00151                 template <typename U> 
+00152                 GLM_FUNC_DECL tvec1<T> & operator&=(tvec1<U> const & v);
+00153                 template <typename U> 
+00154                 GLM_FUNC_DECL tvec1<T> & operator|=(U const & s);
+00155                 template <typename U> 
+00156                 GLM_FUNC_DECL tvec1<T> & operator|=(tvec1<U> const & v);
+00157                 template <typename U> 
+00158                 GLM_FUNC_DECL tvec1<T> & operator^=(U const & s);
+00159                 template <typename U> 
+00160                 GLM_FUNC_DECL tvec1<T> & operator^=(tvec1<U> const & v);
+00161                 template <typename U> 
+00162                 GLM_FUNC_DECL tvec1<T> & operator<<=(U const & s);
+00163                 template <typename U> 
+00164                 GLM_FUNC_DECL tvec1<T> & operator<<=(tvec1<U> const & v);
+00165                 template <typename U> 
+00166                 GLM_FUNC_DECL tvec1<T> & operator>>=(U const & s);
+00167                 template <typename U> 
+00168                 GLM_FUNC_DECL tvec1<T> & operator>>=(tvec1<U> const & v);
+00169 
+00171                 // Swizzle operators
+00172 
+00173                 GLM_FUNC_DECL value_type swizzle(comp X) const;
+00174                 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
+00175                 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
+00176                 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
+00177                 GLM_FUNC_DECL tref1<T> swizzle(comp X);
+00178         };
+00179 
+00180         template <typename T>
+00181         struct tref1
+00182         {
+00183                 GLM_FUNC_DECL tref1(T & x);
+00184                 GLM_FUNC_DECL tref1(tref1<T> const & r);
+00185                 GLM_FUNC_DECL tref1(tvec1<T> const & v);
+00186 
+00187                 GLM_FUNC_DECL tref1<T> & operator= (tref1<T> const & r);
+00188                 GLM_FUNC_DECL tref1<T> & operator= (tvec1<T> const & v);
+00189 
+00190                 T& x;
+00191         };
+00192 
+00193         GLM_DETAIL_IS_VECTOR(tvec1);
+00194 
+00195         typedef detail::tvec1<highp_float>              highp_vec1_t;
+00196         typedef detail::tvec1<mediump_float>    mediump_vec1_t;
+00197         typedef detail::tvec1<lowp_float>               lowp_vec1_t;
+00198         typedef detail::tvec1<highp_int>                highp_ivec1_t;
+00199         typedef detail::tvec1<mediump_int>              mediump_ivec1_t;
+00200         typedef detail::tvec1<lowp_int>                 lowp_ivec1_t;
+00201         typedef detail::tvec1<highp_uint>               highp_uvec1_t;
+00202         typedef detail::tvec1<mediump_uint>             mediump_uvec1_t;
+00203         typedef detail::tvec1<lowp_uint>                lowp_uvec1_t;
+00204 
+00205 }//namespace detail
+00206 }//namespace glm
+00207 
+00208 #ifndef GLM_EXTERNAL_TEMPLATE
+00209 #include "type_vec1.inl"
+00210 #endif//GLM_EXTERNAL_TEMPLATE
+00211 
+00212 #endif//glm_core_type_gentype1
+
+
+ + + + + + diff --git a/doc/api/a00112.html b/doc/api/a00112.html new file mode 100644 index 00000000..1899fa14 --- /dev/null +++ b/doc/api/a00112.html @@ -0,0 +1,96 @@ + + + + + +type_vec2.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_vec2.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef detail::tvec2< highp_int > highp_ivec2
typedef detail::tvec2< highp_uint > highp_uvec2
typedef detail::tvec2
+< highp_float > 
highp_vec2
typedef detail::tvec2< lowp_int > lowp_ivec2
typedef detail::tvec2< lowp_uint > lowp_uvec2
typedef detail::tvec2< lowp_float > lowp_vec2
typedef detail::tvec2
+< mediump_int > 
mediump_ivec2
typedef detail::tvec2
+< mediump_uint > 
mediump_uvec2
typedef detail::tvec2
+< mediump_float > 
mediump_vec2
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-18 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_vec2.hpp.

+
+ + + + + + diff --git a/doc/api/a00112_source.html b/doc/api/a00112_source.html new file mode 100644 index 00000000..b2955e6e --- /dev/null +++ b/doc/api/a00112_source.html @@ -0,0 +1,321 @@ + + + + + +type_vec2.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_vec2.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_gentype2
+00030 #define glm_core_type_gentype2
+00031 
+00032 #include "type_vec.hpp"
+00033 #include "type_float.hpp"
+00034 #include "type_int.hpp"
+00035 #include "type_size.hpp"
+00036 #include "_swizzle.hpp"
+00037 
+00038 namespace glm{
+00039 namespace detail
+00040 {
+00041         template <typename T> struct tref2;
+00042         template <typename T> struct tref3;
+00043         template <typename T> struct tref4;
+00044         template <typename T> struct tvec3;
+00045         template <typename T> struct tvec4;
+00046 
+00047         // The basic 2D vector type.
+00048         // \ingroup core_template
+00049         template <typename T>
+00050         struct tvec2
+00051         {
+00052                 enum ctor{null};
+00053 
+00054                 typedef T value_type;
+00055                 typedef std::size_t size_type;
+00056                 GLM_FUNC_DECL size_type length() const;
+00057 
+00058                 typedef tvec2<T> type;
+00059                 typedef tvec2<bool> bool_type;
+00060 
+00062                 // Data
+00063 
+00064 #       if(GLM_COMPONENT == GLM_COMPONENT_CXX11)
+00065                 union 
+00066                 {
+00067 #               if(defined(GLM_SWIZZLE))
+00068                         _GLM_SWIZZLE2_2_MEMBERS(value_type, glm::detail::tvec2<value_type>, x, y)
+00069                         _GLM_SWIZZLE2_2_MEMBERS(value_type, glm::detail::tvec2<value_type>, r, g)
+00070                         _GLM_SWIZZLE2_2_MEMBERS(value_type, glm::detail::tvec2<value_type>, s, t)
+00071                         _GLM_SWIZZLE2_3_MEMBERS(value_type, glm::detail::tvec3<value_type>, x, y)
+00072                         _GLM_SWIZZLE2_3_MEMBERS(value_type, glm::detail::tvec3<value_type>, r, g)
+00073                         _GLM_SWIZZLE2_3_MEMBERS(value_type, glm::detail::tvec3<value_type>, s, t)
+00074                         _GLM_SWIZZLE2_4_MEMBERS(value_type, glm::detail::tvec4<value_type>, x, y)
+00075                         _GLM_SWIZZLE2_4_MEMBERS(value_type, glm::detail::tvec4<value_type>, r, g)
+00076                         _GLM_SWIZZLE2_4_MEMBERS(value_type, glm::detail::tvec4<value_type>, s, t)
+00077 #               endif//(defined(GLM_SWIZZLE))
+00078 
+00079                         struct{value_type r, g;};
+00080                         struct{value_type s, t;};
+00081                         struct{value_type x, y;};
+00082                 };
+00083 #       elif(GLM_COMPONENT == GLM_COMPONENT_CXX98)
+00084                 union {value_type x, r, s;};
+00085                 union {value_type y, g, t;};
+00086 
+00087 #               if(defined(GLM_SWIZZLE))
+00088                         // Defines all he swizzle operator as functions
+00089                         GLM_SWIZZLE_GEN_REF_FROM_VEC2(value_type, detail::tvec2, detail::tref2)
+00090                         GLM_SWIZZLE_GEN_VEC_FROM_VEC2(value_type, detail::tvec2, detail::tvec2, detail::tvec3, detail::tvec4)
+00091 #               endif//(defined(GLM_SWIZZLE))
+00092 #       else //(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
+00093                 value_type x, y;
+00094 
+00095 #               if(defined(GLM_SWIZZLE))
+00096                         // Defines all he swizzle operator as functions
+00097                         GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(value_type, detail::tvec2, detail::tref2, x, y)
+00098                         GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(value_type, detail::tvec2, detail::tvec2, detail::tvec3, detail::tvec4, x, y)
+00099 #               endif//(defined(GLM_SWIZZLE))
+00100 #       endif//GLM_COMPONENT
+00101 
+00103                 // Accesses
+00104 
+00105                 GLM_FUNC_DECL value_type & operator[](size_type i);
+00106                 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
+00107 
+00109                 // Implicit basic constructors
+00110 
+00111                 GLM_FUNC_DECL tvec2();
+00112                 GLM_FUNC_DECL tvec2(tvec2<T> const & v);
+00113 
+00115                 // Explicit basic constructors
+00116 
+00117                 GLM_FUNC_DECL explicit tvec2(
+00118                         ctor);
+00119                 GLM_FUNC_DECL explicit tvec2(
+00120                         value_type const & s);
+00121                 GLM_FUNC_DECL explicit tvec2(
+00122                         value_type const & s1, 
+00123                         value_type const & s2);
+00124 
+00126                 // Swizzle constructors
+00127 
+00128                 tvec2(tref2<T> const & r);
+00129 
+00130         template <int E0, int E1>
+00131         GLM_FUNC_DECL tvec2(const glm::detail::swizzle<2,T,tvec2<T>,E0,E1,-1,-2>& that)
+00132         {
+00133             *this = that();
+00134         }
+00135 
+00137                 // Convertion constructors
+00138 
+00140                 template <typename U> 
+00141                 GLM_FUNC_DECL explicit tvec2(
+00142                         U const & x);
+00144                 template <typename U, typename V> 
+00145                 GLM_FUNC_DECL explicit tvec2(
+00146                         U const & x, 
+00147                         V const & y);
+00148 
+00150                 // Convertion vector constructors
+00151 
+00153                 template <typename U> 
+00154                 GLM_FUNC_DECL explicit tvec2(tvec2<U> const & v);
+00156                 template <typename U> 
+00157                 GLM_FUNC_DECL explicit tvec2(tvec3<U> const & v);
+00159                 template <typename U> 
+00160                 GLM_FUNC_DECL explicit tvec2(tvec4<U> const & v);
+00161 
+00163                 // Unary arithmetic operators
+00164 
+00165                 GLM_FUNC_DECL tvec2<T> & operator= (tvec2<T> const & v);
+00166                 template <typename U> 
+00167                 GLM_FUNC_DECL tvec2<T> & operator= (tvec2<U> const & v);
+00168 
+00169                 template <typename U> 
+00170                 GLM_FUNC_DECL tvec2<T> & operator+=(U const & s);
+00171                 template <typename U> 
+00172                 GLM_FUNC_DECL tvec2<T> & operator+=(tvec2<U> const & v);
+00173                 template <typename U> 
+00174                 GLM_FUNC_DECL tvec2<T> & operator-=(U const & s);
+00175                 template <typename U> 
+00176                 GLM_FUNC_DECL tvec2<T> & operator-=(tvec2<U> const & v);
+00177                 template <typename U> 
+00178                 GLM_FUNC_DECL tvec2<T> & operator*=(U const & s);
+00179                 template <typename U> 
+00180                 GLM_FUNC_DECL tvec2<T> & operator*=(tvec2<U> const & v);
+00181                 template <typename U> 
+00182                 GLM_FUNC_DECL tvec2<T> & operator/=(U const & s);
+00183                 template <typename U> 
+00184                 GLM_FUNC_DECL tvec2<T> & operator/=(tvec2<U> const & v);
+00185                 GLM_FUNC_DECL tvec2<T> & operator++();
+00186                 GLM_FUNC_DECL tvec2<T> & operator--();
+00187 
+00189                 // Unary bit operators
+00190 
+00191                 template <typename U> 
+00192                 GLM_FUNC_DECL tvec2<T> & operator%= (U const & s);
+00193                 template <typename U> 
+00194                 GLM_FUNC_DECL tvec2<T> & operator%= (tvec2<U> const & v);
+00195                 template <typename U> 
+00196                 GLM_FUNC_DECL tvec2<T> & operator&= (U const & s);
+00197                 template <typename U> 
+00198                 GLM_FUNC_DECL tvec2<T> & operator&= (tvec2<U> const & v);
+00199                 template <typename U> 
+00200                 GLM_FUNC_DECL tvec2<T> & operator|= (U const & s);
+00201                 template <typename U> 
+00202                 GLM_FUNC_DECL tvec2<T> & operator|= (tvec2<U> const & v);
+00203                 template <typename U> 
+00204                 GLM_FUNC_DECL tvec2<T> & operator^= (U const & s);
+00205                 template <typename U> 
+00206                 GLM_FUNC_DECL tvec2<T> & operator^= (tvec2<U> const & v);
+00207                 template <typename U> 
+00208                 GLM_FUNC_DECL tvec2<T> & operator<<=(U const & s);
+00209                 template <typename U> 
+00210                 GLM_FUNC_DECL tvec2<T> & operator<<=(tvec2<U> const & v);
+00211                 template <typename U> 
+00212                 GLM_FUNC_DECL tvec2<T> & operator>>=(U const & s);
+00213                 template <typename U> 
+00214                 GLM_FUNC_DECL tvec2<T> & operator>>=(tvec2<U> const & v);
+00215 
+00217                 // Swizzle operators
+00218 
+00219                 GLM_FUNC_DECL value_type swizzle(comp X) const;
+00220                 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
+00221                 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
+00222                 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
+00223                 GLM_FUNC_DECL tref2<T> swizzle(comp X, comp Y);
+00224         };
+00225 
+00226         template <typename T>
+00227         struct tref2
+00228         {
+00229                 GLM_FUNC_DECL tref2(T & x, T & y);
+00230                 GLM_FUNC_DECL tref2(tref2<T> const & r);
+00231                 GLM_FUNC_DECL explicit tref2(tvec2<T> const & v);
+00232 
+00233                 GLM_FUNC_DECL tref2<T> & operator= (tref2<T> const & r);
+00234                 GLM_FUNC_DECL tref2<T> & operator= (tvec2<T> const & v);
+00235 
+00236                 GLM_FUNC_DECL tvec2<T> operator() ();
+00237 
+00238                 T & x;
+00239                 T & y;
+00240         };
+00241 
+00242         GLM_DETAIL_IS_VECTOR(tvec2);
+00243 
+00244 } //namespace detail
+00245 
+00248 
+00254         typedef detail::tvec2<highp_float>              highp_vec2;
+00255 
+00261         typedef detail::tvec2<mediump_float>    mediump_vec2;
+00262 
+00268         typedef detail::tvec2<lowp_float>               lowp_vec2;
+00269 
+00275         typedef detail::tvec2<highp_int>                highp_ivec2;
+00276 
+00282         typedef detail::tvec2<mediump_int>              mediump_ivec2;
+00283 
+00289         typedef detail::tvec2<lowp_int>                 lowp_ivec2;
+00290         
+00296         typedef detail::tvec2<highp_uint>               highp_uvec2;
+00297 
+00303         typedef detail::tvec2<mediump_uint>             mediump_uvec2;
+00304 
+00310         typedef detail::tvec2<lowp_uint>                lowp_uvec2;
+00311 
+00313 }//namespace glm
+00314 
+00315 #ifndef GLM_EXTERNAL_TEMPLATE
+00316 #include "type_vec2.inl"
+00317 #endif//GLM_EXTERNAL_TEMPLATE
+00318 
+00319 #endif//glm_core_type_gentype2
+
+
+ + + + + + diff --git a/doc/api/a00113.html b/doc/api/a00113.html new file mode 100644 index 00000000..9e2fd441 --- /dev/null +++ b/doc/api/a00113.html @@ -0,0 +1,96 @@ + + + + + +type_vec3.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_vec3.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef detail::tvec3< highp_int > highp_ivec3
typedef detail::tvec3< highp_uint > highp_uvec3
typedef detail::tvec3
+< highp_float > 
highp_vec3
typedef detail::tvec3< lowp_int > lowp_ivec3
typedef detail::tvec3< lowp_uint > lowp_uvec3
typedef detail::tvec3< lowp_float > lowp_vec3
typedef detail::tvec3
+< mediump_int > 
mediump_ivec3
typedef detail::tvec3
+< mediump_uint > 
mediump_uvec3
typedef detail::tvec3
+< mediump_float > 
mediump_vec3
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-22 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_vec3.hpp.

+
+ + + + + + diff --git a/doc/api/a00113_source.html b/doc/api/a00113_source.html new file mode 100644 index 00000000..3ff9e180 --- /dev/null +++ b/doc/api/a00113_source.html @@ -0,0 +1,345 @@ + + + + + +type_vec3.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_vec3.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_gentype3
+00030 #define glm_core_type_gentype3
+00031 
+00032 #include "type_vec.hpp"
+00033 #include "type_float.hpp"
+00034 #include "type_int.hpp"
+00035 #include "type_size.hpp"
+00036 #include "_swizzle.hpp"
+00037 
+00038 namespace glm{
+00039 namespace detail
+00040 {
+00041         template <typename T> struct tref2;
+00042         template <typename T> struct tref3;
+00043         template <typename T> struct tref4;
+00044         template <typename T> struct tvec2;
+00045         template <typename T> struct tvec4;
+00046 
+00047         // Basic 3D vector type.
+00048         // \ingroup core_template
+00049         template <typename T>
+00050         struct tvec3
+00051         {       
+00052                 enum ctor{null};
+00053 
+00054                 typedef T value_type;
+00055                 typedef std::size_t size_type;
+00056                 GLM_FUNC_DECL size_type length() const;
+00057 
+00058                 typedef tvec3<T> type;
+00059                 typedef tvec3<bool> bool_type;
+00060 
+00062                 // Data
+00063 
+00064 #       if(GLM_COMPONENT == GLM_COMPONENT_CXX11)
+00065                 union 
+00066                 {
+00067 #               if(defined(GLM_SWIZZLE))
+00068                         _GLM_SWIZZLE3_2_MEMBERS(value_type, glm::detail::tvec2<value_type>, x, y, z)
+00069                         _GLM_SWIZZLE3_2_MEMBERS(value_type, glm::detail::tvec2<value_type>, r, g, b)
+00070                         _GLM_SWIZZLE3_2_MEMBERS(value_type, glm::detail::tvec2<value_type>, s, t, p)
+00071                         _GLM_SWIZZLE3_3_MEMBERS(value_type, glm::detail::tvec3<value_type>, x, y, z)
+00072                         _GLM_SWIZZLE3_3_MEMBERS(value_type, glm::detail::tvec3<value_type>, r, g, b)
+00073                         _GLM_SWIZZLE3_3_MEMBERS(value_type, glm::detail::tvec3<value_type>, s, t, p)
+00074                         _GLM_SWIZZLE3_4_MEMBERS(value_type, glm::detail::tvec4<value_type>, x, y, z)
+00075                         _GLM_SWIZZLE3_4_MEMBERS(value_type, glm::detail::tvec4<value_type>, r, g, b)
+00076                         _GLM_SWIZZLE3_4_MEMBERS(value_type, glm::detail::tvec4<value_type>, s, t, p)
+00077 #               endif//(defined(GLM_SWIZZLE))
+00078 
+00079                         struct{value_type r, g, b;};
+00080                         struct{value_type s, t, p;};
+00081                         struct{value_type x, y, z;};
+00082                 };
+00083 #       elif(GLM_COMPONENT == GLM_COMPONENT_CXX98)
+00084                 union {value_type x, r, s;};
+00085                 union {value_type y, g, t;};
+00086                 union {value_type z, b, p;};
+00087 
+00088 #               if(defined(GLM_SWIZZLE))
+00089                         // Defines all he swizzle operator as functions
+00090                         GLM_SWIZZLE_GEN_REF_FROM_VEC3(T, detail::tvec3, detail::tref2, detail::tref3)
+00091                         GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, detail::tvec3, detail::tvec2, detail::tvec3, detail::tvec4)
+00092 #               endif//(defined(GLM_SWIZZLE))
+00093 #       else //(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
+00094                 value_type x, y, z;
+00095 
+00096 #               if(defined(GLM_SWIZZLE))
+00097                         // Defines all he swizzle operator as functions
+00098                         GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, detail::tvec3, detail::tref2, detail::tref3, x, y, z)
+00099                         GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, detail::tvec3, detail::tvec2, detail::tvec3, detail::tvec4, x, y, z)
+00100 #               endif//(defined(GLM_SWIZZLE))
+00101 #       endif//GLM_COMPONENT
+00102 
+00104                 // Accesses
+00105 
+00106                 GLM_FUNC_DECL value_type & operator[](size_type i);
+00107                 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
+00108 
+00110                 // Implicit basic constructors
+00111 
+00112                 GLM_FUNC_DECL tvec3();
+00113                 GLM_FUNC_DECL tvec3(tvec3<T> const & v);
+00114 
+00116                 // Explicit basic constructors
+00117 
+00118                 GLM_FUNC_DECL explicit tvec3(
+00119                         ctor);
+00120                 GLM_FUNC_DECL explicit tvec3(
+00121                         value_type const & s);
+00122                 GLM_FUNC_DECL explicit tvec3(
+00123                         value_type const & s1, 
+00124                         value_type const & s2, 
+00125                         value_type const & s3);
+00126 
+00128                 // Convertion scalar constructors
+00129 
+00131                 template <typename U> 
+00132                 GLM_FUNC_DECL explicit tvec3(
+00133                         U const & x);
+00135                 template <typename U, typename V, typename W> 
+00136                 GLM_FUNC_DECL explicit tvec3(
+00137                         U const & x, 
+00138                         V const & y, 
+00139                         W const & z);                   
+00140 
+00142                 // Convertion vector constructors
+00143 
+00145                 template <typename A, typename B> 
+00146                 GLM_FUNC_DECL explicit tvec3(tvec2<A> const & v, B const & s);
+00148                 template <typename A, typename B> 
+00149                 GLM_FUNC_DECL explicit tvec3(A const & s, tvec2<B> const & v);
+00151                 template <typename U> 
+00152                 GLM_FUNC_DECL explicit tvec3(tvec3<U> const & v);
+00154                 template <typename U> 
+00155                 GLM_FUNC_DECL explicit tvec3(tvec4<U> const & v);
+00156 
+00158                 // Swizzle constructors
+00159 
+00160                 GLM_FUNC_DECL tvec3(tref3<T> const & r);
+00161 
+00162                 template <typename A, typename B> 
+00163                 GLM_FUNC_DECL explicit tvec3(tref2<A> const & v, B const & s);
+00164 
+00165                 template <typename A, typename B> 
+00166                 GLM_FUNC_DECL explicit tvec3(A const & s, tref2<B> const & v);
+00167 
+00168         template <int E0, int E1, int E2>
+00169         GLM_FUNC_DECL tvec3(glm::detail::swizzle<3, T, tvec3<T>, E0, E1, E2, -1> const & that)
+00170         {
+00171             *this = that();
+00172         }
+00173 
+00174         template <int E0, int E1>
+00175         GLM_FUNC_DECL tvec3(glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v, T const & s)
+00176         {
+00177             *this = tvec3<T>(v(), s);
+00178         }
+00179 
+00180         template <int E0, int E1>
+00181         GLM_FUNC_DECL tvec3(T const & s, glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v)
+00182         {
+00183             *this = tvec3<T>(s, v());
+00184         }
+00185 
+00187                 // Unary arithmetic operators
+00188 
+00189                 GLM_FUNC_DECL tvec3<T> & operator= (tvec3<T> const & v);
+00190                 template <typename U> 
+00191                 GLM_FUNC_DECL tvec3<T> & operator= (tvec3<U> const & v);
+00192 
+00193                 template <typename U> 
+00194                 GLM_FUNC_DECL tvec3<T> & operator+=(U const & s);
+00195                 template <typename U> 
+00196                 GLM_FUNC_DECL tvec3<T> & operator+=(tvec3<U> const & v);
+00197                 template <typename U> 
+00198                 GLM_FUNC_DECL tvec3<T> & operator-=(U const & s);
+00199                 template <typename U> 
+00200                 GLM_FUNC_DECL tvec3<T> & operator-=(tvec3<U> const & v);
+00201                 template <typename U> 
+00202                 GLM_FUNC_DECL tvec3<T> & operator*=(U const & s);
+00203                 template <typename U> 
+00204                 GLM_FUNC_DECL tvec3<T> & operator*=(tvec3<U> const & v);
+00205                 template <typename U> 
+00206                 GLM_FUNC_DECL tvec3<T> & operator/=(U const & s);
+00207                 template <typename U> 
+00208                 GLM_FUNC_DECL tvec3<T> & operator/=(tvec3<U> const & v);
+00209                 GLM_FUNC_DECL tvec3<T> & operator++();
+00210                 GLM_FUNC_DECL tvec3<T> & operator--();
+00211 
+00213                 // Unary bit operators
+00214 
+00215                 template <typename U>
+00216                 GLM_FUNC_DECL tvec3<T> & operator%= (U const & s);
+00217                 template <typename U>
+00218                 GLM_FUNC_DECL tvec3<T> & operator%= (tvec3<U> const & v);
+00219                 template <typename U>
+00220                 GLM_FUNC_DECL tvec3<T> & operator&= (U const & s);
+00221                 template <typename U>
+00222                 GLM_FUNC_DECL tvec3<T> & operator&= (tvec3<U> const & v);
+00223                 template <typename U>
+00224                 GLM_FUNC_DECL tvec3<T> & operator|= (U const & s);
+00225                 template <typename U>
+00226                 GLM_FUNC_DECL tvec3<T> & operator|= (tvec3<U> const & v);
+00227                 template <typename U>
+00228                 GLM_FUNC_DECL tvec3<T> & operator^= (U const & s);
+00229                 template <typename U>
+00230                 GLM_FUNC_DECL tvec3<T> & operator^= (tvec3<U> const & v);
+00231                 template <typename U>
+00232                 GLM_FUNC_DECL tvec3<T> & operator<<=(U const & s);
+00233                 template <typename U>
+00234                 GLM_FUNC_DECL tvec3<T> & operator<<=(tvec3<U> const & v);
+00235                 template <typename U>
+00236                 GLM_FUNC_DECL tvec3<T> & operator>>=(U const & s);
+00237                 template <typename U>
+00238                 GLM_FUNC_DECL tvec3<T> & operator>>=(tvec3<U> const & v);
+00239 
+00241                 // Swizzle operators
+00242 
+00243                 GLM_FUNC_DECL value_type swizzle(comp X) const;
+00244                 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
+00245                 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
+00246                 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
+00247                 GLM_FUNC_DECL tref2<T> swizzle(comp X, comp Y);
+00248                 GLM_FUNC_DECL tref3<T> swizzle(comp X, comp Y, comp Z);
+00249         };
+00250 
+00251         template <typename T>
+00252         struct tref3
+00253         {
+00254                 GLM_FUNC_DECL tref3(T & x, T & y, T & z);
+00255                 GLM_FUNC_DECL tref3(tref3<T> const & r);
+00256                 GLM_FUNC_DECL explicit tref3(tvec3<T> const & v);
+00257 
+00258                 GLM_FUNC_DECL tref3<T> & operator= (tref3<T> const & r);
+00259                 GLM_FUNC_DECL tref3<T> & operator= (tvec3<T> const & v);
+00260 
+00261                 GLM_FUNC_DECL tvec3<T> operator() ();
+00262 
+00263                 T & x;
+00264                 T & y;
+00265                 T & z;
+00266         };
+00267 
+00268         GLM_DETAIL_IS_VECTOR(tvec3);
+00269 } //namespace detail
+00270 
+00273 
+00279         typedef detail::tvec3<highp_float>              highp_vec3;
+00280 
+00286         typedef detail::tvec3<mediump_float>    mediump_vec3;
+00287 
+00293         typedef detail::tvec3<lowp_float>               lowp_vec3;
+00294 
+00300         typedef detail::tvec3<highp_int>                highp_ivec3;
+00301 
+00307         typedef detail::tvec3<mediump_int>              mediump_ivec3;
+00308 
+00314         typedef detail::tvec3<lowp_int>                 lowp_ivec3;
+00315 
+00321         typedef detail::tvec3<highp_uint>               highp_uvec3;
+00322 
+00328         typedef detail::tvec3<mediump_uint>             mediump_uvec3;
+00329 
+00335         typedef detail::tvec3<lowp_uint>                lowp_uvec3;
+00336 
+00338 }//namespace glm
+00339 
+00340 #ifndef GLM_EXTERNAL_TEMPLATE
+00341 #include "type_vec3.inl"
+00342 #endif//GLM_EXTERNAL_TEMPLATE
+00343 
+00344 #endif//glm_core_type_gentype3
+
+
+ + + + + + diff --git a/doc/api/a00114.html b/doc/api/a00114.html new file mode 100644 index 00000000..29372c3a --- /dev/null +++ b/doc/api/a00114.html @@ -0,0 +1,96 @@ + + + + + +type_vec4.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
type_vec4.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef detail::tvec4< highp_int > highp_ivec4
typedef detail::tvec4< highp_uint > highp_uvec4
typedef detail::tvec4
+< highp_float > 
highp_vec4
typedef detail::tvec4< lowp_int > lowp_ivec4
typedef detail::tvec4< lowp_uint > lowp_uvec4
typedef detail::tvec4< lowp_float > lowp_vec4
typedef detail::tvec4
+< mediump_int > 
mediump_ivec4
typedef detail::tvec4
+< mediump_uint > 
mediump_uvec4
typedef detail::tvec4
+< mediump_float > 
mediump_vec4
+

Detailed Description

+

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.

+

GLM Core

+
Date:
2008-08-22 / 2011-06-15
+
Author:
Christophe Riccio
+ +

Definition in file type_vec4.hpp.

+
+ + + + + + diff --git a/doc/api/a00114_source.html b/doc/api/a00114_source.html new file mode 100644 index 00000000..3d87b365 --- /dev/null +++ b/doc/api/a00114_source.html @@ -0,0 +1,391 @@ + + + + + +type_vec4.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
type_vec4.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 #ifndef glm_core_type_gentype4
+00030 #define glm_core_type_gentype4
+00031 
+00032 #include "type_vec.hpp"
+00033 #include "type_float.hpp"
+00034 #include "type_int.hpp"
+00035 #include "type_size.hpp"
+00036 #include "_swizzle.hpp"
+00037 
+00038 namespace glm{
+00039 namespace detail
+00040 {
+00041         template <typename T> struct tref2;
+00042         template <typename T> struct tref3;
+00043         template <typename T> struct tref4;
+00044         template <typename T> struct tvec2;
+00045         template <typename T> struct tvec3;
+00046 
+00047         // Basic 4D vector type.
+00048         // @ingroup core_template
+00049         template <typename T>
+00050         struct tvec4
+00051         {
+00052                 enum ctor{null};
+00053 
+00054                 typedef T value_type;
+00055                 typedef std::size_t size_type;
+00056                 GLM_FUNC_DECL size_type length() const;
+00057 
+00058                 typedef tvec4<T> type;
+00059                 typedef tvec4<bool> bool_type;
+00060 
+00062                 // Data
+00063 
+00064 #       if(GLM_COMPONENT == GLM_COMPONENT_CXX11)
+00065                 union 
+00066                 {
+00067 #               if(defined(GLM_SWIZZLE))
+00068                         _GLM_SWIZZLE4_2_MEMBERS(value_type, glm::detail::tvec2<value_type>, x, y, z, w)
+00069                         _GLM_SWIZZLE4_2_MEMBERS(value_type, glm::detail::tvec2<value_type>, r, g, b, a)
+00070                         _GLM_SWIZZLE4_2_MEMBERS(value_type, glm::detail::tvec2<value_type>, s, t, p, q)
+00071                         _GLM_SWIZZLE4_3_MEMBERS(value_type, glm::detail::tvec3<value_type>, x, y, z, w)
+00072                         _GLM_SWIZZLE4_3_MEMBERS(value_type, glm::detail::tvec3<value_type>, r, g, b, a)
+00073                         _GLM_SWIZZLE4_3_MEMBERS(value_type, glm::detail::tvec3<value_type>, s, t, p, q)
+00074                         _GLM_SWIZZLE4_4_MEMBERS(value_type, glm::detail::tvec4<value_type>, x, y, z, w)
+00075                         _GLM_SWIZZLE4_4_MEMBERS(value_type, glm::detail::tvec4<value_type>, r, g, b, a)
+00076                         _GLM_SWIZZLE4_4_MEMBERS(value_type, glm::detail::tvec4<value_type>, s, t, p, q)
+00077 #               endif//(defined(GLM_SWIZZLE))
+00078 
+00079                         struct{value_type r, g, b, a;};
+00080                         struct{value_type s, t, p, q;};
+00081                         struct{value_type x, y, z, w;};
+00082                 };
+00083 #       elif(GLM_COMPONENT == GLM_COMPONENT_CXX98)
+00084                 union {value_type x, r, s;};
+00085                 union {value_type y, g, t;};
+00086                 union {value_type z, b, p;};
+00087                 union {value_type w, a, q;};
+00088 
+00089 #               if(defined(GLM_SWIZZLE))
+00090                         // Defines all he swizzle operator as functions
+00091                         GLM_SWIZZLE_GEN_REF_FROM_VEC4(T, detail::tvec4, detail::tref2, detail::tref3, detail::tref4)
+00092                         GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, detail::tvec4, detail::tvec2, detail::tvec3, detail::tvec4)
+00093 #               endif//(defined(GLM_SWIZZLE))
+00094 #       else //(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
+00095                 value_type x, y, z, w;
+00096 
+00097 #               if(defined(GLM_SWIZZLE))
+00098                         // Defines all he swizzle operator as functions
+00099                         GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, detail::tvec4, detail::tref2, detail::tref3, detail::tref4, x, y, z, w)
+00100                         GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, detail::tvec4, detail::tvec2, detail::tvec3, detail::tvec4, x, y, z, w)
+00101 #               endif//(defined(GLM_SWIZZLE))
+00102 #       endif//GLM_COMPONENT
+00103 
+00105                 // Accesses
+00106 
+00107                 GLM_FUNC_DECL value_type & operator[](size_type i);
+00108                 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
+00109 
+00111                 // Implicit basic constructors
+00112 
+00113                 GLM_FUNC_DECL tvec4();
+00114                 GLM_FUNC_DECL tvec4(type const & v);
+00115 
+00117                 // Explicit basic constructors
+00118 
+00119                 GLM_FUNC_DECL explicit tvec4(
+00120                         ctor);
+00121                 GLM_FUNC_DECL explicit tvec4(
+00122                         value_type const & s);
+00123                 GLM_FUNC_DECL explicit tvec4(
+00124                         value_type const & s0, 
+00125                         value_type const & s1, 
+00126                         value_type const & s2, 
+00127                         value_type const & s3);
+00128 
+00130                 // Convertion scalar constructors
+00131 
+00133                 template <typename U> 
+00134                 GLM_FUNC_DECL explicit tvec4(
+00135                         U const & x);
+00137                 template <typename A, typename B, typename C, typename D> 
+00138                 GLM_FUNC_DECL explicit tvec4(
+00139                         A const & x, 
+00140                         B const & y, 
+00141                         C const & z, 
+00142                         D const & w);                   
+00143 
+00145                 // Convertion vector constructors
+00146 
+00148                 template <typename A, typename B, typename C> 
+00149                 GLM_FUNC_DECL explicit tvec4(tvec2<A> const & v, B const & s1, C const & s2);
+00151                 template <typename A, typename B, typename C> 
+00152                 GLM_FUNC_DECL explicit tvec4(A const & s1, tvec2<B> const & v, C const & s2);
+00154                 template <typename A, typename B, typename C> 
+00155                 GLM_FUNC_DECL explicit tvec4(A const & s1, B const & s2, tvec2<C> const & v);
+00157                 template <typename A, typename B> 
+00158                 GLM_FUNC_DECL explicit tvec4(tvec3<A> const & v, B const & s);
+00160                 template <typename A, typename B> 
+00161                 GLM_FUNC_DECL explicit tvec4(A const & s, tvec3<B> const & v);
+00163                 template <typename A, typename B> 
+00164                 GLM_FUNC_DECL explicit tvec4(tvec2<A> const & v1, tvec2<B> const & v2);
+00166                 template <typename U> 
+00167                 GLM_FUNC_DECL explicit tvec4(tvec4<U> const & v);
+00168 
+00169         template <int E0, int E1, int E2, int E3>
+00170         GLM_FUNC_DECL tvec4(glm::detail::swizzle<4, T, tvec4<T>, E0, E1, E2, E3> const & that)
+00171         {
+00172             *this = that();
+00173         }
+00174 
+00175         template <int E0, int E1, int F0, int F1>
+00176         GLM_FUNC_DECL tvec4(glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v, glm::detail::swizzle<2, T, tvec2<T>, F0, F1, -1, -2> const & u)
+00177         {
+00178             *this = tvec4<T>(v(), u());
+00179         }
+00180 
+00181         template <int E0, int E1>
+00182         GLM_FUNC_DECL tvec4(T const & x, T const & y, glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v)
+00183         {
+00184             *this = tvec4<T>(x, y, v());
+00185         }
+00186 
+00187         template <int E0, int E1>
+00188         GLM_FUNC_DECL tvec4(T const & x, glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v, T const & w)
+00189         {
+00190             *this = tvec4<T>(x, v(), w);
+00191         }
+00192 
+00193         template <int E0, int E1>
+00194         GLM_FUNC_DECL tvec4(glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v, T const & z, T const & w)
+00195         {
+00196             *this = tvec4<T>(v(), z, w);
+00197         }
+00198 
+00199         template <int E0, int E1, int E2>
+00200         GLM_FUNC_DECL tvec4(glm::detail::swizzle<3, T, tvec3<T>, E0, E1, E2, -1> const & v, T const & w)
+00201         {
+00202             *this = tvec4<T>(v(), w);
+00203         }
+00204 
+00205         template <int E0, int E1, int E2>
+00206         GLM_FUNC_DECL tvec4(T const & x, glm::detail::swizzle<3, T, tvec3<T>, E0, E1, E2, -1> const & v)
+00207         {
+00208             *this = tvec4<T>(x, v());
+00209         }
+00210 
+00212                 // Swizzle constructors
+00213 
+00214                 GLM_FUNC_DECL tvec4(tref4<T> const & r);
+00215 
+00217                 template <typename A, typename B, typename C> 
+00218                 GLM_FUNC_DECL explicit tvec4(tref2<A> const & v, B const & s1, C const & s2);
+00220                 template <typename A, typename B, typename C> 
+00221                 GLM_FUNC_DECL explicit tvec4(A const & s1, tref2<B> const & v, C const & s2);
+00223                 template <typename A, typename B, typename C> 
+00224                 GLM_FUNC_DECL explicit tvec4(A const & s1, B const & s2, tref2<C> const & v);
+00226                 template <typename A, typename B> 
+00227                 GLM_FUNC_DECL explicit tvec4(tref3<A> const & v, B const & s);
+00229                 template <typename A, typename B> 
+00230                 GLM_FUNC_DECL explicit tvec4(A const & s, tref3<B> const & v);
+00232                 template <typename A, typename B> 
+00233                 GLM_FUNC_DECL explicit tvec4(tref2<A> const & v1, tref2<B> const & v2);
+00235                 template <typename A, typename B> 
+00236                 GLM_FUNC_DECL explicit tvec4(tvec2<A> const & v1, tref2<B> const & v2);
+00238                 template <typename A, typename B> 
+00239                 GLM_FUNC_DECL explicit tvec4(tref2<A> const & v1, tvec2<B> const & v2);
+00240 
+00242                 // Unary arithmetic operators
+00243 
+00244                 GLM_FUNC_DECL tvec4<T> & operator= (tvec4<T> const & v);
+00245                 template <typename U>
+00246                 GLM_FUNC_DECL tvec4<T> & operator= (tvec4<U> const & v);
+00247 
+00248                 template <typename U>
+00249                 GLM_FUNC_DECL tvec4<T> & operator+=(U const & s);
+00250                 template <typename U>
+00251                 GLM_FUNC_DECL tvec4<T> & operator+=(tvec4<U> const & v);
+00252                 template <typename U>
+00253                 GLM_FUNC_DECL tvec4<T> & operator-=(U const & s);
+00254                 template <typename U>
+00255                 GLM_FUNC_DECL tvec4<T> & operator-=(tvec4<U> const & v);
+00256                 template <typename U>
+00257                 GLM_FUNC_DECL tvec4<T> & operator*=(U const & s);
+00258                 template <typename U>
+00259                 GLM_FUNC_DECL tvec4<T> & operator*=(tvec4<U> const & v);
+00260                 template <typename U>
+00261                 GLM_FUNC_DECL tvec4<T> & operator/=(U const & s);
+00262                 template <typename U>
+00263                 GLM_FUNC_DECL tvec4<T> & operator/=(tvec4<U> const & v);
+00264                 GLM_FUNC_DECL tvec4<T> & operator++();
+00265                 GLM_FUNC_DECL tvec4<T> & operator--();
+00266 
+00268                 // Unary bit operators
+00269 
+00270                 template <typename U>
+00271                 GLM_FUNC_DECL tvec4<T> & operator%= (U const & s);
+00272                 template <typename U>
+00273                 GLM_FUNC_DECL tvec4<T> & operator%= (tvec4<U> const & v);
+00274                 template <typename U>
+00275                 GLM_FUNC_DECL tvec4<T> & operator&= (U const & s);
+00276                 template <typename U>
+00277                 GLM_FUNC_DECL tvec4<T> & operator&= (tvec4<U> const & v);
+00278                 template <typename U>
+00279                 GLM_FUNC_DECL tvec4<T> & operator|= (U const & s);
+00280                 template <typename U>
+00281                 GLM_FUNC_DECL tvec4<T> & operator|= (tvec4<U> const & v);
+00282                 template <typename U>
+00283                 GLM_FUNC_DECL tvec4<T> & operator^= (U const & s);
+00284                 template <typename U>
+00285                 GLM_FUNC_DECL tvec4<T> & operator^= (tvec4<U> const & v);
+00286                 template <typename U>
+00287                 GLM_FUNC_DECL tvec4<T> & operator<<=(U const & s);
+00288                 template <typename U>
+00289                 GLM_FUNC_DECL tvec4<T> & operator<<=(tvec4<U> const & v);
+00290                 template <typename U>
+00291                 GLM_FUNC_DECL tvec4<T> & operator>>=(U const & s);
+00292                 template <typename U>
+00293                 GLM_FUNC_DECL tvec4<T> & operator>>=(tvec4<U> const & v);
+00294 
+00296                 // Swizzle operators
+00297 
+00298                 GLM_FUNC_DECL value_type swizzle(comp X) const;
+00299                 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
+00300                 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
+00301                 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
+00302                 GLM_FUNC_DECL tref2<T> swizzle(comp X, comp Y);
+00303                 GLM_FUNC_DECL tref3<T> swizzle(comp X, comp Y, comp Z);
+00304                 GLM_FUNC_DECL tref4<T> swizzle(comp X, comp Y, comp Z, comp W);
+00305         };
+00306 
+00307         template <typename T>
+00308         struct tref4
+00309         {
+00310                 GLM_FUNC_DECL tref4(T & x, T & y, T & z, T & w);
+00311                 GLM_FUNC_DECL tref4(tref4<T> const & r);
+00312                 GLM_FUNC_DECL explicit tref4(tvec4<T> const & v);
+00313 
+00314                 GLM_FUNC_DECL tref4<T> & operator= (tref4<T> const & r);
+00315                 GLM_FUNC_DECL tref4<T> & operator= (tvec4<T> const & v);
+00316 
+00317                 GLM_FUNC_DECL tvec4<T> operator() ();
+00318 
+00319                 T & x;
+00320                 T & y;
+00321                 T & z;
+00322                 T & w;
+00323         };
+00324 
+00325         GLM_DETAIL_IS_VECTOR(tvec4);
+00326 }//namespace detail
+00327 
+00330 
+00336         typedef detail::tvec4<highp_float>              highp_vec4;
+00337 
+00343         typedef detail::tvec4<mediump_float>    mediump_vec4;
+00344 
+00350         typedef detail::tvec4<lowp_float>               lowp_vec4;
+00351 
+00357         typedef detail::tvec4<highp_int>                highp_ivec4;
+00358 
+00364         typedef detail::tvec4<mediump_int>              mediump_ivec4;
+00365 
+00371         typedef detail::tvec4<lowp_int>                 lowp_ivec4;
+00372 
+00378         typedef detail::tvec4<highp_uint>               highp_uvec4;
+00379 
+00385         typedef detail::tvec4<mediump_uint>             mediump_uvec4;
+00386 
+00392         typedef detail::tvec4<lowp_uint>                lowp_uvec4;
+00393 
+00395 }//namespace glm
+00396 
+00397 #ifndef GLM_EXTERNAL_TEMPLATE
+00398 #include "type_vec4.inl"
+00399 #endif//GLM_EXTERNAL_TEMPLATE
+00400 
+00401 #endif//glm_core_type_gentype4
+
+
+ + + + + + diff --git a/doc/api/a00115.html b/doc/api/a00115.html new file mode 100644 index 00000000..67c66da7 --- /dev/null +++ b/doc/api/a00115.html @@ -0,0 +1,96 @@ + + + + + +ulp.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
ulp.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename T >
uint float_distance (T const &x, T const &y)
template<typename T , template< typename > class vecType>
vecType< uint > float_distance (vecType< T > const &x, vecType< T > const &y)
template<typename genType >
genType next_float (genType const &x)
template<typename genType >
genType next_float (genType const &x, uint const &Distance)
template<typename genType >
genType prev_float (genType const &x)
template<typename genType >
genType prev_float (genType const &x, uint const &Distance)
+

Detailed Description

+

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.

+

GLM_GTX_ulp: Accuracy measurement

+
Date:
2011-02-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file ulp.hpp.

+
+ + + + + + diff --git a/doc/api/a00115_source.html b/doc/api/a00115_source.html new file mode 100644 index 00000000..0117748a --- /dev/null +++ b/doc/api/a00115_source.html @@ -0,0 +1,140 @@ + + + + + +ulp.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
ulp.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_GTX_ulp
+00040 #define GLM_GTX_ulp GLM_VERSION
+00041 
+00042 // Dependency:
+00043 #include "../glm.hpp"
+00044 
+00045 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00046 #       pragma message("GLM: GLM_GTX_ulp extension included")
+00047 #endif
+00048 
+00049 namespace glm
+00050 {
+00053 
+00056     template <typename genType>
+00057     genType next_float(genType const & x);
+00058         
+00061     template <typename genType>
+00062     genType prev_float(genType const & x);
+00063 
+00066     template <typename genType>
+00067     genType next_float(genType const & x, uint const & Distance);
+00068         
+00071     template <typename genType>
+00072     genType prev_float(genType const & x, uint const & Distance);
+00073         
+00076     template <typename T>
+00077     uint float_distance(T const & x, T const & y);
+00078         
+00081     template<typename T, template<typename> class vecType>
+00082     vecType<uint> float_distance(vecType<T> const & x, vecType<T> const & y);
+00083         
+00085 }// namespace glm
+00086 
+00087 #include "ulp.inl"
+00088 
+00089 #endif//GLM_GTX_ulp
+00090 
+
+
+ + + + + + diff --git a/doc/api/a00116_source.html b/doc/api/a00116_source.html new file mode 100644 index 00000000..f88ca31a --- /dev/null +++ b/doc/api/a00116_source.html @@ -0,0 +1,91 @@ + + + + + +unsigned_int.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
unsigned_int.hpp
+
+
+
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 #if(defined(GLM_MESSAGES))
+00025 #       pragma message("GLM: GLM_GTX_unsigned_int extension is deprecated, include GLM_GTX_integer instead")
+00026 #endif
+
+
+ + + + + + diff --git a/doc/api/a00117.html b/doc/api/a00117.html new file mode 100644 index 00000000..8bd767c8 --- /dev/null +++ b/doc/api/a00117.html @@ -0,0 +1,97 @@ + + + + + +vec1.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
vec1.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + +

+Typedefs

typedef detail::tvec1< bool > bvec1
typedef detail::highp_ivec1_t highp_ivec1
typedef detail::highp_uvec1_t highp_uvec1
typedef detail::highp_vec1_t highp_vec1
typedef mediump_ivec1 ivec1
typedef detail::lowp_ivec1_t lowp_ivec1
typedef detail::lowp_uvec1_t lowp_uvec1
typedef detail::lowp_vec1_t lowp_vec1
typedef detail::mediump_ivec1_t mediump_ivec1
typedef detail::mediump_uvec1_t mediump_uvec1
typedef detail::mediump_vec1_t mediump_vec1
typedef mediump_uvec1 uvec1
typedef mediump_vec1 vec1
+

Detailed Description

+

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.

+

GLM_GTX_vec1: Add vec1 types

+
Date:
2010-02-08 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file vec1.hpp.

+
+ + + + + + diff --git a/doc/api/a00117_source.html b/doc/api/a00117_source.html new file mode 100644 index 00000000..7c71c299 --- /dev/null +++ b/doc/api/a00117_source.html @@ -0,0 +1,172 @@ + + + + + +vec1.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
vec1.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 #ifndef GLM_GTX_vec1
+00038 #define GLM_GTX_vec1 GLM_VERSION
+00039 
+00040 // Dependency:
+00041 #include "../glm.hpp"
+00042 #include "../core/type_vec1.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_vec1 extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00053         typedef detail::highp_vec1_t                    highp_vec1;
+00057         typedef detail::mediump_vec1_t                  mediump_vec1;
+00061         typedef detail::lowp_vec1_t                             lowp_vec1;
+00062 
+00066         typedef detail::highp_ivec1_t                   highp_ivec1;
+00070         typedef detail::mediump_ivec1_t                 mediump_ivec1;
+00074         typedef detail::lowp_ivec1_t                    lowp_ivec1;
+00075 
+00079         typedef detail::highp_uvec1_t                   highp_uvec1;
+00083         typedef detail::mediump_uvec1_t                 mediump_uvec1;
+00087         typedef detail::lowp_uvec1_t                    lowp_uvec1;
+00088 
+00090         // vec1 definition
+00091 
+00094         typedef detail::tvec1<bool>     bvec1;
+00095 
+00096 #if(defined(GLM_PRECISION_HIGHP_FLOAT))
+00097         typedef highp_vec1                      vec1;
+00098 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+00099         typedef mediump_vec1                    vec1;
+00100 #elif(defined(GLM_PRECISION_LOWP_FLOAT))
+00101         typedef lowp_vec1                       vec1;
+00102 #else
+00103 
+00104 
+00105         typedef mediump_vec1                    vec1;
+00106 #endif//GLM_PRECISION
+00107 
+00108 #if(defined(GLM_PRECISION_HIGHP_INT))
+00109         typedef highp_ivec1                     ivec1;
+00110 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+00111         typedef mediump_ivec1           ivec1;
+00112 #elif(defined(GLM_PRECISION_LOWP_INT))
+00113         typedef lowp_ivec1                      ivec1;
+00114 #else
+00115 
+00116 
+00117         typedef mediump_ivec1           ivec1;
+00118 #endif//GLM_PRECISION
+00119 
+00120 #if(defined(GLM_PRECISION_HIGHP_UINT))
+00121         typedef highp_uvec1                     uvec1;
+00122 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
+00123         typedef mediump_uvec1           uvec1;
+00124 #elif(defined(GLM_PRECISION_LOWP_UINT))
+00125         typedef lowp_uvec1                      uvec1;
+00126 #else
+00127 
+00128 
+00129         typedef mediump_uvec1           uvec1;
+00130 #endif//GLM_PRECISION
+00131 
+00132 }// namespace glm
+00133 
+00134 #include "vec1.inl"
+00135 
+00136 #endif//GLM_GTX_vec1
+00137 
+
+
+ + + + + + diff --git a/doc/api/a00118.html b/doc/api/a00118.html new file mode 100644 index 00000000..ebdb34fa --- /dev/null +++ b/doc/api/a00118.html @@ -0,0 +1,90 @@ + + + + + +vector_access.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
vector_access.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Functions

template<typename valType >
void set (detail::tvec2< valType > &v, valType const &x, valType const &y)
template<typename valType >
void set (detail::tvec3< valType > &v, valType const &x, valType const &y, valType const &z)
template<typename valType >
void set (detail::tvec4< valType > &v, valType const &x, valType const &y, valType const &z, valType const &w)
+

Detailed Description

+

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.

+

GLM_GTX_vector_access: Vector access

+
Date:
2006-01-16 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file vector_access.hpp.

+
+ + + + + + diff --git a/doc/api/a00118_source.html b/doc/api/a00118_source.html new file mode 100644 index 00000000..12dbcc4a --- /dev/null +++ b/doc/api/a00118_source.html @@ -0,0 +1,141 @@ + + + + + +vector_access.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
vector_access.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_vector_access
+00039 #define GLM_GTX_vector_access GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_vector_access extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055     template <typename valType> 
+00056         void set(
+00057                 detail::tvec2<valType> & v, 
+00058                 valType const & x, 
+00059                 valType const & y);
+00060 
+00063     template <typename valType> 
+00064         void set(
+00065                 detail::tvec3<valType> & v, 
+00066                 valType const & x, 
+00067                 valType const & y, 
+00068                 valType const & z);
+00069 
+00072     template <typename valType> 
+00073         void set(
+00074                 detail::tvec4<valType> & v, 
+00075                 valType const & x, 
+00076                 valType const & y, 
+00077                 valType const & z, 
+00078                 valType const & w);
+00079 
+00081 }//namespace glm
+00082 
+00083 #include "vector_access.inl"
+00084 
+00085 #endif//GLM_GTX_vector_access
+
+
+ + + + + + diff --git a/doc/api/a00119.html b/doc/api/a00119.html new file mode 100644 index 00000000..42c6f8ec --- /dev/null +++ b/doc/api/a00119.html @@ -0,0 +1,95 @@ + + + + + +vector_angle.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
vector_angle.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Functions

template<typename vecType >
GLM_FUNC_QUALIFIER
+vecType::value_type 
angle (vecType const &x, vecType const &y)
template<typename T >
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec2< T > const &x, detail::tvec2< T > const &y)
template<typename T >
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec3< T > const &x, detail::tvec3< T > const &y, detail::tvec3< T > const &ref)
+

Detailed Description

+

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.

+

GLM_GTX_vector_angle: Vector angle

+
Date:
2005-12-30 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+
+GLM_GTX_quaternion: Extented quaternion types and functions (dependence)
+
+GLM_GTX_epsilon: Epsilon comparison (dependence)
+ +

Definition in file vector_angle.hpp.

+
+ + + + + + diff --git a/doc/api/a00119_source.html b/doc/api/a00119_source.html new file mode 100644 index 00000000..649cca45 --- /dev/null +++ b/doc/api/a00119_source.html @@ -0,0 +1,141 @@ + + + + + +vector_angle.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
vector_angle.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 
+00040 #ifndef GLM_GTX_vector_angle
+00041 #define GLM_GTX_vector_angle GLM_VERSION
+00042 
+00043 // Dependency:
+00044 #include "../glm.hpp"
+00045 #include "../gtx/epsilon.hpp"
+00046 #include "../gtx/quaternion.hpp"
+00047 #include "../gtx/rotate_vector.hpp"
+00048 
+00049 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00050 #       pragma message("GLM: GLM_GTX_vector_angle extension included")
+00051 #endif
+00052 
+00053 namespace glm
+00054 {
+00057 
+00061         template <typename vecType> 
+00062         GLM_FUNC_QUALIFIER typename vecType::value_type angle(
+00063                 vecType const & x, 
+00064                 vecType const & y);
+00065 
+00069         template <typename T> 
+00070         GLM_FUNC_QUALIFIER T orientedAngle(
+00071                 detail::tvec2<T> const & x, 
+00072                 detail::tvec2<T> const & y);
+00073 
+00077         template <typename T>
+00078         GLM_FUNC_QUALIFIER T orientedAngle(
+00079                 detail::tvec3<T> const & x,
+00080                 detail::tvec3<T> const & y,
+00081                 detail::tvec3<T> const & ref);
+00082 
+00084 }// namespace glm
+00085 
+00086 #include "vector_angle.inl"
+00087 
+00088 #endif//GLM_GTX_vector_angle
+
+
+ + + + + + diff --git a/doc/api/a00120.html b/doc/api/a00120.html new file mode 100644 index 00000000..db4eb52b --- /dev/null +++ b/doc/api/a00120.html @@ -0,0 +1,98 @@ + + + + + +vector_query.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
vector_query.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
bool areCollinear (genType const &v0, genType const &v1, typename genType::value_type const &epsilon)
template<typename genType >
bool areOrthogonal (genType const &v0, genType const &v1, typename genType::value_type const &epsilon)
template<typename genType >
bool areOrthonormal (genType const &v0, genType const &v1, typename genType::value_type const &epsilon)
template<typename genType , template< typename > class vecType>
bool isNormalized (vecType< genType > const &v, genType const &epsilon)
template<typename valType >
bool isNull (detail::tvec2< valType > const &v, valType const &epsilon)
template<typename valType >
bool isNull (detail::tvec3< valType > const &v, valType const &epsilon)
template<typename valType >
bool isNull (detail::tvec4< valType > const &v, valType const &epsilon)
+

Detailed Description

+

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.

+

GLM_GTX_vector_query: Vector query

+
Date:
2008-03-10 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file vector_query.hpp.

+
+ + + + + + diff --git a/doc/api/a00120_source.html b/doc/api/a00120_source.html new file mode 100644 index 00000000..4ef19a40 --- /dev/null +++ b/doc/api/a00120_source.html @@ -0,0 +1,160 @@ + + + + + +vector_query.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
vector_query.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_vector_query
+00039 #define GLM_GTX_vector_query GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 #include <cfloat>
+00044 #include <limits>
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_GTX_vector_query extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00054 
+00057         template <typename genType> 
+00058         bool areCollinear(
+00059                 genType const & v0, 
+00060                 genType const & v1, 
+00061                 typename genType::value_type const & epsilon/* = std::numeric_limits<typename genType::value_type>::epsilon()*/);
+00062                 
+00065         template <typename genType> 
+00066         bool areOrthogonal(
+00067                 genType const & v0, 
+00068                 genType const & v1, 
+00069                 typename genType::value_type const & epsilon/* = std::numeric_limits<typename genType::value_type>::epsilon()*/);
+00070 
+00073         template <typename genType, template <typename> class vecType> 
+00074         bool isNormalized(
+00075                 vecType<genType> const & v, 
+00076                 genType const & epsilon/* = std::numeric_limits<genType>::epsilon()*/);
+00077                 
+00080         template <typename valType> 
+00081         bool isNull(
+00082                 detail::tvec2<valType> const & v, 
+00083                 valType const & epsilon/* = std::numeric_limits<typename genType::value_type>::epsilon()*/);
+00084 
+00087         template <typename valType> 
+00088         bool isNull(
+00089                 detail::tvec3<valType> const & v, 
+00090                 valType const & epsilon/* = std::numeric_limits<typename genType::value_type>::epsilon()*/);
+00091 
+00094         template <typename valType> 
+00095         bool isNull(
+00096                 detail::tvec4<valType> const & v, 
+00097                 valType const & epsilon/* = std::numeric_limits<typename genType::value_type>::epsilon()*/);
+00098 
+00101         template <typename genType>
+00102         bool areOrthonormal(
+00103                 genType const & v0, 
+00104                 genType const & v1, 
+00105                 typename genType::value_type const & epsilon/* = std::numeric_limits<typename genType::value_type>::epsilon()*/);
+00106 
+00108 }// namespace glm
+00109 
+00110 #include "vector_query.inl"
+00111 
+00112 #endif//GLM_GTX_vector_query
+
+
+ + + + + + diff --git a/doc/api/a00121.html b/doc/api/a00121.html new file mode 100644 index 00000000..8bb74116 --- /dev/null +++ b/doc/api/a00121.html @@ -0,0 +1,94 @@ + + + + + +verbose_operator.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
verbose_operator.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + + + +

+Functions

template<typename genTypeT , typename genTypeU >
genTypeT add (genTypeT const &a, genTypeU const &b)
template<typename genTypeT , typename genTypeU >
genTypeT div (genTypeT const &a, genTypeU const &b)
template<typename genTypeT , typename genTypeU , typename genTypeV >
genTypeT mad (genTypeT const &a, genTypeU const &b, genTypeV const &c)
template<typename genTypeT , typename genTypeU >
genTypeT mul (genTypeT const &a, genTypeU const &b)
template<typename genTypeT , typename genTypeU >
genTypeT sub (genTypeT const &a, genTypeU const &b)
+

Detailed Description

+

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.

+

GLM_GTX_verbose_operator: Verbose operator

+
Date:
2007-05-21 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file verbose_operator.hpp.

+
+ + + + + + diff --git a/doc/api/a00121_source.html b/doc/api/a00121_source.html new file mode 100644 index 00000000..529f5994 --- /dev/null +++ b/doc/api/a00121_source.html @@ -0,0 +1,135 @@ + + + + + +verbose_operator.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
verbose_operator.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_verbose_operator
+00039 #define GLM_GTX_verbose_operator GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_verbose_operator extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename genTypeT, typename genTypeU> 
+00056         genTypeT add(genTypeT const & a, genTypeU const & b);
+00057 
+00060         template <typename genTypeT, typename genTypeU> 
+00061         genTypeT sub(genTypeT const & a, genTypeU const & b);
+00062 
+00065         template <typename genTypeT, typename genTypeU> 
+00066         genTypeT mul(genTypeT const & a, genTypeU const & b);
+00067 
+00070         template <typename genTypeT, typename genTypeU> 
+00071         genTypeT div(genTypeT const & a, genTypeU const & b);
+00072 
+00075         template <typename genTypeT, typename genTypeU, typename genTypeV> 
+00076         genTypeT mad(genTypeT const & a, genTypeU const & b, genTypeV const & c);
+00077 
+00079 }// namespace glm
+00080 
+00081 #include "verbose_operator.inl"
+00082 
+00083 #endif//GLM_GTX_verbose_operator
+
+
+ + + + + + diff --git a/doc/api/a00122.html b/doc/api/a00122.html new file mode 100644 index 00000000..b246cc6f --- /dev/null +++ b/doc/api/a00122.html @@ -0,0 +1,90 @@ + + + + + +wrap.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
wrap.hpp File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + +

+Functions

template<typename genType >
genType clamp (genType const &Texcoord)
template<typename genType >
genType mirrorRepeat (genType const &Texcoord)
template<typename genType >
genType repeat (genType const &Texcoord)
+

Detailed Description

+

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.

+

GLM_GTX_wrap: Texture coordinate wrap modes

+
Date:
2009-11-25 / 2011-06-07
+
Author:
Christophe Riccio
+
See also:
GLM Core (dependence)
+ +

Definition in file wrap.hpp.

+
+ + + + + + diff --git a/doc/api/a00122_source.html b/doc/api/a00122_source.html new file mode 100644 index 00000000..284d5712 --- /dev/null +++ b/doc/api/a00122_source.html @@ -0,0 +1,129 @@ + + + + + +wrap.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
wrap.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 #ifndef GLM_GTX_wrap
+00039 #define GLM_GTX_wrap GLM_VERSION
+00040 
+00041 // Dependency:
+00042 #include "../glm.hpp"
+00043 
+00044 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00045 #       pragma message("GLM: GLM_GTX_wrap extension included")
+00046 #endif
+00047 
+00048 namespace glm
+00049 {
+00052 
+00055         template <typename genType> 
+00056         genType clamp(genType const & Texcoord);
+00057 
+00060         template <typename genType> 
+00061         genType repeat(genType const & Texcoord);
+00062 
+00065         template <typename genType> 
+00066         genType mirrorRepeat(genType const & Texcoord);
+00067 
+00069 }// namespace glm
+00070 
+00071 #include "wrap.inl"
+00072 
+00073 #endif//GLM_GTX_wrap
+
+
+ + + + + + diff --git a/doc/api/a00123.html b/doc/api/a00123.html new file mode 100644 index 00000000..63b90a9f --- /dev/null +++ b/doc/api/a00123.html @@ -0,0 +1,80 @@ + + + + + +xstream.hpp File Reference + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
xstream.hpp File Reference
+
+
+ +

Go to the source code of this file.

+

Detailed Description

+

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.

+

GLM_VIRTREV_xstream: xml like output

+
Date:
2008-05-24 / 2008-05-26
+
Author:
Mathieu Roumillac (matrem84.free.fr)
+
See also:
GLM Core (dependence)
+
+GLM_GTC_matrix_access: Access matrix rows and columns (dependence)
+ +

Definition in file xstream.hpp.

+
+ + + + + + diff --git a/doc/api/a00123_source.html b/doc/api/a00123_source.html new file mode 100644 index 00000000..24421890 --- /dev/null +++ b/doc/api/a00123_source.html @@ -0,0 +1,229 @@ + + + + + +xstream.hpp Source File + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
xstream.hpp
+
+
+Go to the documentation of this file.
00001 
+00002 
+00003 
+00004 
+00005 
+00006 
+00007 
+00008 
+00009 
+00010 
+00011 
+00012 
+00013 
+00014 
+00015 
+00016 
+00017 
+00018 
+00019 
+00020 
+00021 
+00022 
+00023 
+00024 
+00025 
+00026 
+00027 
+00028 
+00029 
+00030 
+00031 
+00032 
+00033 
+00034 
+00035 
+00036 
+00037 
+00038 
+00039 #ifndef GLM_VIRTREV_xstream
+00040 #define GLM_VIRTREV_xstream GLM_VERSION
+00041 
+00042 #include "../glm.hpp"
+00043 #include "../gtc/matrix_access.hpp"
+00044 #include <iostream>
+00045 
+00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
+00047 #       pragma message("GLM: GLM_VIRTREV_xstream extension included")
+00048 #endif
+00049 
+00050 namespace glm
+00051 {
+00052         template<typename T>
+00053         std::ostream & operator << (std::ostream & stream, glm::detail::tvec2<T> const & vec)
+00054         {
+00055                 stream << "<glm_vec2 ";
+00056                 stream << "x=\"" << vec.x << "\" ";
+00057                 stream << "y=\"" << vec.y << "\" ";
+00058                 stream << "/>";
+00059 
+00060                 return stream;
+00061         }
+00062 
+00063         template<typename T>
+00064         std::ostream & operator << (std::ostream & stream, glm::detail::tvec3<T> const & vec)
+00065         {
+00066                 stream << "<glm_vec3 ";
+00067                 stream << "x=\"" << vec.x << "\" ";
+00068                 stream << "y=\"" << vec.y << "\" ";
+00069                 stream << "z=\"" << vec.z << "\" ";
+00070                 stream << "/>";
+00071 
+00072                 return stream;
+00073         }
+00074 
+00075         template<typename T>
+00076         std::ostream & operator << (std::ostream & stream, glm::detail::tvec4<T> const & vec)
+00077         {
+00078                 stream << "<glm_vec4 ";
+00079                 stream << "x=\"" << vec.x << "\" ";
+00080                 stream << "y=\"" << vec.y << "\" ";
+00081                 stream << "z=\"" << vec.z << "\" ";
+00082                 stream << "w=\"" << vec.w << "\" ";
+00083                 stream << "/>";
+00084 
+00085                 return stream;
+00086         }
+00087 
+00088         template<typename T>
+00089         std::ostream & operator << (std::ostream & stream, glm::detail::tmat2x2<T> const & mat)
+00090         {
+00091                 stream << "<glm_mat2>" << std::endl;
+00092                 stream << "<row ";
+00093                 stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
+00094                 stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
+00095                 stream << "/>" << std::endl;
+00096                 stream << "<row ";
+00097                 stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
+00098                 stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
+00099                 stream << "/>" << std::endl;
+00100                 stream << "</glm_mat2>";
+00101 
+00102                 return stream;
+00103         }
+00104 
+00105         template<typename T>
+00106         std::ostream & operator << (std::ostream & stream, glm::detail::tmat3x3<T> const & mat)
+00107         {
+00108                 stream << "<glm_mat3>" << std::endl;
+00109                 stream << "<row ";
+00110                 stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
+00111                 stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
+00112                 stream << "z=\"" << glm::row(mat, 0)[2] << "\" ";
+00113                 stream << "/>" << std::endl;
+00114                 stream << "<row ";
+00115                 stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
+00116                 stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
+00117                 stream << "z=\"" << glm::row(mat, 1)[2] << "\" ";
+00118                 stream << "/>" << std::endl;
+00119                 stream << "<row ";
+00120                 stream << "x=\"" << glm::row(mat, 2)[0] << "\" ";
+00121                 stream << "y=\"" << glm::row(mat, 2)[1] << "\" ";
+00122                 stream << "z=\"" << glm::row(mat, 2)[2] << "\" ";
+00123                 stream << "/>" << std::endl;
+00124                 stream << "</glm_mat3>";
+00125 
+00126                 return stream;
+00127         }
+00128 
+00129         template<typename T>
+00130         std::ostream & operator << (std::ostream & stream, glm::detail::tmat4x4<T> const & mat)
+00131         {
+00132                 stream << "<glm_mat4>" << std::endl;
+00133                 stream << "<row ";
+00134                 stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
+00135                 stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
+00136                 stream << "z=\"" << glm::row(mat, 0)[2] << "\" ";
+00137                 stream << "w=\"" << glm::row(mat, 0)[3] << "\" ";
+00138                 stream << "/>" << std::endl;
+00139                 stream << "<row ";
+00140                 stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
+00141                 stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
+00142                 stream << "z=\"" << glm::row(mat, 1)[2] << "\" ";
+00143                 stream << "w=\"" << glm::row(mat, 1)[3] << "\" ";
+00144                 stream << "/>" << std::endl;
+00145                 stream << "<row ";
+00146                 stream << "x=\"" << glm::row(mat, 2)[0] << "\" ";
+00147                 stream << "y=\"" << glm::row(mat, 2)[1] << "\" ";
+00148                 stream << "z=\"" << glm::row(mat, 2)[2] << "\" ";
+00149                 stream << "w=\"" << glm::row(mat, 2)[3] << "\" ";
+00150                 stream << "/>" << std::endl;
+00151                 stream << "<row ";
+00152                 stream << "x=\"" << glm::row(mat, 3)[0] << "\" ";
+00153                 stream << "y=\"" << glm::row(mat, 3)[1] << "\" ";
+00154                 stream << "z=\"" << glm::row(mat, 3)[2] << "\" ";
+00155                 stream << "w=\"" << glm::row(mat, 3)[3] << "\" ";
+00156                 stream << "/>" << std::endl;
+00157                 stream << "</glm_mat4>";
+00158                         
+00159                 return stream;
+00160         }
+00161 
+00162 }//namespace glm
+00163 
+00164 #endif//GLM_VIRTREV_xstream
+
+
+ + + + + + diff --git a/doc/api/a00127.html b/doc/api/a00127.html new file mode 100644 index 00000000..0ef062ea --- /dev/null +++ b/doc/api/a00127.html @@ -0,0 +1,1040 @@ + + + + + +Common functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
Common functions
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
genType abs (genType const &x)
template<typename genType >
genType ceil (genType const &x)
template<typename genType >
genType clamp (genType const &x, genType const &minVal, genType const &maxVal)
template<typename genType , typename genIType >
genIType floatBitsToInt (genType const &value)
template<typename genType , typename genUType >
genUType floatBitsToUint (genType const &value)
template<typename genType >
genType floor (genType const &x)
template<typename genType >
genType fma (genType const &a, genType const &b, genType const &c)
template<typename genType >
genType fract (genType const &x)
template<typename genType , typename genIType >
genType frexp (genType const &x, genIType &exp)
template<typename genType , typename genIType >
genType intBitsToFloat (genIType const &value)
template<typename genType >
genType::bool_type isinf (genType const &x)
template<typename genType >
genType::bool_type isnan (genType const &x)
template<typename genType , typename genIType >
genType ldexp (genType const &x, genIType const &exp)
template<typename genType >
genType max (genType const &x, genType const &y)
template<typename genType >
genType min (genType const &x, genType const &y)
template<typename genTypeT , typename genTypeU >
genTypeT mix (genTypeT const &x, genTypeT const &y, genTypeU const &a)
template<typename genType >
genType mod (genType const &x, genType const &y)
template<typename genType >
genType mod (genType const &x, typename genType::value_type const &y)
template<typename genType >
genType modf (genType const &x, genType &i)
template<typename genType >
genType round (genType const &x)
template<typename genType >
genType roundEven (genType const &x)
template<typename genType >
genType sign (genType const &x)
template<typename genType >
genType smoothstep (genType const &edge0, genType const &edge1, genType const &x)
template<typename genType >
genType step (genType const &edge, genType const &x)
template<typename genType >
genType trunc (genType const &x)
template<typename genType , typename genUType >
genType uintBitsToFloat (genUType const &value)
+

Detailed Description

+

These all operate component-wise.

+

The description is per component.

+

Function Documentation

+ +
+
+ + + + + + + + +
genType glm::abs (genType const & x)
+
+
+ +

Returns x if x >= 0; otherwise, it returns -x.

+
Template Parameters:
+ + +
genTypefloating-point or signed integer; scalar or vector types.
+
+
+
See also:
GLSL abs man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::ceil (genType const & x)
+
+
+ +

Returns a value equal to the nearest integer that is greater than or equal to x.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL ceil man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genType glm::clamp (genType const & x,
genType const & minVal,
genType const & maxVal 
)
+
+
+ +

Returns min(max(x, minVal), maxVal) for each component in x.

+

using the floating-point values minVal and maxVal.

+
Template Parameters:
+ + +
genTypeFloating-point or integer; scalar or vector types.
+
+
+
See also:
GLSL clamp man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +

Referenced by glm::saturate().

+ +
+
+ +
+
+ + + + + + + + +
genIType glm::floatBitsToInt (genType const & value)
+
+
+ +

Returns a signed integer value representing the encoding of a floating-point value.

+

The floatingpoint value's bit-level representation is preserved.

+
Template Parameters:
+ + + +
genTypeSingle-precision floating-point scalar or vector types.
genITypeSigned integer scalar or vector types.
+
+
+
See also:
GLSL floatBitsToInt man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
genUType glm::floatBitsToUint (genType const & value)
+
+
+ +

Returns a unsigned integer value representing the encoding of a floating-point value.

+

The floatingpoint value's bit-level representation is preserved.

+
Template Parameters:
+ + + +
genTypeSingle-precision floating-point scalar or vector types.
genUTypeUnsigned integer scalar or vector types.
+
+
+
See also:
GLSL floatBitsToUint man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::floor (genType const & x)
+
+
+ +

Returns a value equal to the nearest integer that is less then or equal to x.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL floor man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genType glm::fma (genType const & a,
genType const & b,
genType const & c 
)
+
+
+ +

Computes and returns a * b + c.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL fma man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::fract (genType const & x)
+
+
+ +

Return x - floor(x).

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL fract man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::frexp (genType const & x,
genIType & exp 
)
+
+
+ +

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)

+

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.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL frexp man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::intBitsToFloat (genIType const & value)
+
+
+ +

Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.

+

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.

+
Template Parameters:
+ + + +
genTypeSingle-precision floating-point scalar or vector types.
genITypeSigned integer scalar or vector types.
+
+
+
See also:
GLSL intBitsToFloat man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+
Todo:
Clarify this declaration, we don't need to actually specify the return type
+ +
+
+ +
+
+ + + + + + + + +
bool isinf (genType const & x)
+
+
+ +

Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations.

+

Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension)

+

Returns false otherwise, including for implementations with no infinity representations.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL isinf man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
bool isnan (genType const & x)
+
+
+ +

Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations.

+

Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension)

+

Returns false otherwise, including for implementations with no NaN representations.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL isnan man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::ldexp (genType const & x,
genIType const & exp 
)
+
+
+ +

Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent)

+

If this product is too large to be represented in the floating-point type, the result is undefined.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL ldexp man page;
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::max (genType const & x,
genType const & y 
)
+
+
+ +

Returns y if x < y; otherwise, it returns x.

+
Template Parameters:
+ + +
genTypeFloating-point or integer; scalar or vector types.
+
+
+
See also:
GLSL max man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::min (genType const & x,
genType const & y 
)
+
+
+ +

Returns y if y < x; otherwise, it returns x.

+
Template Parameters:
+ + +
genTypeFloating-point or integer; scalar or vector types.
+
+
+
See also:
GLSL min man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genTypeT glm::mix (genTypeT const & x,
genTypeT const & y,
genTypeU const & a 
)
+
+
+
Returns:
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. The value for a is not restricted to the range [0, 1].
+
+If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of a 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)) where a is a Boolean vector.
+
See also:
GLSL mix man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+
Parameters:
+ + + + +
[in]xValue to interpolate.
[in]yValue to interpolate.
[in]aInterpolant.
+
+
+
Template Parameters:
+ + + +
genTypeTFloating point scalar or vector.
genTypeUFloating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT.
+
+
+
 #include <glm/glm.hpp>
+ ...
+ float a;
+ bool b;
+ glm::dvec3 e;
+ glm::dvec3 f;
+ glm::vec4 g;
+ glm::vec4 h;
+ ...
+ glm::vec4 r = glm::mix(g, h, a); // Interpolate with a floating-point scalar two vectors. 
+ glm::vec4 s = glm::mix(g, h, b); // Teturns g or h;
+ glm::dvec3 t = glm::mix(e, f, a); // Types of the third parameter is not required to match with the first and the second.
+ glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter.
+
+

Referenced by glm::lerp().

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::mod (genType const & x,
genType const & y 
)
+
+
+ +

Modulus.

+

Returns x - y * floor(x / y) for each component in x using the floating point value y.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL mod man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::mod (genType const & x,
typename genType::value_type const & y 
)
+
+
+ +

Modulus.

+

Returns x - y * floor(x / y) for each component in x using the floating point value y.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL mod man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::modf (genType const & x,
genType & i 
)
+
+
+ +

Returns the fractional part of x and sets i to the integer part (as a whole number floating point value).

+

Both the return value and the output parameter will have the same sign as x.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL modf man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::round (genType 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. This includes the possibility that round(x) returns the same value as roundEven(x) for all values of x.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL round man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::roundEven (genType const & x)
+
+
+ +

Returns a value equal to the nearest integer to x.

+

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.)

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL roundEven man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+
+New round to even technique
+ +
+
+ +
+
+ + + + + + + + +
genType glm::sign (genType const & x)
+
+
+ +

Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.

+
Template Parameters:
+ + +
genTypeFloating-point or signed integer; scalar or vector types.
+
+
+
See also:
GLSL sign man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genType glm::smoothstep (genType const & edge0,
genType const & edge1,
genType const & x 
)
+
+
+ +

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.

+

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.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL smoothstep man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::step (genType const & edge,
genType const & x 
)
+
+
+ +

Returns 0.0 if x < edge, otherwise it returns 1.0.

+
See also:
GLSL step man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::trunc (genType const & x)
+
+
+ +

Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL trunc man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::uintBitsToFloat (genUType const & value)
+
+
+ +

Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.

+

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.

+
Template Parameters:
+ + + +
genTypeSingle-precision floating-point scalar or vector types.
genUTypeUnsigned integer scalar or vector types.
+
+
+
See also:
GLSL uintBitsToFloat man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+
Todo:
Clarify this declaration, we don't need to actually specify the return type
+ +
+
+
+ + + + + + diff --git a/doc/api/a00128.html b/doc/api/a00128.html new file mode 100644 index 00000000..d1151807 --- /dev/null +++ b/doc/api/a00128.html @@ -0,0 +1,334 @@ + + + + + +Exponential functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
Exponential functions
+
+
+ + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
genType exp (genType const &x)
template<typename genType >
genType exp2 (genType const &x)
template<typename genType >
genType inversesqrt (genType const &x)
template<typename genType >
genType log (genType const &x)
template<typename genType >
genType log2 (genType const &x)
template<typename genType >
genType pow (genType const &x, genType const &y)
template<typename genType >
genType sqrt (genType const &x)
+

Detailed Description

+

These all operate component-wise.

+

The description is per component.

+

Function Documentation

+ +
+
+ + + + + + + + +
genType glm::exp (genType const & x)
+
+
+ +

Returns the natural exponentiation of x, i.e., e^x.

+
Parameters:
+ + +
xexp function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision.
+
+
+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL exp man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::exp2 (genType const & x)
+
+
+ +

Returns 2 raised to the x power.

+
Parameters:
+ + +
xexp2 function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision.
+
+
+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL exp2 man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::inversesqrt (genType const & x)
+
+
+ +

Returns the reciprocal of the positive square root of x.

+
Parameters:
+ + +
xinversesqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision.
+
+
+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL inversesqrt man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::log (genType const & x)
+
+
+ +

Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y.

+

Results are undefined if x <= 0.

+
Parameters:
+ + +
xlog function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision.
+
+
+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL log man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::log2 (genType const & x)
+
+
+ +

Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y.

+
Parameters:
+ + +
xlog2 function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision.
+
+
+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL log2 man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::pow (genType const & x,
genType const & y 
)
+
+
+ +

Returns x raised to the y power.

+
Parameters:
+ + + +
xpow function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision.
y
+
+
+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL pow man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::sqrt (genType const & x)
+
+
+ +

Returns the positive square root of x.

+
Parameters:
+ + +
xsqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision.
+
+
+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL sqrt man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00129.html b/doc/api/a00129.html new file mode 100644 index 00000000..1792abc9 --- /dev/null +++ b/doc/api/a00129.html @@ -0,0 +1,375 @@ + + + + + +Geometric functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
Geometric functions
+
+
+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename valType >
detail::tvec3< valType > cross (detail::tvec3< valType > const &x, detail::tvec3< valType > const &y)
template<typename genType >
genType::value_type distance (genType const &p0, genType const &p1)
template<typename genType >
genType::value_type dot (genType const &x, genType const &y)
template<typename genType >
genType faceforward (genType const &N, genType const &I, genType const &Nref)
template<typename genType >
genType::value_type length (genType const &x)
template<typename genType >
genType normalize (genType const &x)
template<typename genType >
genType reflect (genType const &I, genType const &N)
template<typename genType >
genType refract (genType const &I, genType const &N, typename genType::value_type const &eta)
+

Detailed Description

+

These operate on vectors as vectors, not component-wise.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec3<valType> glm::cross (detail::tvec3< valType > const & x,
detail::tvec3< valType > const & y 
)
+
+
+ +

Returns the cross product of x and y.

+
Template Parameters:
+ + +
valTypeFloating-point scalar types.
+
+
+
See also:
GLSL cross man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType::value_type glm::distance (genType const & p0,
genType const & p1 
)
+
+
+ +

Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).

+
Template Parameters:
+ + +
genTypeFloating-point vector types.
+
+
+
See also:
GLSL distance man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType::value_type glm::dot (genType const & x,
genType const & y 
)
+
+
+ +

Returns the dot product of x and y, i.e., result = x * y.

+
Template Parameters:
+ + +
genTypeFloating-point vector types.
+
+
+
See also:
GLSL dot man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genType glm::faceforward (genType const & N,
genType const & I,
genType const & Nref 
)
+
+
+ +

If dot(Nref, I) < 0.0, return N, otherwise, return -N.

+
Template Parameters:
+ + +
genTypeFloating-point vector types.
+
+
+
See also:
GLSL faceforward man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + +
genType::value_type glm::length (genType const & x)
+
+
+ +

Returns the length of x, i.e., sqrt(x * x).

+
Template Parameters:
+ + +
genTypeFloating-point vector types.
+
+
+
See also:
GLSL length man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::normalize (genType const & x)
+
+
+ +

Returns a vector in the same direction as x but with length of 1.

+
See also:
GLSL normalize man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::reflect (genType const & I,
genType const & N 
)
+
+
+ +

For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N.

+
Template Parameters:
+ + +
genTypeFloating-point vector types.
+
+
+
See also:
GLSL reflect man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genType glm::refract (genType const & I,
genType const & N,
typename genType::value_type const & eta 
)
+
+
+ +

For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector.

+
Template Parameters:
+ + +
genTypeFloating-point vector types.
+
+
+
See also:
GLSL refract man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00130.html b/doc/api/a00130.html new file mode 100644 index 00000000..f813658a --- /dev/null +++ b/doc/api/a00130.html @@ -0,0 +1,497 @@ + + + + + +Integer functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
Integer functions
+
+
+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , template< typename > class genIUType>
genIUType< T >::signed_type bitCount (genIUType< T > const &Value)
template<typename genIUType >
genIUType bitfieldExtract (genIUType const &Value, int const &Offset, int const &Bits)
template<typename genIUType >
genIUType bitfieldInsert (genIUType const &Base, genIUType const &Insert, int const &Offset, int const &Bits)
template<typename genIUType >
genIUType bitfieldReverse (genIUType const &value)
template<typename T , template< typename > class genIUType>
genIUType< T >::signed_type findLSB (genIUType< T > const &Value)
template<typename T , template< typename > class genIUType>
genIUType< T >::signed_type findMSB (genIUType< T > const &Value)
template<typename genIType >
void imulExtended (genIType const &x, genIType const &y, genIType &msb, genIType &lsb)
template<typename genUType >
genUType uaddCarry (genUType const &x, genUType const &y, genUType &carry)
template<typename genUType >
void umulExtended (genUType const &x, genUType const &y, genUType &msb, genUType &lsb)
template<typename genUType >
genUType usubBorrow (genUType const &x, genUType const &y, genUType &borrow)
+

Detailed Description

+

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.

+

Function Documentation

+ +
+
+ + + + + + + + +
genIUType<T>::signed_type glm::bitCount (genIUType< T > const & Value)
+
+
+ +

Returns the number of bits set to 1 in the binary representation of value.

+
Template Parameters:
+ + +
genIUTypeSigned or unsigned integer scalar or vector types.
+
+
+
See also:
GLSL bitCount man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+
Todo:
Clarify the declaration to specify that scalars are suported.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genIUType glm::bitfieldExtract (genIUType const & Value,
int const & Offset,
int const & Bits 
)
+
+
+ +

Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result.

+

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.

+

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.

+
Template Parameters:
+ + +
genIUTypeSigned or unsigned integer scalar or vector types.
+
+
+
See also:
GLSL bitfieldExtract man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
genIUType glm::bitfieldInsert (genIUType const & Base,
genIUType const & Insert,
int const & Offset,
int const & Bits 
)
+
+
+ +

Returns the insertion the bits least-significant bits of insert into base.

+

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.

+
Template Parameters:
+ + +
genIUTypeSigned or unsigned integer scalar or vector types.
+
+
+
See also:
GLSL bitfieldInsert man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
genIUType glm::bitfieldReverse (genIUType const & value)
+
+
+ +

Returns the reversal of the bits of value.

+

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.

+
Template Parameters:
+ + +
genIUTypeSigned or unsigned integer scalar or vector types.
+
+
+
See also:
GLSL bitfieldReverse man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
genIUType<T>::signed_type glm::findLSB (genIUType< T > const & Value)
+
+
+ +

Returns the bit number of the least significant bit set to 1 in the binary representation of value.

+

If value is zero, -1 will be returned.

+
Template Parameters:
+ + +
genIUTypeSigned or unsigned integer scalar or vector types.
+
+
+
See also:
GLSL findLSB man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+
Todo:
Clarify the declaration to specify that scalars are suported.
+ +
+
+ +
+
+ + + + + + + + +
genIUType<T>::signed_type glm::findMSB (genIUType< T > const & Value)
+
+
+ +

Returns the bit number of the most significant bit in the binary representation of value.

+

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.

+
Template Parameters:
+ + +
genIUTypeSigned or unsigned integer scalar or vector types.
+
+
+
See also:
GLSL findMSB man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+
Todo:
Clarify the declaration to specify that scalars are suported.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void glm::imulExtended (genIType const & x,
genIType const & y,
genIType & msb,
genIType & lsb 
)
+
+
+ +

Multiplies 32-bit integers x and y, producing a 64-bit result.

+

The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.

+
Template Parameters:
+ + +
genITypeSigned integer scalar or vector types.
+
+
+
See also:
GLSL imulExtended man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genUType glm::uaddCarry (genUType const & x,
genUType const & y,
genUType & carry 
)
+
+
+ +

Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).

+

The value carry is set to 0 if the sum was less than pow(2, 32), or to 1 otherwise.

+
Template Parameters:
+ + +
genUTypeUnsigned integer scalar or vector types.
+
+
+
See also:
GLSL uaddCarry man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void glm::umulExtended (genUType const & x,
genUType const & y,
genUType & msb,
genUType & lsb 
)
+
+
+ +

Multiplies 32-bit integers x and y, producing a 64-bit result.

+

The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.

+
Template Parameters:
+ + +
genUTypeUnsigned integer scalar or vector types.
+
+
+
See also:
GLSL umulExtended man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genUType glm::usubBorrow (genUType const & x,
genUType const & y,
genUType & borrow 
)
+
+
+ +

Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.

+

The value borrow is set to 0 if x >= y, or to 1 otherwise.

+
Template Parameters:
+ + +
genUTypeUnsigned integer scalar or vector types.
+
+
+
See also:
GLSL usubBorrow man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00131.html b/doc/api/a00131.html new file mode 100644 index 00000000..416f982e --- /dev/null +++ b/doc/api/a00131.html @@ -0,0 +1,364 @@ + + + + + +Matrix functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
Matrix functions
+
+
+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename valType >
detail::tmat2x2< valType >
+::value_type 
determinant (detail::tmat2x2< valType > const &m)
template<typename valType >
detail::tmat3x3< valType >
+::value_type 
determinant (detail::tmat3x3< valType > const &m)
template<typename valType >
detail::tmat4x4< valType >
+::value_type 
determinant (detail::tmat4x4< valType > const &m)
template<typename valType >
detail::tmat2x2< valType > inverse (detail::tmat2x2< valType > const &m)
template<typename valType >
detail::tmat3x3< valType > inverse (detail::tmat3x3< valType > const &m)
template<typename valType >
detail::tmat4x4< valType > inverse (detail::tmat4x4< valType > const &m)
template<typename matType >
matType matrixCompMult (matType const &x, matType const &y)
template<typename vecType , typename matType >
matType outerProduct (vecType const &c, vecType const &r)
template<typename matType >
matType::transpose_type transpose (matType const &x)
+

Detailed Description

+

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.

+

Only the single-precision floating point version is shown.

+

Function Documentation

+ +
+
+ + + + + + + + +
detail::tmat2x2<valType>::value_type glm::determinant (detail::tmat2x2< valType > const & m)
+
+
+ +

Return the determinant of a mat2 matrix.

+
Template Parameters:
+ + +
valTypeFloating-point scalar types.
+
+
+
See also:
GLSL determinant man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x3<valType>::value_type glm::determinant (detail::tmat3x3< valType > const & m)
+
+
+ +

Return the determinant of a mat3 matrix.

+
Template Parameters:
+ + +
valTypeFloating-point scalar types.
+
+
+
See also:
GLSL determinant man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<valType>::value_type glm::determinant (detail::tmat4x4< valType > const & m)
+
+
+ +

Return the determinant of a mat4 matrix.

+
Template Parameters:
+ + +
valTypeFloating-point scalar types.
+
+
+
See also:
GLSL determinant man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat2x2<valType> glm::inverse (detail::tmat2x2< valType > const & m)
+
+
+ +

Return the inverse of a mat2 matrix.

+
Template Parameters:
+ + +
valTypeFloating-point scalar types.
+
+
+
See also:
GLSL inverse man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x3<valType> glm::inverse (detail::tmat3x3< valType > const & m)
+
+
+ +

Return the inverse of a mat3 matrix.

+
Template Parameters:
+ + +
valTypeFloating-point scalar types.
+
+
+
See also:
GLSL inverse man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<valType> glm::inverse (detail::tmat4x4< valType > const & m)
+
+
+ +

Return the inverse of a mat4 matrix.

+
Template Parameters:
+ + +
valTypeFloating-point scalar types.
+
+
+
See also:
GLSL inverse man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
matType glm::matrixCompMult (matType const & x,
matType const & y 
)
+
+
+ +

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].

+
Template Parameters:
+ + +
matTypeFloating-point matrix types.
+
+
+
See also:
GLSL matrixCompMult man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
matType glm::outerProduct (vecType const & c,
vecType const & r 
)
+
+
+ +

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.

+
Template Parameters:
+ + +
matTypeFloating-point matrix types.
+
+
+
See also:
GLSL outerProduct man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+
Todo:
Clarify the declaration to specify that matType doesn't have to be provided when used.
+ +
+
+ +
+
+ + + + + + + + +
matType::transpose_type glm::transpose (matType const & x)
+
+
+ +

Returns the transposed matrix of x.

+
Template Parameters:
+ + +
matTypeFloating-point matrix types.
+
+
+
See also:
GLSL transpose man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00132.html b/doc/api/a00132.html new file mode 100644 index 00000000..7da7093b --- /dev/null +++ b/doc/api/a00132.html @@ -0,0 +1,193 @@ + + + + + +Noise functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
Noise functions
+
+
+ + + + + + + + + + +

+Functions

template<typename genType >
genType::value_type noise1 (genType const &x)
template<typename genType >
detail::tvec2< typename
+genType::value_type > 
noise2 (genType const &x)
template<typename genType >
detail::tvec3< typename
+genType::value_type > 
noise3 (genType const &x)
template<typename genType >
detail::tvec4< typename
+genType::value_type > 
noise4 (genType const &x)
+

Detailed Description

+

Noise functions are stochastic functions that can be used to increase visual complexity.

+

Values returned by the following noise functions give the appearance of randomness, but are not truly random.

+

Function Documentation

+ +
+
+ + + + + + + + +
genType::value_type glm::noise1 (genType const & x)
+
+
+ +

Returns a 1D noise value based on the input value x.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL noise1 man page
+
+GLSL 4.20.8 specification, section 8.13 Noise Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec2<typename genType::value_type> glm::noise2 (genType const & x)
+
+
+ +

Returns a 2D noise value based on the input value x.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL noise2 man page
+
+GLSL 4.20.8 specification, section 8.13 Noise Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec3<typename genType::value_type> glm::noise3 (genType const & x)
+
+
+ +

Returns a 3D noise value based on the input value x.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL noise3 man page
+
+GLSL 4.20.8 specification, section 8.13 Noise Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec4<typename genType::value_type> glm::noise4 (genType const & x)
+
+
+ +

Returns a 4D noise value based on the input value x.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL noise4 man page
+
+GLSL 4.20.8 specification, section 8.13 Noise Functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00133.html b/doc/api/a00133.html new file mode 100644 index 00000000..56f01477 --- /dev/null +++ b/doc/api/a00133.html @@ -0,0 +1,373 @@ + + + + + +Floating-Point Pack and Unpack Functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
Floating-Point Pack and Unpack Functions
+
+
+ + + + + + + + + + + + + + +

+Functions

double packDouble2x32 (detail::tvec2< detail::uint32 > const &v)
uint packHalf2x16 (vec2 const &v)
detail::uint32 packSnorm2x16 (detail::tvec2< detail::float32 > const &v)
detail::uint32 packSnorm4x8 (detail::tvec4< detail::float32 > const &v)
detail::uint32 packUnorm2x16 (detail::tvec2< detail::float32 > const &v)
detail::uint32 packUnorm4x8 (detail::tvec4< detail::float32 > const &v)
detail::tvec2< detail::uint32 > unpackDouble2x32 (double const &v)
vec2 unpackHalf2x16 (uint const &v)
detail::tvec2< detail::float32 > unpackSnorm2x16 (detail::uint32 const &p)
detail::tvec4< detail::float32 > unpackSnorm4x8 (detail::uint32 const &p)
detail::tvec2< detail::float32 > unpackUnorm2x16 (detail::uint32 const &p)
detail::tvec4< detail::float32 > unpackUnorm4x8 (detail::uint32 const &p)
+

Detailed Description

+

These functions do not operate component-wise, rather as described in each case.

+

Function Documentation

+ +
+
+ + + + + + + + +
double glm::packDouble2x32 (detail::tvec2< detail::uint32 > const & v)
+
+
+ +

Returns a double-precision value obtained by packing the components of v into a 64-bit value.

+

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.

+
See also:
GLSL packDouble2x32 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
uint glm::packHalf2x16 (vec2 const & v)
+
+
+ +

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.

+

The first vector component specifies the 16 least-significant bits of the result; the second component specifies the 16 most-significant bits.

+
See also:
GLSL packHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::uint32 glm::packSnorm2x16 (detail::tvec2< detail::float32 > const & v)
+
+
+ +

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm2x16: round(clamp(v, -1, +1) * 32767.0)

+

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.

+
See also:
GLSL packSnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::uint32 glm::packSnorm4x8 (detail::tvec4< detail::float32 > const & v)
+
+
+ +

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm4x8: round(clamp(c, -1, +1) * 127.0)

+

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.

+
See also:
GLSL packSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::uint32 glm::packUnorm2x16 (detail::tvec2< detail::float32 > const & v)
+
+
+ +

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)

+

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.

+
See also:
GLSL packUnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::uint32 glm::packUnorm4x8 (detail::tvec4< detail::float32 > const & v)
+
+
+ +

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm4x8: round(clamp(c, 0, +1) * 255.0)

+

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.

+
See also:
GLSL packUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec2<detail::uint32> glm::unpackDouble2x32 (double const & v)
+
+
+ +

Returns a two-component unsigned integer vector representation of v.

+

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.

+
See also:
GLSL unpackDouble2x32 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
vec2 glm::unpackHalf2x16 (uint const & v)
+
+
+ +

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.

+

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.

+
See also:
GLSL unpackHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec2<detail::float32> glm::unpackSnorm2x16 (detail::uint32 const & 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.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x16: clamp(f / 32767.0, -1, +1)

+

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 also:
GLSL unpackSnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec4<detail::float32> glm::unpackSnorm4x8 (detail::uint32 const & 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.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x8: clamp(f / 127.0, -1, +1)

+

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 also:
GLSL unpackSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec2<detail::float32> glm::unpackUnorm2x16 (detail::uint32 const & 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.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm2x16: f / 65535.0

+

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 also:
GLSL unpackUnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec4<detail::float32> glm::unpackUnorm4x8 (detail::uint32 const & 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.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

+

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 also:
GLSL unpackUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00134.html b/doc/api/a00134.html new file mode 100644 index 00000000..76e65e21 --- /dev/null +++ b/doc/api/a00134.html @@ -0,0 +1,541 @@ + + + + + +Angle and Trigonometry Functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
Angle and Trigonometry Functions
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
genType acos (genType const &x)
template<typename genType >
genType acosh (genType const &x)
template<typename genType >
genType asin (genType const &x)
template<typename genType >
genType asinh (genType const &x)
template<typename genType >
genType atan (genType const &y, genType const &x)
template<typename genType >
genType atan (genType const &y_over_x)
template<typename genType >
genType atanh (genType const &x)
template<typename genType >
genType cos (genType const &angle)
template<typename genType >
genType cosh (genType const &angle)
template<typename genType >
genType degrees (genType const &radians)
template<typename genType >
genType radians (genType const &degrees)
template<typename genType >
genType sin (genType const &angle)
template<typename genType >
genType sinh (genType const &angle)
template<typename genType >
genType tan (genType const &angle)
template<typename genType >
genType tanh (genType const &angle)
+

Detailed Description

+

Function parameters specified as angle are assumed to be in units of radians.

+

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.

+

These all operate component-wise. The description is per component.

+

Function Documentation

+ +
+
+ + + + + + + + +
genType glm::acos (genType const & x)
+
+
+ +

Arc cosine.

+

Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| > 1.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL acos man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::acosh (genType const & x)
+
+
+ +

Arc hyperbolic cosine; returns the non-negative inverse of cosh.

+

Results are undefined if x < 1.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL acosh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::asin (genType const & x)
+
+
+ +

Arc sine.

+

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.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL asin man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::asinh (genType const & x)
+
+
+ +

Arc hyperbolic sine; returns the inverse of sinh.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL asinh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::atan (genType const & y,
genType const & x 
)
+
+
+ +

Arc tangent.

+

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.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL atan man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +

Referenced by glm::atan2().

+ +
+
+ +
+
+ + + + + + + + +
genType glm::atan (genType const & y_over_x)
+
+
+ +

Arc tangent.

+

Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2].

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL atan man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::atanh (genType const & x)
+
+
+ +

Arc hyperbolic tangent; returns the inverse of tanh.

+

Results are undefined if abs(x) >= 1.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL atanh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::cos (genType const & angle)
+
+
+ +

The standard trigonometric cosine function.

+

The values returned by this function will range from [-1, 1].

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL cos man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::cosh (genType const & angle)
+
+
+ +

Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL cosh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::degrees (genType const & radians)
+
+
+ +

Converts radians to degrees and returns the result.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL degrees man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::radians (genType const & degrees)
+
+
+ +

Converts degrees to radians and returns the result.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL radians man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::sin (genType const & angle)
+
+
+ +

The standard trigonometric sine function.

+

The values returned by this function will range from [-1, 1].

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL sin man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::sinh (genType const & angle)
+
+
+ +

Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL sinh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::tan (genType const & angle)
+
+
+ +

The standard trigonometric tangent function.

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL tan man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
genType glm::tanh (genType const & angle)
+
+
+ +

Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)

+
Template Parameters:
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also:
GLSL tanh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00135.html b/doc/api/a00135.html new file mode 100644 index 00000000..02d8701a --- /dev/null +++ b/doc/api/a00135.html @@ -0,0 +1,402 @@ + + + + + +Vector Relational Functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
Vector Relational Functions
+
+
+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<template< typename > class vecType>
bool all (vecType< bool > const &v)
template<template< typename > class vecType>
bool any (vecType< bool > const &v)
template<typename vecType >
vecType::bool_type equal (vecType const &x, vecType const &y)
template<typename vecType >
vecType::bool_type greaterThan (vecType const &x, vecType const &y)
template<typename vecType >
vecType::bool_type greaterThanEqual (vecType const &x, vecType const &y)
template<typename vecType >
vecType::bool_type lessThan (vecType const &x, vecType const &y)
template<typename vecType >
vecType::bool_type lessThanEqual (vecType const &x, vecType const &y)
template<template< typename > class vecType>
vecType< bool > not_ (vecType< bool > const &v)
template<typename vecType >
vecType::bool_type notEqual (vecType const &x, vecType const &y)
+

Detailed Description

+

Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results.

+

For vector results, use the following built-in functions.

+

In all cases, the sizes of all the input and return vectors for any particular call must match.

+

Function Documentation

+ +
+
+ + + + + + + + +
bool glm::all (vecType< bool > const & v)
+
+
+ +

Returns true if all components of x are true.

+
Template Parameters:
+ + +
vecTypeBoolean vector types.
+
+
+
See also:
GLSL all man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + +
bool glm::any (vecType< bool > const & v)
+
+
+ +

Returns true if any component of x is true.

+
Template Parameters:
+ + +
vecTypeBoolean vector types.
+
+
+
See also:
GLSL any man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
vecType::bool_type glm::equal (vecType const & x,
vecType const & y 
)
+
+
+ +

Returns the component-wise comparison of result x == y.

+
Template Parameters:
+ + +
vecTypeFloating-point, integer or boolean vector types.
+
+
+
See also:
GLSL equal man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
vecType::bool_type glm::greaterThan (vecType const & x,
vecType const & y 
)
+
+
+ +

Returns the component-wise comparison of result x > y.

+
Template Parameters:
+ + +
vecTypeFloating-point or integer vector types.
+
+
+
See also:
GLSL greaterThan man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
vecType::bool_type glm::greaterThanEqual (vecType const & x,
vecType const & y 
)
+
+
+ +

Returns the component-wise comparison of result x >= y.

+
Template Parameters:
+ + +
vecTypeFloating-point or integer vector types.
+
+
+
See also:
GLSL greaterThanEqual man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
vecType::bool_type glm::lessThan (vecType const & x,
vecType const & y 
)
+
+
+ +

Returns the component-wise comparison result of x < y.

+
Template Parameters:
+ + +
vecTypeFloating-point or integer vector types.
+
+
+
See also:
GLSL lessThan man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
vecType::bool_type glm::lessThanEqual (vecType const & x,
vecType const & y 
)
+
+
+ +

Returns the component-wise comparison of result x <= y.

+
Template Parameters:
+ + +
vecTypeFloating-point or integer vector types.
+
+
+
See also:
GLSL lessThanEqual man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + +
vecType<bool> glm::not_ (vecType< bool > const & v)
+
+
+ +

Returns the component-wise logical complement of x.

+

/!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.

+
Template Parameters:
+ + +
vecTypeBoolean vector types.
+
+
+
See also:
GLSL not man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
vecType::bool_type glm::notEqual (vecType const & x,
vecType const & y 
)
+
+
+ +

Returns the component-wise comparison of result x != y.

+
Template Parameters:
+ + +
vecTypeFloating-point, integer or boolean vector types.
+
+
+
See also:
GLSL notEqual man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00136.html b/doc/api/a00136.html new file mode 100644 index 00000000..227207ab --- /dev/null +++ b/doc/api/a00136.html @@ -0,0 +1,81 @@ + + + + + +GTC Extensions (Stable) + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GTC Extensions (Stable)
+
+
+ + + + + + + + + + + + + +

+Modules

 GLM_GTC_half_float: Half-precision floating-point based types and functions
 GLM_GTC_matrix_access: Access matrix rows and columns
 GLM_GTC_matrix_integer: Integer matrix types
 GLM_GTC_matrix_inverse: Additional matrix inverse function
 GLM_GTC_matrix_transform: Matrix transform functions
 GLM_GTC_noise: Procedural noise functions
 GLM_GTC_quaternion: Quaternion types and functions
 GLM_GTC_random: Random number generation
 GLM_GTC_swizzle: Swizzle 'operator' implementation
 GLM_GTC_type_precision: Vector and matrix types with defined precisions
 GLM_GTC_type_ptr: Memory layout access
+

Detailed Description

+

Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.

+

GTC extensions aim to be stable.

+

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.

+
+ + + + + + diff --git a/doc/api/a00137.html b/doc/api/a00137.html new file mode 100644 index 00000000..763dfca1 --- /dev/null +++ b/doc/api/a00137.html @@ -0,0 +1,130 @@ + + + + + +GTX Extensions (Experimental) + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GTX Extensions (Experimental)
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Modules

 GLM_GTX_associated_min_max: Associated Min/Max
 GLM_GTX_bit: Extended bitwise operations
 GLM_GTX_closest_point: Find closest point
 GLM_GTX_color_cast: Color conversion
 GLM_GTX_color_space: RGB to HSV conversion
 GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion
 GLM_GTX_compatibility: Cg and HLSL compatibility
 GLM_GTX_component_wise: Component wise
 GLM_GTX_constants: Provide build-in constants
 GLM_GTX_epsilon: Epsilon comparison
 GLM_GTX_euler_angles: Matrix from euler angles
 GLM_GTX_extend: Position extending
 GLM_GTX_extented_min_max: Extended min max
 GLM_GTX_fast_exponential: Fast exponentiation functions
 GLM_GTX_fast_square_root: Fast square root functions
 GLM_GTX_fast_trigonometry: Fast trigonometric functions
 GLM_GTX_gradient_paint: Procedural gradient color
 GLM_GTX_handed_coordinate_space: Space Handedness
 GLM_GTX_inertia: Intertial matrix
 GLM_GTX_int_10_10_10_2: Packed integer
 GLM_GTX_integer: Extended integer functions
 GLM_GTX_intersect: Intersection tests
 GLM_GTX_log_base: Log with base
 GLM_GTX_matrix_cross_product: Cross product matrix form
 GLM_GTX_matrix_interpolation: Rotation and translation matrix interpolation
 GLM_GTX_matrix_major_storage: Build matrix
 GLM_GTX_matrix_operation: Extended matrix operations
 GLM_GTX_matrix_query: Query matrix properties
 GLM_GTX_mixed_producte: Mixed product
 GLM_GTX_multiple: Multiples
 GLM_GTX_noise: Procedural noise functions
 GLM_GTX_norm: Vector norm calculations
 GLM_GTX_normal: Compute normals
 GLM_GTX_normalize_dot: Normalize dot product
 GLM_GTX_number_precision: Number precision
 GLM_GTX_ocl_type: OpenCL types
 GLM_GTX_optimum_pow: Optimum pow
 GLM_GTX_orthonormalize: Orthonormalize
 GLM_GTX_perpendicular: Perpendicular
 GLM_GTX_polar_coordinates: Polar coordinates
 GLM_GTX_projection: Projection
 GLM_GTX_quaternion: Extented quaternion types and functions
 GLM_GTX_random: Random
 GLM_GTX_raw_data: Raw data
 GLM_GTX_reciprocal: Reciprocal
 GLM_GTX_rotate_vector: Rotate vector
 GLM_GTX_simd_mat4: SIMD mat4 type and functions
 GLM_GTX_simd_vec4: SIMD vec4 type and functions
 GLM_GTX_spline: Spline
 GLM_GTX_std_based_type: Add types based on STL
 GLM_GTX_string_cast: String cast
 GLM_GTX_transform: Extented transformation matrices
 GLM_GTX_transform2: Extra transformation matrices
 GLM_GTX_ulp: Accuracy measurement
 GLM_GTX_vec1: Add vec1 types
 GLM_GTX_vector_access: Vector access
 GLM_GTX_vector_angle: Vector angle
 GLM_GTX_vector_query: Vector query
 GLM_GTX_verbose_operator: Verbose operator
 GLM_GTX_wrap: Texture coordinate wrap modes
+

Detailed Description

+

Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.

+

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.

+

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.

+
+ + + + + + diff --git a/doc/api/a00138.html b/doc/api/a00138.html new file mode 100644 index 00000000..1c1bca58 --- /dev/null +++ b/doc/api/a00138.html @@ -0,0 +1,69 @@ + + + + + +VIRTREV Extensions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
VIRTREV Extensions
+
+
+ + + +

+Modules

 GLM_VIRTREV_xstream: xml like output
+

Detailed Description

+

Extensions develop and maintain by Mathieu [matrem] Roumillac (http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&User=22660).

+
+ + + + + + diff --git a/doc/api/a00139.html b/doc/api/a00139.html new file mode 100644 index 00000000..523325bd --- /dev/null +++ b/doc/api/a00139.html @@ -0,0 +1,83 @@ + + + + + +GLM Core + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM Core
+
+
+ + + + + + + + + + + + + + +

+Modules

 Common functions
 Exponential functions
 Geometric functions
 Integer functions
 Matrix functions
 Noise functions
 Floating-Point Pack and Unpack Functions
 Angle and Trigonometry Functions
 Vector Relational Functions
 Types
 Precision types
 Template types
+

Detailed Description

+

The core of GLM, which implements exactly and only the GLSL specification to the degree possible.

+

The GLM core consists of C++ types that mirror GLSL types and C++ functions that mirror the GLSL functions. It also includes 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 template types.

+

The best documentation for GLM Core is the current GLSL specification, version 4.2 (pdf file). There are a few differences between GLM core and GLSL.

+

GLM core functionnalities require <glm/glm.hpp> to be included to be used.

+
+ + + + + + diff --git a/doc/api/a00140.html b/doc/api/a00140.html new file mode 100644 index 00000000..9f5bb25e --- /dev/null +++ b/doc/api/a00140.html @@ -0,0 +1,811 @@ + + + + + +Types + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
Types
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef detail::tvec2< bool > bvec2
typedef detail::tvec3< bool > bvec3
typedef detail::tvec4< bool > bvec4
typedef detail::tmat2x2< double > dmat2
typedef detail::tmat2x2< double > dmat2x2
typedef detail::tmat2x3< double > dmat2x3
typedef detail::tmat2x4< double > dmat2x4
typedef detail::tmat3x3< double > dmat3
typedef detail::tmat3x2< double > dmat3x2
typedef detail::tmat3x3< double > dmat3x3
typedef detail::tmat3x4< double > dmat3x4
typedef detail::tmat4x4< double > dmat4
typedef detail::tmat4x2< double > dmat4x2
typedef detail::tmat4x3< double > dmat4x3
typedef detail::tmat4x4< double > dmat4x4
typedef detail::tvec2< double > dvec2
typedef detail::tvec3< double > dvec3
typedef detail::tvec4< double > dvec4
typedef mediump_ivec2 ivec2
typedef mediump_ivec3 ivec3
typedef mediump_ivec4 ivec4
typedef mat2x2 mat2
typedef mediump_mat2x2 mat2x2
typedef mediump_mat2x3 mat2x3
typedef mediump_mat2x4 mat2x4
typedef mat3x3 mat3
typedef mediump_mat3x2 mat3x2
typedef mediump_mat3x3 mat3x3
typedef mediump_mat3x4 mat3x4
typedef mat4x4 mat4
typedef mediump_mat4x2 mat4x2
typedef mediump_mat4x3 mat4x3
typedef mediump_mat4x4 mat4x4
typedef mediump_uvec2 uvec2
typedef mediump_uvec3 uvec3
typedef mediump_uvec4 uvec4
typedef mediump_vec2 vec2
typedef mediump_vec3 vec3
typedef mediump_vec4 vec4
+

Detailed Description

+

The standard types defined by the specification.

+

These types are all typedefs of more generalized, template types. To see the definiton of these template types, go to Template types.

+

Typedef Documentation

+ +
+
+ + + + +
typedef detail::tvec2<bool> bvec2
+
+
+ +

2 components vector of boolean.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 248 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<bool> bvec3
+
+
+ +

3 components vector of boolean.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 253 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<bool> bvec4
+
+
+ +

4 components vector of boolean.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 258 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<double> dmat2
+
+
+ +

2 * 2 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 281 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<double> dmat2x2
+
+
+ +

2 * 2 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 296 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<double> dmat2x3
+
+
+ +

2 * 3 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 301 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<double> dmat2x4
+
+
+ +

2 * 4 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 306 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<double> dmat3
+
+
+ +

3 * 3 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 286 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<double> dmat3x2
+
+
+ +

3 * 2 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 311 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<double> dmat3x3
+
+
+ +

3 * 3 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 316 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<double> dmat3x4
+
+
+ +

3 * 4 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 321 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<double> dmat4
+
+
+ +

4 * 4 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 291 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<double> dmat4x2
+
+
+ +

4 * 2 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 326 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<double> dmat4x3
+
+
+ +

4 * 3 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 331 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<double> dmat4x4
+
+
+ +

4 * 4 matrix of double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 336 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<double> dvec2
+
+
+ +

Vector of 2 double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 266 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<double> dvec3
+
+
+ +

Vector of 3 double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 271 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<double> dvec4
+
+
+ +

Vector of 4 double-precision floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 276 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_ivec2 ivec2
+
+
+ +

2 components vector of signed integer numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 197 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_ivec3 ivec3
+
+
+ +

3 components vector of signed integer numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 202 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_ivec4 ivec4
+
+
+ +

4 components vector of signed integer numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 207 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat2x2 mat2
+
+
+ +

2 columns of 2 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 166 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_mat2x2 mat2x2
+
+
+ +

2 columns of 2 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 119 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_mat2x3 mat2x3
+
+
+ +

2 columns of 3 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 124 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_mat2x4 mat2x4
+
+
+ +

2 columns of 4 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 129 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat3x3 mat3
+
+
+ +

3 columns of 3 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 171 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_mat3x2 mat3x2
+
+
+ +

3 columns of 2 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 134 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_mat3x3 mat3x3
+
+
+ +

3 columns of 3 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 139 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_mat3x4 mat3x4
+
+
+ +

3 columns of 4 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 144 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat4x4 mat4
+
+
+ +

4 columns of 4 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 176 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_mat4x2 mat4x2
+
+
+ +

4 columns of 2 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 149 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_mat4x3 mat4x3
+
+
+ +

4 columns of 3 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 154 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_mat4x4 mat4x4
+
+
+ +

4 columns of 4 components matrix of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 159 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_uvec2 uvec2
+
+
+ +

2 components vector of unsigned integer numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 229 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_uvec3 uvec3
+
+
+ +

3 components vector of unsigned integer numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 234 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_uvec4 uvec4
+
+
+ +

4 components vector of unsigned integer numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 239 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_vec2 vec2
+
+
+ +

2 components vector of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 104 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_vec3 vec3
+
+
+ +

3 components vector of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 109 of file type.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_vec4 vec4
+
+
+ +

4 components vector of floating-point numbers.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 114 of file type.hpp.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00141.html b/doc/api/a00141.html new file mode 100644 index 00000000..e6c585a3 --- /dev/null +++ b/doc/api/a00141.html @@ -0,0 +1,1723 @@ + + + + + +Precision types + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
Precision types
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef highp_float_t highp_float
typedef detail::highp_int_t highp_int
typedef detail::tvec2< highp_int > highp_ivec2
typedef detail::tvec3< highp_int > highp_ivec3
typedef detail::tvec4< highp_int > highp_ivec4
typedef detail::tmat2x2
+< highp_float > 
highp_mat2
typedef detail::tmat2x2
+< highp_float > 
highp_mat2x2
typedef detail::tmat2x3
+< highp_float > 
highp_mat2x3
typedef detail::tmat2x4
+< highp_float > 
highp_mat2x4
typedef detail::tmat3x3
+< highp_float > 
highp_mat3
typedef detail::tmat3x2
+< highp_float > 
highp_mat3x2
typedef detail::tmat3x3
+< highp_float > 
highp_mat3x3
typedef detail::tmat3x4
+< highp_float > 
highp_mat3x4
typedef detail::tmat4x4
+< highp_float > 
highp_mat4
typedef detail::tmat4x2
+< highp_float > 
highp_mat4x2
typedef detail::tmat4x3
+< highp_float > 
highp_mat4x3
typedef detail::tmat4x4
+< highp_float > 
highp_mat4x4
typedef detail::highp_uint_t highp_uint
typedef detail::tvec2< highp_uint > highp_uvec2
typedef detail::tvec3< highp_uint > highp_uvec3
typedef detail::tvec4< highp_uint > highp_uvec4
typedef detail::tvec2
+< highp_float > 
highp_vec2
typedef detail::tvec3
+< highp_float > 
highp_vec3
typedef detail::tvec4
+< highp_float > 
highp_vec4
typedef lowp_float_t lowp_float
typedef detail::lowp_int_t lowp_int
typedef detail::tvec2< lowp_int > lowp_ivec2
typedef detail::tvec3< lowp_int > lowp_ivec3
typedef detail::tvec4< lowp_int > lowp_ivec4
typedef detail::tmat2x2
+< lowp_float > 
lowp_mat2
typedef detail::tmat2x2
+< lowp_float > 
lowp_mat2x2
typedef detail::tmat2x3
+< lowp_float > 
lowp_mat2x3
typedef detail::tmat2x4
+< lowp_float > 
lowp_mat2x4
typedef detail::tmat3x3
+< lowp_float > 
lowp_mat3
typedef detail::tmat3x2
+< lowp_float > 
lowp_mat3x2
typedef detail::tmat3x3
+< lowp_float > 
lowp_mat3x3
typedef detail::tmat3x4
+< lowp_float > 
lowp_mat3x4
typedef detail::tmat4x4
+< lowp_float > 
lowp_mat4
typedef detail::tmat4x2
+< lowp_float > 
lowp_mat4x2
typedef detail::tmat4x3
+< lowp_float > 
lowp_mat4x3
typedef detail::tmat4x4
+< lowp_float > 
lowp_mat4x4
typedef detail::lowp_uint_t lowp_uint
typedef detail::tvec2< lowp_uint > lowp_uvec2
typedef detail::tvec3< lowp_uint > lowp_uvec3
typedef detail::tvec4< lowp_uint > lowp_uvec4
typedef detail::tvec2< lowp_float > lowp_vec2
typedef detail::tvec3< lowp_float > lowp_vec3
typedef detail::tvec4< lowp_float > lowp_vec4
typedef mediump_float_t mediump_float
typedef detail::mediump_int_t mediump_int
typedef detail::tvec2
+< mediump_int > 
mediump_ivec2
typedef detail::tvec3
+< mediump_int > 
mediump_ivec3
typedef detail::tvec4
+< mediump_int > 
mediump_ivec4
typedef detail::tmat2x2
+< mediump_float > 
mediump_mat2
typedef detail::tmat2x2
+< mediump_float > 
mediump_mat2x2
typedef detail::tmat2x3
+< mediump_float > 
mediump_mat2x3
typedef detail::tmat2x4
+< mediump_float > 
mediump_mat2x4
typedef detail::tmat3x3
+< mediump_float > 
mediump_mat3
typedef detail::tmat3x2
+< mediump_float > 
mediump_mat3x2
typedef detail::tmat3x3
+< mediump_float > 
mediump_mat3x3
typedef detail::tmat3x4
+< mediump_float > 
mediump_mat3x4
typedef detail::tmat4x4
+< mediump_float > 
mediump_mat4
typedef detail::tmat4x2
+< mediump_float > 
mediump_mat4x2
typedef detail::tmat4x3
+< mediump_float > 
mediump_mat4x3
typedef detail::tmat4x4
+< mediump_float > 
mediump_mat4x4
typedef detail::mediump_uint_t mediump_uint
typedef detail::tvec2
+< mediump_uint > 
mediump_uvec2
typedef detail::tvec3
+< mediump_uint > 
mediump_uvec3
typedef detail::tvec4
+< mediump_uint > 
mediump_uvec4
typedef detail::tvec2
+< mediump_float > 
mediump_vec2
typedef detail::tvec3
+< mediump_float > 
mediump_vec3
typedef detail::tvec4
+< mediump_float > 
mediump_vec4
typedef uint_t uint
+

Detailed Description

+

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 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 Template types that use a particular precision.

+

None of these types make any guarantees about the actual precision used.

+

Typedef Documentation

+ +
+
+ + + + +
typedef highp_float_t highp_float
+
+
+ +

High precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.4 Floats
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 67 of file type_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::highp_int_t highp_int
+
+
+ +

High precision signed integer.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 81 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<highp_int> highp_ivec2
+
+
+ +

2 components vector of high precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 275 of file type_vec2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<highp_int> highp_ivec3
+
+
+ +

3 components vector of high precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 300 of file type_vec3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<highp_int> highp_ivec4
+
+
+ +

4 components vector of high precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 357 of file type_vec4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<highp_float> highp_mat2
+
+
+ +

2 columns of 2 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 286 of file type_mat2x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<highp_float> highp_mat2x2
+
+
+ +

2 columns of 2 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 307 of file type_mat2x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<highp_float> highp_mat2x3
+
+
+ +

2 columns of 3 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 250 of file type_mat2x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<highp_float> highp_mat2x4
+
+
+ +

2 columns of 4 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 252 of file type_mat2x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<highp_float> highp_mat3
+
+
+ +

3 columns of 3 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 290 of file type_mat3x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<highp_float> highp_mat3x2
+
+
+ +

3 columns of 2 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 258 of file type_mat3x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<highp_float> highp_mat3x3
+
+
+ +

3 columns of 3 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 311 of file type_mat3x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<highp_float> highp_mat3x4
+
+
+ +

3 columns of 4 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 258 of file type_mat3x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<highp_float> highp_mat4
+
+
+ +

4 columns of 4 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 291 of file type_mat4x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<highp_float> highp_mat4x2
+
+
+ +

4 columns of 2 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 263 of file type_mat4x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<highp_float> highp_mat4x3
+
+
+ +

4 columns of 3 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 261 of file type_mat4x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<highp_float> highp_mat4x4
+
+
+ +

4 columns of 4 components matrix of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 312 of file type_mat4x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::highp_uint_t highp_uint
+
+
+ +

High precision unsigned integer.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 102 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<highp_uint> highp_uvec2
+
+
+ +

2 components vector of high precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 296 of file type_vec2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<highp_uint> highp_uvec3
+
+
+ +

3 components vector of high precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 321 of file type_vec3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<highp_uint> highp_uvec4
+
+
+ +

4 components vector of high precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 378 of file type_vec4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<highp_float> highp_vec2
+
+
+ +

2 components vector of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 254 of file type_vec2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<highp_float> highp_vec3
+
+
+ +

3 components vector of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 279 of file type_vec3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<highp_float> highp_vec4
+
+
+ +

4 components vector of high precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 336 of file type_vec4.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_float_t lowp_float
+
+
+ +

Low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.4 Floats
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 53 of file type_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::lowp_int_t lowp_int
+
+
+ +

Low precision signed integer.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 67 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<lowp_int> lowp_ivec2
+
+
+ +

2 components vector of low precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 289 of file type_vec2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<lowp_int> lowp_ivec3
+
+
+ +

3 components vector of low precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 314 of file type_vec3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<lowp_int> lowp_ivec4
+
+
+ +

4 components vector of low precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 371 of file type_vec4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<lowp_float> lowp_mat2
+
+
+ +

2 columns of 2 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 272 of file type_mat2x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<lowp_float> lowp_mat2x2
+
+
+ +

2 columns of 2 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 293 of file type_mat2x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<lowp_float> lowp_mat2x3
+
+
+ +

2 columns of 3 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 236 of file type_mat2x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<lowp_float> lowp_mat2x4
+
+
+ +

2 columns of 4 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 238 of file type_mat2x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<lowp_float> lowp_mat3
+
+
+ +

3 columns of 3 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 276 of file type_mat3x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<lowp_float> lowp_mat3x2
+
+
+ +

3 columns of 2 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 244 of file type_mat3x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<lowp_float> lowp_mat3x3
+
+
+ +

3 columns of 3 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 297 of file type_mat3x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<lowp_float> lowp_mat3x4
+
+
+ +

3 columns of 4 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 244 of file type_mat3x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<lowp_float> lowp_mat4
+
+
+ +

4 columns of 4 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 277 of file type_mat4x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<lowp_float> lowp_mat4x2
+
+
+ +

4 columns of 2 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 249 of file type_mat4x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<lowp_float> lowp_mat4x3
+
+
+ +

4 columns of 3 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 247 of file type_mat4x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<lowp_float> lowp_mat4x4
+
+
+ +

4 columns of 4 components matrix of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 298 of file type_mat4x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::lowp_uint_t lowp_uint
+
+
+ +

Low precision unsigned integer.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 88 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<lowp_uint> lowp_uvec2
+
+
+ +

2 components vector of low precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 310 of file type_vec2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<lowp_uint> lowp_uvec3
+
+
+ +

3 components vector of low precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 335 of file type_vec3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<lowp_uint> lowp_uvec4
+
+
+ +

4 components vector of low precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 392 of file type_vec4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<lowp_float> lowp_vec2
+
+
+ +

2 components vector of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 268 of file type_vec2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<lowp_float> lowp_vec3
+
+
+ +

3 components vector of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 293 of file type_vec3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<lowp_float> lowp_vec4
+
+
+ +

4 components vector of low precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 350 of file type_vec4.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_float_t mediump_float
+
+
+ +

Medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.4 Floats
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 60 of file type_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::mediump_int_t mediump_int
+
+
+ +

Medium precision signed integer.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 74 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<mediump_int> mediump_ivec2
+
+
+ +

2 components vector of medium precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 282 of file type_vec2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<mediump_int> mediump_ivec3
+
+
+ +

3 components vector of medium precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 307 of file type_vec3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<mediump_int> mediump_ivec4
+
+
+ +

4 components vector of medium precision signed integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 364 of file type_vec4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<mediump_float> mediump_mat2
+
+
+ +

2 columns of 2 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 279 of file type_mat2x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<mediump_float> mediump_mat2x2
+
+
+ +

2 columns of 2 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 300 of file type_mat2x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<mediump_float> mediump_mat2x3
+
+
+ +

2 columns of 3 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 243 of file type_mat2x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<mediump_float> mediump_mat2x4
+
+
+ +

2 columns of 4 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 245 of file type_mat2x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<mediump_float> mediump_mat3
+
+
+ +

3 columns of 3 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 283 of file type_mat3x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<mediump_float> mediump_mat3x2
+
+
+ +

3 columns of 2 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 251 of file type_mat3x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<mediump_float> mediump_mat3x3
+
+
+ +

3 columns of 3 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 304 of file type_mat3x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<mediump_float> mediump_mat3x4
+
+
+ +

3 columns of 4 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 251 of file type_mat3x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<mediump_float> mediump_mat4
+
+
+ +

4 columns of 4 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 284 of file type_mat4x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<mediump_float> mediump_mat4x2
+
+
+ +

4 columns of 2 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 256 of file type_mat4x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<mediump_float> mediump_mat4x3
+
+
+ +

4 columns of 3 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 254 of file type_mat4x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<mediump_float> mediump_mat4x4
+
+
+ +

4 columns of 4 components matrix of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 305 of file type_mat4x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::mediump_uint_t mediump_uint
+
+
+ +

Medium precision unsigned integer.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.3 Integers
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 95 of file type_int.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<mediump_uint> mediump_uvec2
+
+
+ +

2 components vector of medium precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 303 of file type_vec2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<mediump_uint> mediump_uvec3
+
+
+ +

3 components vector of medium precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 328 of file type_vec3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<mediump_uint> mediump_uvec4
+
+
+ +

4 components vector of medium precision unsigned integer numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 385 of file type_vec4.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<mediump_float> mediump_vec2
+
+
+ +

2 components vector of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 261 of file type_vec2.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<mediump_float> mediump_vec3
+
+
+ +

3 components vector of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 286 of file type_vec3.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<mediump_float> mediump_vec4
+
+
+ +

4 components vector of medium precision floating-point numbers.

+

There is no guarantee on the actual precision.

+
See also:
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 343 of file type_vec4.hpp.

+ +
+
+ +
+
+ + + + +
typedef uint_t uint
+
+
+ +

Unsigned integer type.

+
See also:
GLSL 4.20.8 specification, section 4.1.3 Integers
+ +

Definition at line 131 of file type_int.hpp.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00142.html b/doc/api/a00142.html new file mode 100644 index 00000000..3cb7c97f --- /dev/null +++ b/doc/api/a00142.html @@ -0,0 +1,62 @@ + + + + + +Template types + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
Template types
+
+
+

The generic template types used as the basis for the core types.

+

These types are all templates used to define the actual Types. These templetes are implementation details of GLM types and should not be used explicitly.

+
+ + + + + + diff --git a/doc/api/a00143.html b/doc/api/a00143.html new file mode 100644 index 00000000..a42e442d --- /dev/null +++ b/doc/api/a00143.html @@ -0,0 +1,394 @@ + + + + + +GLM_GTC_half_float: Half-precision floating-point based types and functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTC_half_float: Half-precision floating-point based types and functions
+
+
+ + + + + + + + + + + + + + + + + + + + + +

+Classes

class  half
 16-bit floating point type. More...

+Typedefs

typedef detail::half half
typedef detail::tmat2x2
+< detail::half > 
hmat2
typedef detail::tmat2x2
+< detail::half > 
hmat2x2
typedef detail::tmat2x3
+< detail::half > 
hmat2x3
typedef detail::tmat2x4
+< detail::half > 
hmat2x4
typedef detail::tmat3x3
+< detail::half > 
hmat3
typedef detail::tmat3x2
+< detail::half > 
hmat3x2
typedef detail::tmat3x3
+< detail::half > 
hmat3x3
typedef detail::tmat3x4
+< detail::half > 
hmat3x4
typedef detail::tmat4x4
+< detail::half > 
hmat4
typedef detail::tmat4x2
+< detail::half > 
hmat4x2
typedef detail::tmat4x3
+< detail::half > 
hmat4x3
typedef detail::tmat4x4
+< detail::half > 
hmat4x4
typedef detail::tvec2
+< detail::half > 
hvec2
typedef detail::tvec3
+< detail::half > 
hvec3
typedef detail::tvec4
+< detail::half > 
hvec4
+

Detailed Description

+

Defines the half-precision floating-point type, along with various typedefs for vectors and matrices.

+

<glm/gtc/half_float.hpp> need to be included to use these functionalities.

+

Typedef Documentation

+ +
+
+ + + + +
typedef detail::half half
+
+
+ +

Type for half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 357 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<detail::half> hmat2
+
+
+ +

2 * 2 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 373 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<detail::half> hmat2x2
+
+
+ +

2 * 2 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 385 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<detail::half> hmat2x3
+
+
+ +

2 * 3 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 389 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<detail::half> hmat2x4
+
+
+ +

2 * 4 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 393 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<detail::half> hmat3
+
+
+ +

3 * 3 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 377 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<detail::half> hmat3x2
+
+
+ +

3 * 2 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 397 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<detail::half> hmat3x3
+
+
+ +

3 * 3 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 401 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<detail::half> hmat3x4
+
+
+ +

3 * 4 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 405 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<detail::half> hmat4
+
+
+ +

4 * 4 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 381 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<detail::half> hmat4x2
+
+
+ +

4 * 2 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 409 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<detail::half> hmat4x3
+
+
+ +

4 * 3 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 413 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<detail::half> hmat4x4
+
+
+ +

4 * 4 matrix of half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 417 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<detail::half> hvec2
+
+
+ +

Vector of 2 half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 361 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<detail::half> hvec3
+
+
+ +

Vector of 3 half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 365 of file half_float.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<detail::half> hvec4
+
+
+ +

Vector of 4 half-precision floating-point numbers.

+
See also:
GLM_GTC_half_float: Half-precision floating-point based types and functions
+ +

Definition at line 369 of file half_float.hpp.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00144.html b/doc/api/a00144.html new file mode 100644 index 00000000..0a54229d --- /dev/null +++ b/doc/api/a00144.html @@ -0,0 +1,210 @@ + + + + + +GLM_GTC_matrix_access: Access matrix rows and columns + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTC_matrix_access: Access matrix rows and columns
+
+
+ + + + + + + + + + +

+Functions

template<typename genType >
genType::col_type column (genType const &m, int index)
template<typename genType >
genType column (genType const &m, int index, typename genType::col_type const &x)
template<typename genType >
genType::row_type row (genType const &m, int index)
template<typename genType >
genType row (genType const &m, int index, typename genType::row_type const &x)
+

Detailed Description

+

Defines functions to access rows or columns of a matrix easily.

+

<glm/gtc/matrix_access.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
genType::col_type glm::column (genType const & m,
int index 
)
+
+
+ +

Get a specific column of a matrix.

+
See also:
GLM_GTC_matrix_access: Access matrix rows and columns
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genType glm::column (genType const & m,
int index,
typename genType::col_type const & x 
)
+
+
+ +

Set a specific column to a matrix.

+
See also:
GLM_GTC_matrix_access: Access matrix rows and columns
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType::row_type glm::row (genType const & m,
int index 
)
+
+
+ +

Get a specific row of a matrix.

+
See also:
GLM_GTC_matrix_access: Access matrix rows and columns
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genType glm::row (genType const & m,
int index,
typename genType::row_type const & x 
)
+
+
+ +

Set a specific row to a matrix.

+
See also:
GLM_GTC_matrix_access: Access matrix rows and columns
+ +
+
+
+ + + + + + diff --git a/doc/api/a00145.html b/doc/api/a00145.html new file mode 100644 index 00000000..72b24b49 --- /dev/null +++ b/doc/api/a00145.html @@ -0,0 +1,1954 @@ + + + + + +GLM_GTC_matrix_integer: Integer matrix types + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTC_matrix_integer: Integer matrix types
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef detail::tmat2x2
+< highp_int > 
highp_imat2
typedef detail::tmat2x2
+< highp_int > 
highp_imat2x2
typedef detail::tmat2x3
+< highp_int > 
highp_imat2x3
typedef detail::tmat2x4
+< highp_int > 
highp_imat2x4
typedef detail::tmat3x3
+< highp_int > 
highp_imat3
typedef detail::tmat3x2
+< highp_int > 
highp_imat3x2
typedef detail::tmat3x3
+< highp_int > 
highp_imat3x3
typedef detail::tmat3x4
+< highp_int > 
highp_imat3x4
typedef detail::tmat4x4
+< highp_int > 
highp_imat4
typedef detail::tmat4x2
+< highp_int > 
highp_imat4x2
typedef detail::tmat4x3
+< highp_int > 
highp_imat4x3
typedef detail::tmat4x4
+< highp_int > 
highp_imat4x4
typedef detail::tmat2x2
+< highp_uint > 
highp_umat2
typedef detail::tmat2x2
+< highp_uint > 
highp_umat2x2
typedef detail::tmat2x3
+< highp_uint > 
highp_umat2x3
typedef detail::tmat2x4
+< highp_uint > 
highp_umat2x4
typedef detail::tmat3x3
+< highp_uint > 
highp_umat3
typedef detail::tmat3x2
+< highp_uint > 
highp_umat3x2
typedef detail::tmat3x3
+< highp_uint > 
highp_umat3x3
typedef detail::tmat3x4
+< highp_uint > 
highp_umat3x4
typedef detail::tmat4x4
+< highp_uint > 
highp_umat4
typedef detail::tmat4x2
+< highp_uint > 
highp_umat4x2
typedef detail::tmat4x3
+< highp_uint > 
highp_umat4x3
typedef detail::tmat4x4
+< highp_uint > 
highp_umat4x4
typedef mediump_imat2 imat2
typedef mediump_imat2x2 imat2x2
typedef mediump_imat2x3 imat2x3
typedef mediump_imat2x4 imat2x4
typedef mediump_imat3 imat3
typedef mediump_imat3x2 imat3x2
typedef mediump_imat3x3 imat3x3
typedef mediump_imat3x4 imat3x4
typedef mediump_imat4 imat4
typedef mediump_imat4x2 imat4x2
typedef mediump_imat4x3 imat4x3
typedef mediump_imat4x4 imat4x4
typedef detail::tmat2x2< lowp_int > lowp_imat2
typedef detail::tmat2x2< lowp_int > lowp_imat2x2
typedef detail::tmat2x3< lowp_int > lowp_imat2x3
typedef detail::tmat2x4< lowp_int > lowp_imat2x4
typedef detail::tmat3x3< lowp_int > lowp_imat3
typedef detail::tmat3x2< lowp_int > lowp_imat3x2
typedef detail::tmat3x3< lowp_int > lowp_imat3x3
typedef detail::tmat3x4< lowp_int > lowp_imat3x4
typedef detail::tmat4x4< lowp_int > lowp_imat4
typedef detail::tmat4x2< lowp_int > lowp_imat4x2
typedef detail::tmat4x3< lowp_int > lowp_imat4x3
typedef detail::tmat4x4< lowp_int > lowp_imat4x4
typedef detail::tmat2x2
+< lowp_uint > 
lowp_umat2
typedef detail::tmat2x2
+< lowp_uint > 
lowp_umat2x2
typedef detail::tmat2x3
+< lowp_uint > 
lowp_umat2x3
typedef detail::tmat2x4
+< lowp_uint > 
lowp_umat2x4
typedef detail::tmat3x3
+< lowp_uint > 
lowp_umat3
typedef detail::tmat3x2
+< lowp_uint > 
lowp_umat3x2
typedef detail::tmat3x3
+< lowp_uint > 
lowp_umat3x3
typedef detail::tmat3x4
+< lowp_uint > 
lowp_umat3x4
typedef detail::tmat4x4
+< lowp_uint > 
lowp_umat4
typedef detail::tmat4x2
+< lowp_uint > 
lowp_umat4x2
typedef detail::tmat4x3
+< lowp_uint > 
lowp_umat4x3
typedef detail::tmat4x4
+< lowp_uint > 
lowp_umat4x4
typedef detail::tmat2x2
+< mediump_int > 
mediump_imat2
typedef detail::tmat2x2
+< mediump_int > 
mediump_imat2x2
typedef detail::tmat2x3
+< mediump_int > 
mediump_imat2x3
typedef detail::tmat2x4
+< mediump_int > 
mediump_imat2x4
typedef detail::tmat3x3
+< mediump_int > 
mediump_imat3
typedef detail::tmat3x2
+< mediump_int > 
mediump_imat3x2
typedef detail::tmat3x3
+< mediump_int > 
mediump_imat3x3
typedef detail::tmat3x4
+< mediump_int > 
mediump_imat3x4
typedef detail::tmat4x4
+< mediump_int > 
mediump_imat4
typedef detail::tmat4x2
+< mediump_int > 
mediump_imat4x2
typedef detail::tmat4x3
+< mediump_int > 
mediump_imat4x3
typedef detail::tmat4x4
+< mediump_int > 
mediump_imat4x4
typedef detail::tmat2x2
+< mediump_uint > 
mediump_umat2
typedef detail::tmat2x2
+< mediump_uint > 
mediump_umat2x2
typedef detail::tmat2x3
+< mediump_uint > 
mediump_umat2x3
typedef detail::tmat2x4
+< mediump_uint > 
mediump_umat2x4
typedef detail::tmat3x3
+< mediump_uint > 
mediump_umat3
typedef detail::tmat3x2
+< mediump_uint > 
mediump_umat3x2
typedef detail::tmat3x3
+< mediump_uint > 
mediump_umat3x3
typedef detail::tmat3x4
+< mediump_uint > 
mediump_umat3x4
typedef detail::tmat4x4
+< mediump_uint > 
mediump_umat4
typedef detail::tmat4x2
+< mediump_uint > 
mediump_umat4x2
typedef detail::tmat4x3
+< mediump_uint > 
mediump_umat4x3
typedef detail::tmat4x4
+< mediump_uint > 
mediump_umat4x4
typedef mediump_umat2 umat2
typedef mediump_umat2x2 umat2x2
typedef mediump_umat2x3 umat2x3
typedef mediump_umat2x4 umat2x4
typedef mediump_umat3 umat3
typedef mediump_umat3x2 umat3x2
typedef mediump_umat3x3 umat3x3
typedef mediump_umat3x4 umat3x4
typedef mediump_umat4 umat4
typedef mediump_umat4x2 umat4x2
typedef mediump_umat4x3 umat4x3
typedef mediump_umat4x4 umat4x4
+

Detailed Description

+

Defines a number of matrices with integer types.

+

<glm/gtc/matrix_integer.hpp> need to be included to use these functionalities.

+

Typedef Documentation

+ +
+
+ + + + +
typedef detail::tmat2x2<highp_int> highp_imat2
+
+
+ +

High-precision signed integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 54 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<highp_int> highp_imat2x2
+
+
+ +

High-precision signed integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 66 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<highp_int> highp_imat2x3
+
+
+ +

High-precision signed integer 2x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 70 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<highp_int> highp_imat2x4
+
+
+ +

High-precision signed integer 2x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 74 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<highp_int> highp_imat3
+
+
+ +

High-precision signed integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 58 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<highp_int> highp_imat3x2
+
+
+ +

High-precision signed integer 3x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 78 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<highp_int> highp_imat3x3
+
+
+ +

High-precision signed integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 82 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<highp_int> highp_imat3x4
+
+
+ +

High-precision signed integer 3x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 86 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<highp_int> highp_imat4
+
+
+ +

High-precision signed integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 62 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<highp_int> highp_imat4x2
+
+
+ +

High-precision signed integer 4x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 90 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<highp_int> highp_imat4x3
+
+
+ +

High-precision signed integer 4x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 94 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<highp_int> highp_imat4x4
+
+
+ +

High-precision signed integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 98 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<highp_uint> highp_umat2
+
+
+ +

High-precision unsigned integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 203 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<highp_uint> highp_umat2x2
+
+
+ +

High-precision unsigned integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 215 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<highp_uint> highp_umat2x3
+
+
+ +

High-precision unsigned integer 2x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 219 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<highp_uint> highp_umat2x4
+
+
+ +

High-precision unsigned integer 2x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 223 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<highp_uint> highp_umat3
+
+
+ +

High-precision unsigned integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 207 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<highp_uint> highp_umat3x2
+
+
+ +

High-precision unsigned integer 3x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 227 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<highp_uint> highp_umat3x3
+
+
+ +

High-precision unsigned integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 231 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<highp_uint> highp_umat3x4
+
+
+ +

High-precision unsigned integer 3x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 235 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<highp_uint> highp_umat4
+
+
+ +

High-precision unsigned integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 211 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<highp_uint> highp_umat4x2
+
+
+ +

High-precision unsigned integer 4x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 239 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<highp_uint> highp_umat4x3
+
+
+ +

High-precision unsigned integer 4x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 243 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<highp_uint> highp_umat4x4
+
+
+ +

High-precision unsigned integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 247 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat2 imat2
+
+
+ +

Signed integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 379 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat2x2 imat2x2
+
+
+ +

Signed integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 391 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat2x3 imat2x3
+
+
+ +

Signed integer 2x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 395 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat2x4 imat2x4
+
+
+ +

Signed integer 2x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 399 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat3 imat3
+
+
+ +

Signed integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 383 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat3x2 imat3x2
+
+
+ +

Signed integer 3x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 403 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat3x3 imat3x3
+
+
+ +

Signed integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 407 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat3x4 imat3x4
+
+
+ +

Signed integer 3x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 411 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat4 imat4
+
+
+ +

Signed integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 387 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat4x2 imat4x2
+
+
+ +

Signed integer 4x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 415 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat4x3 imat4x3
+
+
+ +

Signed integer 4x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 419 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat4x4 imat4x4
+
+
+ +

Signed integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 423 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<lowp_int> lowp_imat2
+
+
+ +

Low-precision signed integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 153 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<lowp_int> lowp_imat2x2
+
+
+ +

Low-precision signed integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 166 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<lowp_int> lowp_imat2x3
+
+
+ +

Low-precision signed integer 2x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 170 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<lowp_int> lowp_imat2x4
+
+
+ +

Low-precision signed integer 2x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 174 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<lowp_int> lowp_imat3
+
+
+ +

Low-precision signed integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 157 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<lowp_int> lowp_imat3x2
+
+
+ +

Low-precision signed integer 3x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 178 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<lowp_int> lowp_imat3x3
+
+
+ +

Low-precision signed integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 182 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<lowp_int> lowp_imat3x4
+
+
+ +

Low-precision signed integer 3x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 186 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<lowp_int> lowp_imat4
+
+
+ +

Low-precision signed integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 161 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<lowp_int> lowp_imat4x2
+
+
+ +

Low-precision signed integer 4x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 190 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<lowp_int> lowp_imat4x3
+
+
+ +

Low-precision signed integer 4x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 194 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<lowp_int> lowp_imat4x4
+
+
+ +

Low-precision signed integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 198 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<lowp_uint> lowp_umat2
+
+
+ +

Low-precision unsigned integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 302 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<lowp_uint> lowp_umat2x2
+
+
+ +

Low-precision unsigned integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 315 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<lowp_uint> lowp_umat2x3
+
+
+ +

Low-precision unsigned integer 2x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 319 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<lowp_uint> lowp_umat2x4
+
+
+ +

Low-precision unsigned integer 2x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 323 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<lowp_uint> lowp_umat3
+
+
+ +

Low-precision unsigned integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 306 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<lowp_uint> lowp_umat3x2
+
+
+ +

Low-precision unsigned integer 3x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 327 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<lowp_uint> lowp_umat3x3
+
+
+ +

Low-precision unsigned integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 331 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<lowp_uint> lowp_umat3x4
+
+
+ +

Low-precision unsigned integer 3x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 335 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<lowp_uint> lowp_umat4
+
+
+ +

Low-precision unsigned integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 310 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<lowp_uint> lowp_umat4x2
+
+
+ +

Low-precision unsigned integer 4x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 339 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<lowp_uint> lowp_umat4x3
+
+
+ +

Low-precision unsigned integer 4x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 343 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<lowp_uint> lowp_umat4x4
+
+
+ +

Low-precision unsigned integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 347 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<mediump_int> mediump_imat2
+
+
+ +

Medium-precision signed integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 103 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<mediump_int> mediump_imat2x2
+
+
+ +

Medium-precision signed integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 116 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<mediump_int> mediump_imat2x3
+
+
+ +

Medium-precision signed integer 2x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 120 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<mediump_int> mediump_imat2x4
+
+
+ +

Medium-precision signed integer 2x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 124 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<mediump_int> mediump_imat3
+
+
+ +

Medium-precision signed integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 107 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<mediump_int> mediump_imat3x2
+
+
+ +

Medium-precision signed integer 3x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 128 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<mediump_int> mediump_imat3x3
+
+
+ +

Medium-precision signed integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 132 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<mediump_int> mediump_imat3x4
+
+
+ +

Medium-precision signed integer 3x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 136 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<mediump_int> mediump_imat4
+
+
+ +

Medium-precision signed integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 111 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<mediump_int> mediump_imat4x2
+
+
+ +

Medium-precision signed integer 4x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 140 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<mediump_int> mediump_imat4x3
+
+
+ +

Medium-precision signed integer 4x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 144 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<mediump_int> mediump_imat4x4
+
+
+ +

Medium-precision signed integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 148 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<mediump_uint> mediump_umat2
+
+
+ +

Medium-precision unsigned integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 252 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<mediump_uint> mediump_umat2x2
+
+
+ +

Medium-precision unsigned integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 265 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<mediump_uint> mediump_umat2x3
+
+
+ +

Medium-precision unsigned integer 2x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 269 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<mediump_uint> mediump_umat2x4
+
+
+ +

Medium-precision unsigned integer 2x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 273 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<mediump_uint> mediump_umat3
+
+
+ +

Medium-precision unsigned integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 256 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<mediump_uint> mediump_umat3x2
+
+
+ +

Medium-precision unsigned integer 3x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 277 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<mediump_uint> mediump_umat3x3
+
+
+ +

Medium-precision unsigned integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 281 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<mediump_uint> mediump_umat3x4
+
+
+ +

Medium-precision unsigned integer 3x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 285 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<mediump_uint> mediump_umat4
+
+
+ +

Medium-precision unsigned integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 260 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<mediump_uint> mediump_umat4x2
+
+
+ +

Medium-precision unsigned integer 4x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 289 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<mediump_uint> mediump_umat4x3
+
+
+ +

Medium-precision unsigned integer 4x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 293 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<mediump_uint> mediump_umat4x4
+
+
+ +

Medium-precision unsigned integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 297 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat2 umat2
+
+
+ +

Unsigned integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 456 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat2x2 umat2x2
+
+
+ +

Unsigned integer 2x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 468 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat2x3 umat2x3
+
+
+ +

Unsigned integer 2x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 472 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat2x4 umat2x4
+
+
+ +

Unsigned integer 2x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 476 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat3 umat3
+
+
+ +

Unsigned integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 460 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat3x2 umat3x2
+
+
+ +

Unsigned integer 3x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 480 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat3x3 umat3x3
+
+
+ +

Unsigned integer 3x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 484 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat3x4 umat3x4
+
+
+ +

Unsigned integer 3x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 488 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat4 umat4
+
+
+ +

Unsigned integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 464 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat4x2 umat4x2
+
+
+ +

Unsigned integer 4x2 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 492 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat4x3 umat4x3
+
+
+ +

Unsigned integer 4x3 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 496 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat4x4 umat4x4
+
+
+ +

Unsigned integer 4x4 matrix.

+
See also:
GLM_GTC_matrix_integer: Integer matrix types
+ +

Definition at line 500 of file matrix_integer.hpp.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00146.html b/doc/api/a00146.html new file mode 100644 index 00000000..0a731169 --- /dev/null +++ b/doc/api/a00146.html @@ -0,0 +1,139 @@ + + + + + +GLM_GTC_matrix_inverse: Additional matrix inverse function + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTC_matrix_inverse: Additional matrix inverse function
+
+
+ + + + + + +

+Functions

template<typename genType >
genType affineInverse (genType const &m)
template<typename genType >
GLM_FUNC_QUALIFIER
+genType::value_type 
inverseTranspose (genType const &m)
+

Detailed Description

+

Defines additional matrix inverting functions.

+

<glm/gtc/matrix_inverse.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
genType glm::affineInverse (genType const & m)
+
+
+ +

Fast matrix inverse for affine matrix.

+
Parameters:
+ + +
mInput matrix to invert.
+
+
+
Template Parameters:
+ + +
genTypeSquared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate.
+
+
+
See also:
GLM_GTC_matrix_inverse: Additional matrix inverse function
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_QUALIFIER genType::value_type glm::inverseTranspose (genType const & m)
+
+
+ +

Compute the inverse transpose of a matrix.

+
Parameters:
+ + +
mInput matrix to invert transpose.
+
+
+
Template Parameters:
+ + +
genTypeSquared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate.
+
+
+
See also:
GLM_GTC_matrix_inverse: Additional matrix inverse function
+ +
+
+
+ + + + + + diff --git a/doc/api/a00147.html b/doc/api/a00147.html new file mode 100644 index 00000000..8c881dfa --- /dev/null +++ b/doc/api/a00147.html @@ -0,0 +1,904 @@ + + + + + +GLM_GTC_matrix_transform: Matrix transform functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTC_matrix_transform: Matrix transform functions
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat4x4< T > frustum (T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far)
template<typename T >
detail::tmat4x4< T > infinitePerspective (T fovy, T aspect, T near)
template<typename T >
detail::tmat4x4< T > lookAt (detail::tvec3< T > const &eye, detail::tvec3< T > const &center, detail::tvec3< T > const &up)
template<typename T >
detail::tmat4x4< T > ortho (T const &left, T const &right, T const &bottom, T const &top, T const &zNear, T const &zFar)
template<typename T >
detail::tmat4x4< T > ortho (T const &left, T const &right, T const &bottom, T const &top)
template<typename T >
detail::tmat4x4< T > perspective (T const &fovy, T const &aspect, T const &near, T const &far)
template<typename valType >
detail::tmat4x4< valType > perspectiveFov (valType const &fov, valType const &width, valType const &height, valType const &near, valType const &far)
template<typename T , typename U >
detail::tmat4x4< T > pickMatrix (detail::tvec2< T > const &center, detail::tvec2< T > const &delta, detail::tvec4< U > const &viewport)
template<typename T , typename U >
detail::tvec3< T > project (detail::tvec3< T > const &obj, detail::tmat4x4< T > const &model, detail::tmat4x4< T > const &proj, detail::tvec4< U > const &viewport)
template<typename T >
detail::tmat4x4< T > rotate (detail::tmat4x4< T > const &m, T const &angle, detail::tvec3< T > const &axis)
template<typename T >
detail::tmat4x4< T > scale (detail::tmat4x4< T > const &m, detail::tvec3< T > const &v)
template<typename T >
detail::tmat4x4< T > translate (detail::tmat4x4< T > const &m, detail::tvec3< T > const &v)
template<typename T >
detail::tmat4x4< T > tweakedInfinitePerspective (T fovy, T aspect, T near)
template<typename T , typename U >
detail::tvec3< T > unProject (detail::tvec3< T > const &win, detail::tmat4x4< T > const &model, detail::tmat4x4< T > const &proj, detail::tvec4< U > const &viewport)
+

Detailed Description

+

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.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::frustum (T const & left,
T const & right,
T const & bottom,
T const & top,
T const & near,
T const & far 
)
+
+
+ +

Creates a frustum matrix.

+
Parameters:
+ + + + + + + +
left
right
bottom
top
near
far
+
+
+
Template Parameters:
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::infinitePerspective (fovy,
aspect,
near 
)
+
+
+ +

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.

+
Parameters:
+ + + + +
fovy
aspect
near
+
+
+
Template Parameters:
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::lookAt (detail::tvec3< T > const & eye,
detail::tvec3< T > const & center,
detail::tvec3< T > const & up 
)
+
+
+ +

Build a look at view matrix.

+
Parameters:
+ + + + +
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+
+- 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)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::ortho (T const & left,
T const & right,
T const & bottom,
T const & top,
T const & zNear,
T const & zFar 
)
+
+
+ +

Creates a matrix for an orthographic parallel viewing volume.

+
Parameters:
+ + + + + + + +
left
right
bottom
top
zNear
zFar
+
+
+
Template Parameters:
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+
+- glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::ortho (T const & left,
T const & right,
T const & bottom,
T const & top 
)
+
+
+ +

Creates a matrix for projecting two-dimensional coordinates onto the screen.

+
Parameters:
+ + + + + +
left
right
bottom
top
+
+
+
Template Parameters:
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+
+- glm::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::perspective (T const & fovy,
T const & aspect,
T const & near,
T const & far 
)
+
+
+ +

Creates a matrix for a symetric perspective-view frustum.

+
Parameters:
+ + + + + +
fovy
aspect
near
far
+
+
+
Template Parameters:
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<valType> glm::perspectiveFov (valType const & fov,
valType const & width,
valType const & height,
valType const & near,
valType const & far 
)
+
+
+ +

Builds a perspective projection matrix based on a field of view.

+
Parameters:
+ + + + + + +
fov
width
height
near
far
+
+
+
Template Parameters:
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::pickMatrix (detail::tvec2< T > const & center,
detail::tvec2< T > const & delta,
detail::tvec4< U > const & viewport 
)
+
+
+ +

Define a picking region.

+
Parameters:
+ + + + +
center
delta
viewport
+
+
+
Template Parameters:
+ + + +
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tvec3<T> glm::project (detail::tvec3< T > const & obj,
detail::tmat4x4< T > const & model,
detail::tmat4x4< T > const & proj,
detail::tvec4< U > const & viewport 
)
+
+
+ +

Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.

+
Parameters:
+ + + + + +
obj
model
proj
viewport
+
+
+
Template Parameters:
+ + + +
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::rotate (detail::tmat4x4< T > const & m,
T const & angle,
detail::tvec3< T > const & axis 
)
+
+
+ +

Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees.

+
Parameters:
+ + + + +
mInput matrix multiplied by this rotation matrix.
angleRotation angle expressed in degrees.
axisRotation axis, recommanded to be normalized.
+
+
+
Template Parameters:
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+
+GLM_GTX_transform: Extented transformation matrices
+
+- rotate(T angle, T x, T y, T z)
+
+- rotate(detail::tmat4x4<T> const & m, T angle, T x, T y, T z)
+
+- rotate(T angle, detail::tvec3<T> const & v)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::scale (detail::tmat4x4< T > const & m,
detail::tvec3< T > const & v 
)
+
+
+ +

Builds a scale 4 * 4 matrix created from 3 scalars.

+
Parameters:
+ + + +
mInput matrix multiplied by this scale matrix.
vRatio of scaling for each axis.
+
+
+
Template Parameters:
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+
+GLM_GTX_transform: Extented transformation matrices
+
+- scale(T x, T y, T z) scale(T const & x, T const & y, T const & z)
+
+- scale(detail::tmat4x4<T> const & m, T x, T y, T z)
+
+- scale(detail::tvec3<T> const & v)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::translate (detail::tmat4x4< T > const & m,
detail::tvec3< T > const & v 
)
+
+
+ +

Builds a translation 4 * 4 matrix created from a vector of 3 components.

+
Parameters:
+ + + +
mInput matrix multiplied by this translation matrix.
vCoordinates of a translation vector.
+
+
+
Template Parameters:
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
 #include <glm/glm.hpp>
+ #include <glm/gtc/matrix_transform.hpp>
+ ...
+ glm::mat4 m = glm::translate(glm::mat4(1.0f), glm::vec3(1.0f));
+ // m[0][0] == 1.0f, m[0][1] == 0.0f, m[0][2] == 0.0f, m[0][3] == 0.0f
+ // m[1][0] == 0.0f, m[1][1] == 1.0f, m[1][2] == 0.0f, m[1][3] == 0.0f
+ // m[2][0] == 0.0f, m[2][1] == 0.0f, m[2][2] == 1.0f, m[2][3] == 0.0f
+ // m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f
+
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+
+GLM_GTX_transform: Extented transformation matrices
+
+- translate(T x, T y, T z)
+
+- translate(detail::tmat4x4<T> const & m, T x, T y, T z)
+
+- translate(detail::tvec3<T> const & v)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::tweakedInfinitePerspective (fovy,
aspect,
near 
)
+
+
+ +

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

+
Parameters:
+ + + + +
fovy
aspect
near
+
+
+
Template Parameters:
+ + +
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tvec3<T> glm::unProject (detail::tvec3< T > const & win,
detail::tmat4x4< T > const & model,
detail::tmat4x4< T > const & proj,
detail::tvec4< U > const & viewport 
)
+
+
+ +

Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.

+
Parameters:
+ + + + + +
win
model
proj
viewport
+
+
+
Template Parameters:
+ + + +
TNative type used for the computation. Currently supported: half (not recommanded), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also:
GLM_GTC_matrix_transform: Matrix transform functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00148.html b/doc/api/a00148.html new file mode 100644 index 00000000..2ed326d3 --- /dev/null +++ b/doc/api/a00148.html @@ -0,0 +1,145 @@ + + + + + +GLM_GTC_noise: Procedural noise functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTC_noise: Procedural noise functions
+
+
+ + + + + + + + +

+Functions

template<typename T , template< typename > class vecType>
perlin (vecType< T > const &p)
template<typename T , template< typename > class vecType>
perlin (vecType< T > const &p, vecType< T > const &rep)
template<typename T , template< typename > class vecType>
simplex (vecType< T > const &p)
+

Detailed Description

+

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.

+

Function Documentation

+ +
+
+ + + + + + + + +
T glm::perlin (vecType< T > const & p)
+
+
+ +

Classic perlin noise.

+
See also:
GLM_GTC_noise: Procedural noise functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
T glm::perlin (vecType< T > const & p,
vecType< T > const & rep 
)
+
+
+ +

Periodic perlin noise.

+
See also:
GLM_GTC_noise: Procedural noise functions
+ +
+
+ +
+
+ + + + + + + + +
T glm::simplex (vecType< T > const & p)
+
+
+ +

Simplex noise.

+
See also:
GLM_GTC_noise: Procedural noise functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00149.html b/doc/api/a00149.html new file mode 100644 index 00000000..0192d167 --- /dev/null +++ b/doc/api/a00149.html @@ -0,0 +1,505 @@ + + + + + +GLM_GTC_quaternion: Quaternion types and functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTC_quaternion: Quaternion types and functions
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  tquat< T >
 Template for quaternion. More...

+Typedefs

typedef detail::tquat< double > dquat
typedef detail::tquat< float > fquat
typedef detail::tquat
+< highp_float > 
highp_quat
typedef detail::tquat
+< detail::half > 
hquat
typedef detail::tquat< lowp_float > lowp_quat
typedef detail::tquat
+< mediump_float > 
mediump_quat
typedef detail::tquat< float > quat

+Functions

template<typename T >
detail::tquat< T > conjugate (detail::tquat< T > const &q)
template<typename T >
dot (detail::tquat< T > const &q1, detail::tquat< T > const &q2)
template<typename T >
detail::tquat< T > inverse (detail::tquat< T > const &q)
template<typename T >
length (detail::tquat< T > const &q)
template<typename T >
detail::tmat3x3< T > mat3_cast (detail::tquat< T > const &x)
template<typename T >
detail::tmat4x4< T > mat4_cast (detail::tquat< T > const &x)
template<typename T >
detail::tquat< T > mix (detail::tquat< T > const &x, detail::tquat< T > const &y, T const &a)
template<typename T >
detail::tquat< T > normalize (detail::tquat< T > const &q)
template<typename T >
detail::tquat< T > quat_cast (detail::tmat3x3< T > const &x)
template<typename T >
detail::tquat< T > quat_cast (detail::tmat4x4< T > const &x)
template<typename T >
detail::tquat< T > rotate (detail::tquat< T > const &q, typename detail::tquat< T >::value_type const &angle, detail::tvec3< T > const &v)
+

Detailed Description

+

Defines a templated quaternion type and several quaternion operations.

+

<glm/gtc/quaternion.hpp> need to be included to use these functionalities.

+

Typedef Documentation

+ +
+
+ + + + +
typedef detail::tquat<double> dquat
+
+
+ +

Quaternion of double-precision floating-point numbers.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +

Definition at line 253 of file gtc/quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tquat<float> fquat
+
+
+ +

Quaternion of single-precision floating-point numbers.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +

Definition at line 248 of file gtc/quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tquat<highp_float> highp_quat
+
+
+ +

Quaternion of high precision floating-point numbers.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +

Definition at line 268 of file gtc/quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tquat<detail::half> hquat
+
+
+ +

Quaternion of half-precision floating-point numbers.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +

Definition at line 243 of file gtc/quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tquat<lowp_float> lowp_quat
+
+
+ +

Quaternion of low precision floating-point numbers.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +

Definition at line 258 of file gtc/quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tquat<mediump_float> mediump_quat
+
+
+ +

Quaternion of medium precision floating-point numbers.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +

Definition at line 263 of file gtc/quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tquat<float> quat
+
+
+ +

Quaternion of floating-point numbers.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +

Definition at line 238 of file gtc/quaternion.hpp.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
detail::tquat<T> glm::conjugate (detail::tquat< T > const & q)
+
+
+ +

Returns the q conjugate.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
T glm::dot (detail::tquat< T > const & q1,
detail::tquat< T > const & q2 
)
+
+
+ +

Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tquat<T> glm::inverse (detail::tquat< T > const & q)
+
+
+ +

Returns the q inverse.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +
+
+ +
+
+ + + + + + + + +
T glm::length (detail::tquat< T > const & q)
+
+
+ +

Returns the length of the quaternion.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x3<T> glm::mat3_cast (detail::tquat< T > const & x)
+
+
+ +

Converts a quaternion to a 3 * 3 matrix.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +

Referenced by glm::toMat3().

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<T> glm::mat4_cast (detail::tquat< T > const & x)
+
+
+ +

Converts a quaternion to a 4 * 4 matrix.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +

Referenced by glm::toMat4().

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tquat<T> glm::mix (detail::tquat< T > const & x,
detail::tquat< T > const & y,
T const & a 
)
+
+
+ +

Returns a SLERP interpolated quaternion of x and y according a.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tquat<T> glm::normalize (detail::tquat< T > const & q)
+
+
+ +

Returns the normalized quaternion.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +
+
+ +
+
+ + + + + + + + +
detail::tquat<T> glm::quat_cast (detail::tmat3x3< T > const & x)
+
+
+ +

Converts a 3 * 3 matrix to a quaternion.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +

Referenced by glm::toQuat().

+ +
+
+ +
+
+ + + + + + + + +
detail::tquat<T> glm::quat_cast (detail::tmat4x4< T > const & x)
+
+
+ +

Converts a 4 * 4 matrix to a quaternion.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tquat<T> glm::rotate (detail::tquat< T > const & q,
typename detail::tquat< T >::value_type const & angle,
detail::tvec3< T > const & v 
)
+
+
+ +

Rotates a quaternion from an vector of 3 components axis and an angle expressed in degrees.

+
See also:
GLM_GTC_quaternion: Quaternion types and functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00150.html b/doc/api/a00150.html new file mode 100644 index 00000000..5d21b334 --- /dev/null +++ b/doc/api/a00150.html @@ -0,0 +1,267 @@ + + + + + +GLM_GTC_random: Random number generation + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTC_random: Random number generation
+
+
+ + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec3< T > 
ballRand (T const &Radius)
template<typename T >
detail::tvec2< T > circularRand (T const &Radius)
template<typename T >
detail::tvec2< T > diskRand (T const &Radius)
template<typename genType >
genType gaussRand (genType const &Mean, genType const &Deviation)
template<typename genType >
genType linearRand (genType const &Min, genType const &Max)
template<typename T >
detail::tvec3< T > sphericalRand (T const &Radius)
+

Detailed Description

+

Generate random number from various distribution methods.

+

<glm/gtc/random.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_QUALIFIER detail::tvec3<T> glm::ballRand (T const & Radius)
+
+
+ +

Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius.

+
Parameters:
+ + +
Radius
+
+
+
See also:
GLM_GTC_random: Random number generation
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec2<T> glm::circularRand (T const & Radius)
+
+
+ +

Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius.

+
Parameters:
+ + +
Radius
+
+
+
See also:
GLM_GTC_random: Random number generation
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec2<T> glm::diskRand (T const & Radius)
+
+
+ +

Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius.

+
Parameters:
+ + +
Radius
+
+
+
See also:
GLM_GTC_random: Random number generation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::gaussRand (genType const & Mean,
genType const & Deviation 
)
+
+
+ +

Generate random numbers in the interval [Min, Max], according a gaussian distribution.

+
Parameters:
+ + + +
Mean
Deviation
+
+
+
See also:
GLM_GTC_random: Random number generation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::linearRand (genType const & Min,
genType const & Max 
)
+
+
+ +

Generate random numbers in the interval [Min, Max], according a linear distribution.

+
Parameters:
+ + + +
Min
Max
+
+
+
Template Parameters:
+ + +
genTypeValue type. Currently supported: half (not recommanded), float or double scalars and vectors.
+
+
+
See also:
GLM_GTC_random: Random number generation
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec3<T> glm::sphericalRand (T const & Radius)
+
+
+ +

Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius.

+
Parameters:
+ + +
Radius
+
+
+
See also:
GLM_GTC_random: Random number generation
+ +
+
+
+ + + + + + diff --git a/doc/api/a00151.html b/doc/api/a00151.html new file mode 100644 index 00000000..18fb4972 --- /dev/null +++ b/doc/api/a00151.html @@ -0,0 +1,120 @@ + + + + + +GLM_GTC_swizzle: Swizzle 'operator' implementation + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTC_swizzle: Swizzle 'operator' implementation
+
+
+ + + + +

+Functions

template<typename T , template< typename > class vecType>
detail::tvec2< T > const & swizzle (vecType< T > const &v, comp x, comp y)
+

Detailed Description

+

Provide functions to emulate GLSL swizzle operator fonctionalities.

+

<glm/gtc/swizzle.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tvec2<T> const& glm::swizzle (vecType< T > const & v,
comp x,
comp y 
)
+
+
+
Parameters:
+ + + +
vVector source
x
+
+
+
Template Parameters:
+ + + +
T
vecType
+
+
+
See also:
GLM_GTC_swizzle: Swizzle 'operator' implementation
+ +
+
+
+ + + + + + diff --git a/doc/api/a00152.html b/doc/api/a00152.html new file mode 100644 index 00000000..6d8a8136 --- /dev/null +++ b/doc/api/a00152.html @@ -0,0 +1,2595 @@ + + + + + +GLM_GTC_type_precision: Vector and matrix types with defined precisions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef float16 f16
typedef detail::tmat2x2< f16 > f16mat2
typedef detail::tmat2x2< f16 > f16mat2x2
typedef detail::tmat2x3< f16 > f16mat2x3
typedef detail::tmat2x4< f16 > f16mat2x4
typedef detail::tmat3x3< f16 > f16mat3
typedef detail::tmat3x2< f16 > f16mat3x2
typedef detail::tmat3x3< f16 > f16mat3x3
typedef detail::tmat3x4< f16 > f16mat3x4
typedef detail::tmat4x4< f16 > f16mat4
typedef detail::tmat4x2< f16 > f16mat4x2
typedef detail::tmat4x3< f16 > f16mat4x3
typedef detail::tmat4x4< f16 > f16mat4x4
typedef detail::tquat< f16 > f16quat
typedef detail::tvec1< f16 > f16vec1
typedef detail::tvec2< f16 > f16vec2
typedef detail::tvec3< f16 > f16vec3
typedef detail::tvec4< f16 > f16vec4
typedef float32 f32
typedef detail::tmat2x2< f32 > f32mat2
typedef detail::tmat2x2< f32 > f32mat2x2
typedef detail::tmat2x3< f32 > f32mat2x3
typedef detail::tmat2x4< f32 > f32mat2x4
typedef detail::tmat3x3< f32 > f32mat3
typedef detail::tmat3x2< f32 > f32mat3x2
typedef detail::tmat3x3< f32 > f32mat3x3
typedef detail::tmat3x4< f32 > f32mat3x4
typedef detail::tmat4x4< f32 > f32mat4
typedef detail::tmat4x2< f32 > f32mat4x2
typedef detail::tmat4x3< f32 > f32mat4x3
typedef detail::tmat4x4< f32 > f32mat4x4
typedef detail::tquat< f32 > f32quat
typedef detail::tvec1< f32 > f32vec1
typedef detail::tvec2< f32 > f32vec2
typedef detail::tvec3< f32 > f32vec3
typedef detail::tvec4< f32 > f32vec4
typedef float64 f64
typedef detail::tmat2x2< f64 > f64mat2
typedef detail::tmat2x2< f64 > f64mat2x2
typedef detail::tmat2x3< f64 > f64mat2x3
typedef detail::tmat2x4< f64 > f64mat2x4
typedef detail::tmat3x3< f64 > f64mat3
typedef detail::tmat3x2< f64 > f64mat3x2
typedef detail::tmat3x3< f64 > f64mat3x3
typedef detail::tmat3x4< f64 > f64mat3x4
typedef detail::tmat4x4< f64 > f64mat4
typedef detail::tmat4x2< f64 > f64mat4x2
typedef detail::tmat4x3< f64 > f64mat4x3
typedef detail::tmat4x4< f64 > f64mat4x4
typedef detail::tquat< f64 > f64quat
typedef detail::tvec1< f64 > f64vec1
typedef detail::tvec2< f64 > f64vec2
typedef detail::tvec3< f64 > f64vec3
typedef detail::tvec4< f64 > f64vec4
typedef detail::float16 float16
typedef detail::float16 float16_t
typedef detail::float32 float32
typedef detail::float32 float32_t
typedef detail::float64 float64
typedef detail::float64 float64_t
typedef detail::tmat2x2< f32 > fmat2
typedef detail::tmat2x2< f32 > fmat2x2
typedef detail::tmat2x3< f32 > fmat2x3
typedef detail::tmat2x4< f32 > fmat2x4
typedef detail::tmat3x3< f32 > fmat3
typedef detail::tmat3x2< f32 > fmat3x2
typedef detail::tmat3x3< f32 > fmat3x3
typedef detail::tmat3x4< f32 > fmat3x4
typedef detail::tmat4x4< f32 > fmat4
typedef detail::tmat4x2< f32 > fmat4x2
typedef detail::tmat4x3< f32 > fmat4x3
typedef detail::tmat4x4< f32 > fmat4x4
typedef detail::tvec1< float > fvec1
typedef detail::tvec2< float > fvec2
typedef detail::tvec3< float > fvec3
typedef detail::tvec4< float > fvec4
typedef detail::int16 i16
typedef detail::tvec1< i16 > i16vec1
typedef detail::tvec2< i16 > i16vec2
typedef detail::tvec3< i16 > i16vec3
typedef detail::tvec4< i16 > i16vec4
typedef detail::int32 i32
typedef detail::tvec1< i32 > i32vec1
typedef detail::tvec2< i32 > i32vec2
typedef detail::tvec3< i32 > i32vec3
typedef detail::tvec4< i32 > i32vec4
typedef detail::int64 i64
typedef detail::tvec1< i64 > i64vec1
typedef detail::tvec2< i64 > i64vec2
typedef detail::tvec3< i64 > i64vec3
typedef detail::tvec4< i64 > i64vec4
typedef detail::int8 i8
typedef detail::tvec1< i8 > i8vec1
typedef detail::tvec2< i8 > i8vec2
typedef detail::tvec3< i8 > i8vec3
typedef detail::tvec4< i8 > i8vec4
typedef detail::int16 int16
typedef detail::int16 int16_t
typedef detail::int32 int32
typedef detail::int32 int32_t
typedef detail::int64 int64
typedef detail::int64 int64_t
typedef detail::int8 int8
typedef detail::int8 int8_t
typedef detail::uint16 u16
typedef detail::tvec1< u16 > u16vec1
typedef detail::tvec2< u16 > u16vec2
typedef detail::tvec3< u16 > u16vec3
typedef detail::tvec4< u16 > u16vec4
typedef detail::uint32 u32
typedef detail::tvec1< u32 > u32vec1
typedef detail::tvec2< u32 > u32vec2
typedef detail::tvec3< u32 > u32vec3
typedef detail::tvec4< u32 > u32vec4
typedef detail::uint64 u64
typedef detail::tvec1< u64 > u64vec1
typedef detail::tvec2< u64 > u64vec2
typedef detail::tvec3< u64 > u64vec3
typedef detail::tvec4< u64 > u64vec4
typedef detail::uint8 u8
typedef detail::tvec1< u8 > u8vec1
typedef detail::tvec2< u8 > u8vec2
typedef detail::tvec3< u8 > u8vec3
typedef detail::tvec4< u8 > u8vec4
typedef detail::uint16 uint16
typedef detail::uint16 uint16_t
typedef detail::uint32 uint32
typedef detail::uint32 uint32_t
typedef detail::uint64 uint64
typedef detail::uint64 uint64_t
typedef detail::uint8 uint8
typedef detail::uint8 uint8_t
+

Detailed Description

+

Defines specific C++-based precision types.

+

Precision types 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.

+

Typedef Documentation

+ +
+
+ + + + +
typedef float16 f16
+
+
+ +

16 bit half-precision floating-point scalar.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 335 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<f16> f16mat2
+
+
+ +

Half-precision floating-point 1x1 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions Half-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 481 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<f16> f16mat2x2
+
+
+ +

Half-precision floating-point 1x1 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions Half-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 498 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<f16> f16mat2x3
+
+
+ +

Half-precision floating-point 2x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 502 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<f16> f16mat2x4
+
+
+ +

Half-precision floating-point 2x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 506 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<f16> f16mat3
+
+
+ +

Half-precision floating-point 3x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 485 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<f16> f16mat3x2
+
+
+ +

Half-precision floating-point 3x2 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 510 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<f16> f16mat3x3
+
+
+ +

Half-precision floating-point 3x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 514 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<f16> f16mat3x4
+
+
+ +

Half-precision floating-point 3x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 518 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<f16> f16mat4
+
+
+ +

Half-precision floating-point 4x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 489 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<f16> f16mat4x2
+
+
+ +

Half-precision floating-point 4x2 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 522 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<f16> f16mat4x3
+
+
+ +

Half-precision floating-point 4x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 526 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<f16> f16mat4x4
+
+
+ +

Half-precision floating-point 4x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 530 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tquat<f16> f16quat
+
+
+ +

Half-precision floating-point quaternion.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 654 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<f16> f16vec1
+
+
+ +

Half-precision floating-point vector of 1 component.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 365 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<f16> f16vec2
+
+
+ +

Half-precision floating-point vector of 2 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 369 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<f16> f16vec3
+
+
+ +

Half-precision floating-point vector of 3 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 373 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<f16> f16vec4
+
+
+ +

Half-precision floating-point vector of 4 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 377 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 f32
+
+
+ +

32 bit single-precision floating-point scalar.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 339 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<f32> f32mat2
+
+
+ +

Single-precision floating-point 1x1 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions Single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 539 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<f32> f32mat2x2
+
+
+ +

Single-precision floating-point 1x1 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions Single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 556 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<f32> f32mat2x3
+
+
+ +

Single-precision floating-point 2x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 560 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<f32> f32mat2x4
+
+
+ +

Single-precision floating-point 2x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 564 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<f32> f32mat3
+
+
+ +

Single-precision floating-point 3x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 543 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<f32> f32mat3x2
+
+
+ +

Single-precision floating-point 3x2 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 568 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<f32> f32mat3x3
+
+
+ +

Single-precision floating-point 3x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 572 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<f32> f32mat3x4
+
+
+ +

Single-precision floating-point 3x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 576 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<f32> f32mat4
+
+
+ +

Single-precision floating-point 4x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 547 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<f32> f32mat4x2
+
+
+ +

Single-precision floating-point 4x2 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 580 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<f32> f32mat4x3
+
+
+ +

Single-precision floating-point 4x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 584 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<f32> f32mat4x4
+
+
+ +

Single-precision floating-point 4x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 588 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tquat<f32> f32quat
+
+
+ +

Single-precision floating-point quaternion.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 658 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<f32> f32vec1
+
+
+ +

Single-precision floating-point vector of 1 component.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 382 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<f32> f32vec2
+
+
+ +

Single-precision floating-point vector of 2 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 386 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<f32> f32vec3
+
+
+ +

Single-precision floating-point vector of 3 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 390 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<f32> f32vec4
+
+
+ +

Single-precision floating-point vector of 4 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 394 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 f64
+
+
+ +

64 bit double-precision floating-point scalar.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 343 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<f64> f64mat2
+
+
+ +

Double-precision floating-point 1x1 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions Double-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 597 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<f64> f64mat2x2
+
+
+ +

Double-precision floating-point 1x1 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions Double-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 614 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<f64> f64mat2x3
+
+
+ +

Double-precision floating-point 2x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 618 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<f64> f64mat2x4
+
+
+ +

Double-precision floating-point 2x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 622 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<f64> f64mat3
+
+
+ +

Double-precision floating-point 3x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 601 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<f64> f64mat3x2
+
+
+ +

Double-precision floating-point 3x2 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 626 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<f64> f64mat3x3
+
+
+ +

Double-precision floating-point 3x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 630 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<f64> f64mat3x4
+
+
+ +

Double-precision floating-point 3x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 634 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<f64> f64mat4
+
+
+ +

Double-precision floating-point 4x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 605 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<f64> f64mat4x2
+
+
+ +

Double-precision floating-point 4x2 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 638 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<f64> f64mat4x3
+
+
+ +

Double-precision floating-point 4x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 642 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<f64> f64mat4x4
+
+
+ +

Double-precision floating-point 4x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 646 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tquat<f64> f64quat
+
+
+ +

Double-precision floating-point quaternion.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 662 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<f64> f64vec1
+
+
+ +

Double-precision floating-point vector of 1 component.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 399 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<f64> f64vec2
+
+
+ +

Double-precision floating-point vector of 2 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 403 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<f64> f64vec3
+
+
+ +

Double-precision floating-point vector of 3 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 407 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<f64> f64vec4
+
+
+ +

Double-precision floating-point vector of 4 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 411 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float16 float16
+
+
+ +

16 bit half-precision floating-point scalar.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 309 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float16 float16_t
+
+
+ +

16 bit half-precision floating-point scalar.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 322 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float32 float32
+
+
+ +

32 bit single-precision floating-point scalar.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 313 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float32 float32_t
+
+
+ +

32 bit single-precision floating-point scalar.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 326 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float64 float64
+
+
+ +

64 bit double-precision floating-point scalar.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 317 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::float64 float64_t
+
+
+ +

64 bit double-precision floating-point scalar.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 330 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<f32> fmat2
+
+
+ +

Single-precision floating-point 1x1 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions Single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 423 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x2<f32> fmat2x2
+
+
+ +

Single-precision floating-point 1x1 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions Single-precision floating-point 2x2 matrix.
+
+GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 440 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x3<f32> fmat2x3
+
+
+ +

Single-precision floating-point 2x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 444 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat2x4<f32> fmat2x4
+
+
+ +

Single-precision floating-point 2x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 448 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<f32> fmat3
+
+
+ +

Single-precision floating-point 3x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 427 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x2<f32> fmat3x2
+
+
+ +

Single-precision floating-point 3x2 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 452 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x3<f32> fmat3x3
+
+
+ +

Single-precision floating-point 3x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 456 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat3x4<f32> fmat3x4
+
+
+ +

Single-precision floating-point 3x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 460 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<f32> fmat4
+
+
+ +

Single-precision floating-point 4x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 431 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x2<f32> fmat4x2
+
+
+ +

Single-precision floating-point 4x2 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 464 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x3<f32> fmat4x3
+
+
+ +

Single-precision floating-point 4x3 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 468 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tmat4x4<f32> fmat4x4
+
+
+ +

Single-precision floating-point 4x4 matrix.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 472 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<float> fvec1
+
+
+ +

Single-precision floating-point vector of 1 component.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 348 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<float> fvec2
+
+
+ +

Single-precision floating-point vector of 2 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 352 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<float> fvec3
+
+
+ +

Single-precision floating-point vector of 3 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 356 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<float> fvec4
+
+
+ +

Single-precision floating-point vector of 4 components.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 360 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 i16
+
+
+ +

16 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 103 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<i16> i16vec1
+
+
+ +

16 bit signed integer scalar type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 133 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<i16> i16vec2
+
+
+ +

16 bit signed integer vector of 2 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 137 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<i16> i16vec3
+
+
+ +

16 bit signed integer vector of 3 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 141 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<i16> i16vec4
+
+
+ +

16 bit signed integer vector of 4 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 145 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 i32
+
+
+ +

32 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 107 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<i32> i32vec1
+
+
+ +

32 bit signed integer scalar type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 150 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<i32> i32vec2
+
+
+ +

32 bit signed integer vector of 2 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 154 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<i32> i32vec3
+
+
+ +

32 bit signed integer vector of 3 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 158 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<i32> i32vec4
+
+
+ +

32 bit signed integer vector of 4 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 162 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 i64
+
+
+ +

64 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 111 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<i64> i64vec1
+
+
+ +

64 bit signed integer scalar type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 167 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<i64> i64vec2
+
+
+ +

64 bit signed integer vector of 2 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 171 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<i64> i64vec3
+
+
+ +

64 bit signed integer vector of 3 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 175 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<i64> i64vec4
+
+
+ +

64 bit signed integer vector of 4 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 179 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 i8
+
+
+ +

8 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 99 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<i8> i8vec1
+
+
+ +

8 bit signed integer scalar type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 116 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<i8> i8vec2
+
+
+ +

8 bit signed integer vector of 2 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 120 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<i8> i8vec3
+
+
+ +

8 bit signed integer vector of 3 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 124 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<i8> i8vec4
+
+
+ +

8 bit signed integer vector of 4 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 128 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 int16
+
+
+ +

16 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 69 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 int16_t
+
+
+ +

16 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 86 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 int32
+
+
+ +

32 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 73 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 int32_t
+
+
+ +

32 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 90 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 int64
+
+
+ +

64 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 77 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 int64_t
+
+
+ +

64 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 94 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 int8
+
+
+ +

8 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 65 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 int8_t
+
+
+ +

8 bit signed integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 82 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 u16
+
+
+ +

16 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 225 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<u16> u16vec1
+
+
+ +

16 bit unsigned integer scalar type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 255 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<u16> u16vec2
+
+
+ +

16 bit unsigned integer vector of 2 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 259 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<u16> u16vec3
+
+
+ +

16 bit unsigned integer vector of 3 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 263 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<u16> u16vec4
+
+
+ +

16 bit unsigned integer vector of 4 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 267 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 u32
+
+
+ +

32 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 229 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<u32> u32vec1
+
+
+ +

32 bit unsigned integer scalar type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 272 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<u32> u32vec2
+
+
+ +

32 bit unsigned integer vector of 2 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 276 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<u32> u32vec3
+
+
+ +

32 bit unsigned integer vector of 3 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 280 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<u32> u32vec4
+
+
+ +

32 bit unsigned integer vector of 4 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 284 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 u64
+
+
+ +

64 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 233 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<u64> u64vec1
+
+
+ +

64 bit unsigned integer scalar type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 289 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<u64> u64vec2
+
+
+ +

64 bit unsigned integer vector of 2 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 293 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<u64> u64vec3
+
+
+ +

64 bit unsigned integer vector of 3 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 297 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<u64> u64vec4
+
+
+ +

64 bit unsigned integer vector of 4 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 301 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 u8
+
+
+ +

8 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 221 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec1<u8> u8vec1
+
+
+ +

8 bit unsigned integer scalar type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 238 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<u8> u8vec2
+
+
+ +

8 bit unsigned integer vector of 2 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 242 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<u8> u8vec3
+
+
+ +

8 bit unsigned integer vector of 3 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 246 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<u8> u8vec4
+
+
+ +

8 bit unsigned integer vector of 4 components type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 250 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 uint16
+
+
+ +

16 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 191 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 uint16_t
+
+
+ +

16 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 208 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 uint32
+
+
+ +

32 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 195 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 uint32_t
+
+
+ +

32 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 212 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 uint64
+
+
+ +

64 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 199 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 uint64_t
+
+
+ +

64 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 216 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 uint8
+
+
+ +

8 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 187 of file type_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 uint8_t
+
+
+ +

8 bit unsigned integer type.

+
See also:
GLM_GTC_type_precision: Vector and matrix types with defined precisions
+ +

Definition at line 204 of file type_precision.hpp.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00153.html b/doc/api/a00153.html new file mode 100644 index 00000000..86c1c662 --- /dev/null +++ b/doc/api/a00153.html @@ -0,0 +1,455 @@ + + + + + +GLM_GTC_type_ptr: Memory layout access + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTC_type_ptr: Memory layout access
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat2x2< T > make_mat2 (T const *const ptr)
template<typename T >
detail::tmat2x2< T > make_mat2x2 (T const *const ptr)
template<typename T >
detail::tmat2x3< T > make_mat2x3 (T const *const ptr)
template<typename T >
detail::tmat2x4< T > make_mat2x4 (T const *const ptr)
template<typename T >
detail::tmat3x3< T > make_mat3 (T const *const ptr)
template<typename T >
detail::tmat3x2< T > make_mat3x2 (T const *const ptr)
template<typename T >
detail::tmat3x3< T > make_mat3x3 (T const *const ptr)
template<typename T >
detail::tmat3x4< T > make_mat3x4 (T const *const ptr)
template<typename T >
detail::tmat4x4< T > make_mat4 (T const *const ptr)
template<typename T >
detail::tmat4x2< T > make_mat4x2 (T const *const ptr)
template<typename T >
detail::tmat4x3< T > make_mat4x3 (T const *const ptr)
template<typename T >
detail::tmat4x4< T > make_mat4x4 (T const *const ptr)
template<typename T >
detail::tquat< T > make_quat (T const *const ptr)
template<typename T >
detail::tvec2< T > make_vec2 (T const *const ptr)
template<typename T >
detail::tvec3< T > make_vec3 (T const *const ptr)
template<typename T >
detail::tvec4< T > make_vec4 (T const *const ptr)
template<typename genType >
genType::value_type const * value_ptr (genType const &vec)
+

Detailed Description

+

Handles the interaction between pointers and vector, matrix types.

+

This extension defines an overloaded function, glm::value_ptr, which takes any of the core template types. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.

+

This is useful for uploading data to matrices or copying data to buffer objects.

+

Example:

+
 #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));
+

<glm/gtc/type_ptr.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
detail::tmat2x2<T> glm::make_mat2 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat2x2<T> glm::make_mat2x2 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat2x3<T> glm::make_mat2x3 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat2x4<T> glm::make_mat2x4 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x3<T> glm::make_mat3 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x2<T> glm::make_mat3x2 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x3<T> glm::make_mat3x3 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x4<T> glm::make_mat3x4 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<T> glm::make_mat4 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x2<T> glm::make_mat4x2 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x3<T> glm::make_mat4x3 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<T> glm::make_mat4x4 (T const *const ptr)
+
+
+ +

Build a matrix from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tquat<T> glm::make_quat (T const *const ptr)
+
+
+ +

Build a quaternion from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec2<T> glm::make_vec2 (T const *const ptr)
+
+
+ +

Build a vector from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec3<T> glm::make_vec3 (T const *const ptr)
+
+
+ +

Build a vector from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec4<T> glm::make_vec4 (T const *const ptr)
+
+
+ +

Build a vector from a pointer.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+ +
+
+ + + + + + + + +
genType::value_type const* glm::value_ptr (genType const & vec)
+
+
+ +

Return the constant address to the data of the input parameter.

+
See also:
GLM_GTC_type_ptr: Memory layout access
+ +
+
+
+ + + + + + diff --git a/doc/api/a00154.html b/doc/api/a00154.html new file mode 100644 index 00000000..8d70a632 --- /dev/null +++ b/doc/api/a00154.html @@ -0,0 +1,406 @@ + + + + + +GLM_GTX_associated_min_max: Associated Min/Max + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_associated_min_max: Associated Min/Max
+
+
+ + + + + + + + + + + + + + +

+Functions

template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
+

Detailed Description

+

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.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
genTypeU glm::associatedMax (const genTypeT & x,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b 
)
+
+
+ +

Max comparison between 2 variables.

+
See also:
GLM_GTX_associated_min_max: Associated Min/Max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
genTypeU glm::associatedMax (const genTypeT & x,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b,
const genTypeT & z,
const genTypeU & c 
)
+
+
+ +

Max comparison between 3 variables.

+
See also:
GLM_GTX_associated_min_max: Associated Min/Max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
genTypeU glm::associatedMax (const genTypeT & x,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b,
const genTypeT & z,
const genTypeU & c,
const genTypeT & w,
const genTypeU & d 
)
+
+
+ +

Max comparison between 4 variables.

+
See also:
GLM_GTX_associated_min_max: Associated Min/Max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
genTypeU glm::associatedMin (const genTypeT & x,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b 
)
+
+
+ +

Min comparison between 2 variables.

+
See also:
GLM_GTX_associated_min_max: Associated Min/Max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
genTypeU glm::associatedMin (const genTypeT & x,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b,
const genTypeT & z,
const genTypeU & c 
)
+
+
+ +

Min comparison between 3 variables.

+
See also:
GLM_GTX_associated_min_max: Associated Min/Max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
genTypeU glm::associatedMin (const genTypeT & x,
const genTypeU & a,
const genTypeT & y,
const genTypeU & b,
const genTypeT & z,
const genTypeU & c,
const genTypeT & w,
const genTypeU & d 
)
+
+
+ +

Min comparison between 4 variables.

+
See also:
GLM_GTX_associated_min_max: Associated Min/Max
+ +
+
+
+ + + + + + diff --git a/doc/api/a00155.html b/doc/api/a00155.html new file mode 100644 index 00000000..3a3ebcca --- /dev/null +++ b/doc/api/a00155.html @@ -0,0 +1,447 @@ + + + + + +GLM_GTX_bit: Extended bitwise operations + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_bit: Extended bitwise operations
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
genType bitRevert (genType const &value)
template<typename genType >
genType bitRotateLeft (genType const &In, std::size_t Shift)
template<typename genType >
genType bitRotateRight (genType const &In, std::size_t Shift)
template<typename genIUType , typename sizeType >
genIUType extractField (genIUType const &v, sizeType const &first, sizeType const &count)
template<typename genIUType >
genIUType fillBitfieldWithOne (genIUType const &Value, int const &FromBit, int const &ToBit)
template<typename genIUType >
genIUType fillBitfieldWithZero (genIUType const &Value, int const &FromBit, int const &ToBit)
template<typename genType >
int highestBit (genType const &value)
template<typename genType >
genType highestBitValue (genType const &value)
template<typename genType >
bool isPowerOfTwo (genType const &value)
template<typename genType >
int lowestBit (genType const &value)
template<typename genIType >
genIType mask (genIType const &count)
template<typename genType >
genType powerOfTwoAbove (genType const &value)
template<typename genType >
genType powerOfTwoBelow (genType const &value)
template<typename genType >
genType powerOfTwoNearest (genType const &value)
+

Detailed Description

+

Allow to perform bit operations on integer values.

+

<glm/gtx/bit.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
genType glm::bitRevert (genType const & value)
+
+
+ +

Revert all bits of any integer based type.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::bitRotateLeft (genType const & In,
std::size_t Shift 
)
+
+
+ +

Rotate all bits to the left.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::bitRotateRight (genType const & In,
std::size_t Shift 
)
+
+
+ +

Rotate all bits to the right.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genIUType glm::extractField (genIUType const & v,
sizeType const & first,
sizeType const & count 
)
+
+
+ +

Component wise extraction of bit fields.

+

genType and genIType could be a scalar or a vector.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genIUType glm::fillBitfieldWithOne (genIUType const & Value,
int const & FromBit,
int const & ToBit 
)
+
+
+ +

Set to 1 a range of bits.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genIUType glm::fillBitfieldWithZero (genIUType const & Value,
int const & FromBit,
int const & ToBit 
)
+
+
+ +

Set to 0 a range of bits.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + +
int glm::highestBit (genType const & value)
+
+
+ +

Find the highest bit set to 1 in a integer variable.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + +
genType glm::highestBitValue (genType const & value)
+
+
+ +

Find the highest bit set to 1 in a integer variable and return its value.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + +
bool glm::isPowerOfTwo (genType const & value)
+
+
+ +

Return true if the value is a power of two number.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + +
int glm::lowestBit (genType const & value)
+
+
+ +

Find the lowest bit set to 1 in a integer variable.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + +
genIType glm::mask (genIType const & count)
+
+
+ +

Build a mask of 'count' bits.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + +
genType glm::powerOfTwoAbove (genType const & value)
+
+
+ +

Return the power of two number which value is just higher the input value.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + +
genType glm::powerOfTwoBelow (genType const & value)
+
+
+ +

Return the power of two number which value is just lower the input value.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+ +
+
+ + + + + + + + +
genType glm::powerOfTwoNearest (genType const & value)
+
+
+ +

Return the power of two number which value is the closet to the input value.

+
See also:
GLM_GTX_bit: Extended bitwise operations
+ +
+
+
+ + + + + + diff --git a/doc/api/a00156.html b/doc/api/a00156.html new file mode 100644 index 00000000..552c7d3b --- /dev/null +++ b/doc/api/a00156.html @@ -0,0 +1,108 @@ + + + + + +GLM_GTX_closest_point: Find closest point + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_closest_point: Find closest point
+
+
+ + + + +

+Functions

template<typename T >
detail::tvec3< T > closestPointOnLine (detail::tvec3< T > const &point, detail::tvec3< T > const &a, detail::tvec3< T > const &b)
+

Detailed Description

+

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.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tvec3<T> glm::closestPointOnLine (detail::tvec3< T > const & point,
detail::tvec3< T > const & a,
detail::tvec3< T > const & b 
)
+
+
+ +

Find the point on a straight line which is the closet of a point.

+
See also:
GLM_GTX_closest_point: Find closest point
+ +
+
+
+ + + + + + diff --git a/doc/api/a00157.html b/doc/api/a00157.html new file mode 100644 index 00000000..499eab96 --- /dev/null +++ b/doc/api/a00157.html @@ -0,0 +1,243 @@ + + + + + +GLM_GTX_color_cast: Color conversion + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_color_cast: Color conversion
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+template<typename T >
f16vec4 f16_abgr_cast (T c)
+template<typename T >
f16vec4 f16_argb_cast (T c)
+template<typename T >
f16vec4 f16_bgra_cast (T c)
+template<typename T >
f16vec3 f16_bgrx_cast (T c)
+template<typename T >
f16 f16_channel_cast (T a)
+template<typename T >
f16vec4 f16_rgba_cast (T c)
+template<typename T >
f16vec3 f16_rgbx_cast (T c)
+template<typename T >
f16vec3 f16_xbgr_cast (T c)
+template<typename T >
f16vec3 f16_xrgb_cast (T c)
+template<typename T >
f32vec4 f32_abgr_cast (T c)
+template<typename T >
f32vec4 f32_argb_cast (T c)
+template<typename T >
f32vec4 f32_bgra_cast (T c)
+template<typename T >
f32vec3 f32_bgrx_cast (T c)
+template<typename T >
f32 f32_channel_cast (T a)
+template<typename T >
f32vec4 f32_rgba_cast (T c)
+template<typename T >
f32vec3 f32_rgbx_cast (T c)
+template<typename T >
f32vec3 f32_xbgr_cast (T c)
+template<typename T >
f32vec3 f32_xrgb_cast (T c)
+template<typename T >
f64vec4 f64_abgr_cast (T c)
+template<typename T >
f64vec4 f64_argb_cast (T c)
+template<typename T >
f64vec4 f64_bgra_cast (T c)
+template<typename T >
f64vec3 f64_bgrx_cast (T c)
+template<typename T >
f64 f64_channel_cast (T a)
+template<typename T >
f64vec4 f64_rgba_cast (T c)
+template<typename T >
f64vec3 f64_rgbx_cast (T c)
+template<typename T >
f64vec3 f64_xbgr_cast (T c)
+template<typename T >
f64vec3 f64_xrgb_cast (T c)
template<typename valType >
uint16 u16channel_cast (valType a)
+template<typename T >
uint32 u32_abgr_cast (const detail::tvec4< T > &c)
+template<typename T >
uint32 u32_argb_cast (const detail::tvec4< T > &c)
+template<typename T >
uint32 u32_bgra_cast (const detail::tvec4< T > &c)
+template<typename T >
uint32 u32_bgrx_cast (const detail::tvec3< T > &c)
+template<typename T >
uint32 u32_rgba_cast (const detail::tvec4< T > &c)
+template<typename T >
uint32 u32_rgbx_cast (const detail::tvec3< T > &c)
+template<typename T >
uint32 u32_xbgr_cast (const detail::tvec3< T > &c)
+template<typename T >
uint32 u32_xrgb_cast (const detail::tvec3< T > &c)
+template<typename T >
uint64 u64_abgr_cast (const detail::tvec4< T > &c)
+template<typename T >
uint64 u64_argb_cast (const detail::tvec4< T > &c)
+template<typename T >
uint64 u64_bgra_cast (const detail::tvec4< T > &c)
+template<typename T >
uint64 u64_bgrx_cast (const detail::tvec3< T > &c)
+template<typename T >
uint64 u64_rgba_cast (const detail::tvec4< T > &c)
+template<typename T >
uint64 u64_rgbx_cast (const detail::tvec3< T > &c)
+template<typename T >
uint64 u64_xbgr_cast (const detail::tvec3< T > &c)
+template<typename T >
uint64 u64_xrgb_cast (const detail::tvec3< T > &c)
template<typename valType >
uint8 u8channel_cast (valType a)
+

Detailed Description

+

Conversion between two color types.

+

<glm/gtx/color_cast.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
uint16 glm::u16channel_cast (valType a)
+
+
+ +

Conversion of a floating value into a 16bit unsigned int value.

+
See also:
GLM_GTX_color_cast: Color conversion
+ +
+
+ +
+
+ + + + + + + + +
uint8 glm::u8channel_cast (valType a)
+
+
+ +

Conversion of a floating value into a 8bit unsigned int value.

+
See also:
GLM_GTX_color_cast: Color conversion
+ +
+
+
+ + + + + + diff --git a/doc/api/a00158.html b/doc/api/a00158.html new file mode 100644 index 00000000..8272c1cf --- /dev/null +++ b/doc/api/a00158.html @@ -0,0 +1,222 @@ + + + + + +GLM_GTX_color_space: RGB to HSV conversion + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_color_space: RGB to HSV conversion
+
+
+ + + + + + + + + + + + + + +

+Functions

template<typename valType >
detail::tvec3< valType > hsvColor (detail::tvec3< valType > const &rgbValue)
template<typename valType >
valType luminosity (detail::tvec3< valType > const &color)
template<typename valType >
detail::tvec3< valType > rgbColor (detail::tvec3< valType > const &hsvValue)
template<typename valType >
detail::tmat4x4< valType > saturation (valType const s)
template<typename valType >
detail::tvec3< valType > saturation (valType const s, detail::tvec3< valType > const &color)
template<typename valType >
detail::tvec4< valType > saturation (valType const s, detail::tvec4< valType > const &color)
+

Detailed Description

+

Related to RGB to HSV conversions and operations.

+

<glm/gtx/color_space.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
detail::tvec3<valType> glm::hsvColor (detail::tvec3< valType > const & rgbValue)
+
+
+ +

Converts a color from RGB color space to its color in HSV color space.

+
See also:
GLM_GTX_color_space: RGB to HSV conversion
+ +
+
+ +
+
+ + + + + + + + +
valType glm::luminosity (detail::tvec3< valType > const & color)
+
+
+ +

Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.

+
See also:
GLM_GTX_color_space: RGB to HSV conversion
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec3<valType> glm::rgbColor (detail::tvec3< valType > const & hsvValue)
+
+
+ +

Converts a color from HSV color space to its color in RGB color space.

+
See also:
GLM_GTX_color_space: RGB to HSV conversion
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<valType> glm::saturation (valType const s)
+
+
+ +

Build a saturation matrix.

+
See also:
GLM_GTX_color_space: RGB to HSV conversion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec3<valType> glm::saturation (valType const s,
detail::tvec3< valType > const & color 
)
+
+
+ +

Modify the saturation of a color.

+
See also:
GLM_GTX_color_space: RGB to HSV conversion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec4<valType> glm::saturation (valType const s,
detail::tvec4< valType > const & color 
)
+
+
+ +

Modify the saturation of a color.

+
See also:
GLM_GTX_color_space: RGB to HSV conversion
+ +
+
+
+ + + + + + diff --git a/doc/api/a00159.html b/doc/api/a00159.html new file mode 100644 index 00000000..77f61564 --- /dev/null +++ b/doc/api/a00159.html @@ -0,0 +1,162 @@ + + + + + +GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion
+
+
+ + + + + + + + + + +

+Functions

template<typename valType >
detail::tvec3< valType > rgb2YCoCg (detail::tvec3< valType > const &rgbColor)
template<typename valType >
detail::tvec3< valType > rgb2YCoCgR (detail::tvec3< valType > const &rgbColor)
template<typename valType >
detail::tvec3< valType > YCoCg2rgb (detail::tvec3< valType > const &YCoCgColor)
template<typename valType >
detail::tvec3< valType > YCoCgR2rgb (detail::tvec3< valType > const &YCoCgColor)
+

Detailed Description

+

RGB to YCoCg conversions and operations.

+

<glm/gtx/color_space_YCoCg.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
detail::tvec3<valType> glm::rgb2YCoCg (detail::tvec3< valType > const & rgbColor)
+
+
+ +

Convert a color from RGB color space to YCoCg color space.

+
See also:
GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec3<valType> glm::rgb2YCoCgR (detail::tvec3< valType > const & rgbColor)
+
+
+ +

Convert a color from RGB color space to YCoCgR color space.

+
See also:
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
+
+GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec3<valType> glm::YCoCg2rgb (detail::tvec3< valType > const & YCoCgColor)
+
+
+ +

Convert a color from YCoCg color space to RGB color space.

+
See also:
GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion
+ +
+
+ +
+
+ + + + + + + + +
detail::tvec3<valType> glm::YCoCgR2rgb (detail::tvec3< valType > const & YCoCgColor)
+
+
+ +

Convert a color from YCoCgR color space to RGB color space.

+
See also:
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
+
+GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion
+ +
+
+
+ + + + + + diff --git a/doc/api/a00160.html b/doc/api/a00160.html new file mode 100644 index 00000000..fbe5360c --- /dev/null +++ b/doc/api/a00160.html @@ -0,0 +1,311 @@ + + + + + +GLM_GTX_compatibility: Cg and HLSL compatibility + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_compatibility: Cg and HLSL compatibility
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef bool bool1
+typedef bool bool1x1
+typedef detail::tvec2< bool > bool2
+typedef detail::tmat2x2< bool > bool2x2
+typedef detail::tmat2x3< bool > bool2x3
+typedef detail::tmat2x4< bool > bool2x4
+typedef detail::tvec3< bool > bool3
+typedef detail::tmat3x2< bool > bool3x2
+typedef detail::tmat3x3< bool > bool3x3
+typedef detail::tmat3x4< bool > bool3x4
+typedef detail::tvec4< bool > bool4
+typedef detail::tmat4x2< bool > bool4x2
+typedef detail::tmat4x3< bool > bool4x3
+typedef detail::tmat4x4< bool > bool4x4
+typedef double double1
+typedef double double1x1
+typedef detail::tvec2< double > double2
+typedef detail::tmat2x2< double > double2x2
+typedef detail::tmat2x3< double > double2x3
+typedef detail::tmat2x4< double > double2x4
+typedef detail::tvec3< double > double3
+typedef detail::tmat3x2< double > double3x2
+typedef detail::tmat3x3< double > double3x3
+typedef detail::tmat3x4< double > double3x4
+typedef detail::tvec4< double > double4
+typedef detail::tmat4x2< double > double4x2
+typedef detail::tmat4x3< double > double4x3
+typedef detail::tmat4x4< double > double4x4
+typedef float float1
+typedef float float1x1
+typedef detail::tvec2< float > float2
+typedef detail::tmat2x2< float > float2x2
+typedef detail::tmat2x3< float > float2x3
+typedef detail::tmat2x4< float > float2x4
+typedef detail::tvec3< float > float3
+typedef detail::tmat3x2< float > float3x2
+typedef detail::tmat3x3< float > float3x3
+typedef detail::tmat3x4< float > float3x4
+typedef detail::tvec4< float > float4
+typedef detail::tmat4x2< float > float4x2
+typedef detail::tmat4x3< float > float4x3
+typedef detail::tmat4x4< float > float4x4
+typedef detail::half half1
+typedef detail::half half1x1
+typedef detail::tvec2
+< detail::half > 
half2
+typedef detail::tmat2x2
+< detail::half > 
half2x2
+typedef detail::tmat2x3
+< detail::half > 
half2x3
+typedef detail::tmat2x4
+< detail::half > 
half2x4
+typedef detail::tvec3
+< detail::half > 
half3
+typedef detail::tmat3x2
+< detail::half > 
half3x2
+typedef detail::tmat3x3
+< detail::half > 
half3x3
+typedef detail::tmat3x4
+< detail::half > 
half3x4
+typedef detail::tvec4
+< detail::half > 
half4
+typedef detail::tmat4x2
+< detail::half > 
half4x2
+typedef detail::tmat4x3
+< detail::half > 
half4x3
+typedef detail::tmat4x4
+< detail::half > 
half4x4
+typedef int int1
+typedef int int1x1
+typedef detail::tvec2< int > int2
+typedef detail::tmat2x2< int > int2x2
+typedef detail::tmat2x3< int > int2x3
+typedef detail::tmat2x4< int > int2x4
+typedef detail::tvec3< int > int3
+typedef detail::tmat3x2< int > int3x2
+typedef detail::tmat3x3< int > int3x3
+typedef detail::tmat3x4< int > int3x4
+typedef detail::tvec4< int > int4
+typedef detail::tmat4x2< int > int4x2
+typedef detail::tmat4x3< int > int4x3
+typedef detail::tmat4x4< int > int4x4

+Functions

+template<typename T >
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec2< T > 
atan2 (const detail::tvec2< T > &x, const detail::tvec2< T > &y)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec3< T > 
atan2 (const detail::tvec3< T > &x, const detail::tvec3< T > &y)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec4< T > 
atan2 (const detail::tvec4< T > &x, const detail::tvec4< T > &y)
+template<typename genType >
bool isfinite (genType const &x)
+template<typename valType >
detail::tvec2< bool > isfinite (const detail::tvec2< valType > &x)
+template<typename valType >
detail::tvec3< bool > isfinite (const detail::tvec3< valType > &x)
+template<typename valType >
detail::tvec4< bool > isfinite (const detail::tvec4< valType > &x)
+template<typename genType >
detail::tvec2< bool > isinf (const detail::tvec2< genType > &x)
+template<typename genType >
detail::tvec3< bool > isinf (const detail::tvec3< genType > &x)
+template<typename genType >
detail::tvec4< bool > isinf (const detail::tvec4< genType > &x)
+template<typename genType >
detail::tvec2< bool > isnan (const detail::tvec2< genType > &x)
+template<typename genType >
detail::tvec3< bool > isnan (const detail::tvec3< genType > &x)
+template<typename genType >
detail::tvec4< bool > isnan (const detail::tvec4< genType > &x)
+template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec2< T > 
lerp (const detail::tvec2< T > &x, const detail::tvec2< T > &y, T a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec3< T > 
lerp (const detail::tvec3< T > &x, const detail::tvec3< T > &y, T a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec4< T > 
lerp (const detail::tvec4< T > &x, const detail::tvec4< T > &y, T a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec2< T > 
lerp (const detail::tvec2< T > &x, const detail::tvec2< T > &y, const detail::tvec2< T > &a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec3< T > 
lerp (const detail::tvec3< T > &x, const detail::tvec3< T > &y, const detail::tvec3< T > &a)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec4< T > 
lerp (const detail::tvec4< T > &x, const detail::tvec4< T > &y, const detail::tvec4< T > &a)
+template<typename T >
GLM_FUNC_QUALIFIER T saturate (T x)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec2< T > 
saturate (const detail::tvec2< T > &x)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec3< T > 
saturate (const detail::tvec3< T > &x)
+template<typename T >
GLM_FUNC_QUALIFIER
+detail::tvec4< T > 
saturate (const detail::tvec4< T > &x)
+

Detailed Description

+

Provide functions to increase the compatibility with Cg and HLSL languages.

+

<glm/gtx/compatibility.hpp> need to be included to use these functionalities.

+
+ + + + + + diff --git a/doc/api/a00161.html b/doc/api/a00161.html new file mode 100644 index 00000000..74c9007f --- /dev/null +++ b/doc/api/a00161.html @@ -0,0 +1,158 @@ + + + + + +GLM_GTX_component_wise: Component wise + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_component_wise: Component wise
+
+
+ + + + + + + + + + +

+Functions

template<typename genType >
genType::value_type compAdd (genType const &v)
template<typename genType >
genType::value_type compMax (genType const &v)
template<typename genType >
genType::value_type compMin (genType const &v)
template<typename genType >
genType::value_type compMul (genType const &v)
+

Detailed Description

+

Operations between components of a type.

+

<glm/gtx/component_wise.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
genType::value_type glm::compAdd (genType const & v)
+
+
+ +

Add all vector components together.

+
See also:
GLM_GTX_component_wise: Component wise
+ +
+
+ +
+
+ + + + + + + + +
genType::value_type glm::compMax (genType const & v)
+
+
+ +

Find the maximum value between single vector components.

+
See also:
GLM_GTX_component_wise: Component wise
+ +
+
+ +
+
+ + + + + + + + +
genType::value_type glm::compMin (genType const & v)
+
+
+ +

Find the minimum value between single vector components.

+
See also:
GLM_GTX_component_wise: Component wise
+ +
+
+ +
+
+ + + + + + + + +
genType::value_type glm::compMul (genType const & v)
+
+
+ +

Multiply all vector components together.

+
See also:
GLM_GTX_component_wise: Component wise
+ +
+
+
+ + + + + + diff --git a/doc/api/a00162.html b/doc/api/a00162.html new file mode 100644 index 00000000..936c9e23 --- /dev/null +++ b/doc/api/a00162.html @@ -0,0 +1,596 @@ + + + + + +GLM_GTX_constants: Provide build-in constants + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_constants: Provide build-in constants
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
e ()
template<typename T >
epsilon ()
template<typename T >
euler ()
template<typename T >
golden_ratio ()
template<typename T >
half_pi ()
template<typename T >
ln_ln_two ()
template<typename T >
ln_ten ()
template<typename T >
ln_two ()
template<typename T >
one ()
template<typename T >
one_over_pi ()
template<typename T >
one_over_root_two ()
template<typename T >
pi ()
template<typename T >
quarter_pi ()
template<typename T >
root_five ()
template<typename T >
root_half_pi ()
template<typename T >
root_ln_four ()
template<typename T >
root_pi ()
template<typename T >
root_three ()
template<typename T >
root_two ()
template<typename T >
root_two_pi ()
template<typename T >
third ()
template<typename T >
two_over_pi ()
template<typename T >
two_over_root_pi ()
template<typename T >
two_thirds ()
template<typename T >
zero ()
+

Detailed Description

+

Allow to perform bit operations on integer values.

+

<glm/gtx/constants.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + +
T glm::e ()
+
+
+ +

Return e constant.

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::epsilon ()
+
+
+ +

Return the epsilon constant for floating point types.

+
Todo:
Implement epsilon for half-precision floating point type.
+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::euler ()
+
+
+ +

Return Euler's constant.

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::golden_ratio ()
+
+
+ +

Return the golden ratio constant.

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::half_pi ()
+
+
+ +

Return pi / 2.

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::ln_ln_two ()
+
+
+ +

Return ln(ln(2)).

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::ln_ten ()
+
+
+ +

Return ln(10).

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::ln_two ()
+
+
+ +

Return ln(2).

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::one ()
+
+ +
+ +
+
+ + + + + + + +
T glm::one_over_pi ()
+
+
+ +

Return 1 / pi.

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::one_over_root_two ()
+
+
+ +

Return 1 / sqrt(2).

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::pi ()
+
+
+ +

Return the pi constant.

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::quarter_pi ()
+
+
+ +

Return pi / 4.

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::root_five ()
+
+
+ +

Return sqrt(5).

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::root_half_pi ()
+
+
+ +

Return sqrt(pi / 2).

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::root_ln_four ()
+
+
+ +

Return sqrt(ln(4)).

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::root_pi ()
+
+
+ +

Return square root of pi.

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::root_three ()
+
+
+ +

Return sqrt(3).

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::root_two ()
+
+
+ +

Return sqrt(2).

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::root_two_pi ()
+
+
+ +

Return sqrt(2 * pi).

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::third ()
+
+
+ +

Return 1 / 3.

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::two_over_pi ()
+
+
+ +

Return 2 / pi.

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::two_over_root_pi ()
+
+
+ +

Return 2 / sqrt(pi).

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::two_thirds ()
+
+
+ +

Return 2 / 3.

+
See also:
GLM_GTX_constants: Provide build-in constants
+ +
+
+ +
+
+ + + + + + + +
T glm::zero ()
+
+ +
+
+ + + + + + diff --git a/doc/api/a00163.html b/doc/api/a00163.html new file mode 100644 index 00000000..17ed8fb6 --- /dev/null +++ b/doc/api/a00163.html @@ -0,0 +1,146 @@ + + + + + +GLM_GTX_epsilon: Epsilon comparison + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_epsilon: Epsilon comparison
+
+
+ + + + + + +

+Functions

template<typename genTypeT , typename genTypeU >
bool equalEpsilon (genTypeT const &x, genTypeT const &y, genTypeU const &epsilon)
template<typename genTypeT , typename genTypeU >
bool notEqualEpsilon (genTypeT const &x, genTypeT const &y, genTypeU const &epsilon)
+

Detailed Description

+

Comparison functions for a user defined epsilon values.

+

<glm/gtx/epsilon.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool glm::equalEpsilon (genTypeT const & x,
genTypeT const & y,
genTypeU const & epsilon 
)
+
+
+ +

Returns the component-wise compare of |x - y| < epsilon.

+
See also:
GLM_GTX_epsilon: Epsilon comparison
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool glm::notEqualEpsilon (genTypeT const & x,
genTypeT const & y,
genTypeU const & epsilon 
)
+
+
+ +

Returns the component-wise compare of |x - y| >= epsilon.

+
See also:
GLM_GTX_epsilon: Epsilon comparison
+ +
+
+
+ + + + + + diff --git a/doc/api/a00164.html b/doc/api/a00164.html new file mode 100644 index 00000000..921e4c04 --- /dev/null +++ b/doc/api/a00164.html @@ -0,0 +1,492 @@ + + + + + +GLM_GTX_euler_angles: Matrix from euler angles + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_euler_angles: Matrix from euler angles
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename valType >
detail::tmat4x4< valType > eulerAngleX (valType const &angleX)
template<typename valType >
detail::tmat4x4< valType > eulerAngleXY (valType const &angleX, valType const &angleY)
template<typename valType >
detail::tmat4x4< valType > eulerAngleXZ (valType const &angleX, valType const &angleZ)
template<typename valType >
detail::tmat4x4< valType > eulerAngleY (valType const &angleY)
template<typename valType >
detail::tmat4x4< valType > eulerAngleYX (valType const &angleY, valType const &angleX)
template<typename valType >
detail::tmat4x4< valType > eulerAngleYXZ (valType const &yaw, valType const &pitch, valType const &roll)
template<typename valType >
detail::tmat4x4< valType > eulerAngleYZ (valType const &angleY, valType const &angleZ)
template<typename valType >
detail::tmat4x4< valType > eulerAngleZ (valType const &angleZ)
template<typename valType >
detail::tmat4x4< valType > eulerAngleZX (valType const &angleZ, valType const &angleX)
template<typename valType >
detail::tmat4x4< valType > eulerAngleZY (valType const &angleZ, valType const &angleY)
template<typename T >
detail::tmat2x2< T > orientate2 (T const &angle)
template<typename T >
detail::tmat3x3< T > orientate3 (T const &angle)
template<typename T >
detail::tmat3x3< T > orientate3 (detail::tvec3< T > const &angles)
template<typename T >
detail::tmat4x4< T > orientate4 (detail::tvec3< T > const &angles)
template<typename valType >
detail::tmat4x4< valType > yawPitchRoll (valType const &yaw, valType const &pitch, valType const &roll)
+

Detailed Description

+

Build matrices from Euler angles.

+

<glm/gtx/euler_angles.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
detail::tmat4x4<valType> glm::eulerAngleX (valType const & angleX)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<valType> glm::eulerAngleXY (valType const & angleX,
valType const & angleY 
)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<valType> glm::eulerAngleXZ (valType const & angleX,
valType const & angleZ 
)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<valType> glm::eulerAngleY (valType const & angleY)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<valType> glm::eulerAngleYX (valType const & angleY,
valType const & angleX 
)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<valType> glm::eulerAngleYXZ (valType const & yaw,
valType const & pitch,
valType const & roll 
)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<valType> glm::eulerAngleYZ (valType const & angleY,
valType const & angleZ 
)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<valType> glm::eulerAngleZ (valType const & angleZ)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<valType> glm::eulerAngleZX (valType const & angleZ,
valType const & angleX 
)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<valType> glm::eulerAngleZY (valType const & angleZ,
valType const & angleY 
)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat2x2<T> glm::orientate2 (T const & angle)
+
+
+ +

Creates a 2D 2 * 2 rotation matrix from an euler angle.

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x3<T> glm::orientate3 (T const & angle)
+
+
+ +

Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x3<T> glm::orientate3 (detail::tvec3< T > const & angles)
+
+
+ +

Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<T> glm::orientate4 (detail::tvec3< T > const & angles)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<valType> glm::yawPitchRoll (valType const & yaw,
valType const & pitch,
valType const & roll 
)
+
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

+
See also:
GLM_GTX_euler_angles: Matrix from euler angles
+ +
+
+
+ + + + + + diff --git a/doc/api/a00165.html b/doc/api/a00165.html new file mode 100644 index 00000000..2376117a --- /dev/null +++ b/doc/api/a00165.html @@ -0,0 +1,108 @@ + + + + + +GLM_GTX_extend: Position extending + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_extend: Position extending
+
+
+ + + + +

+Functions

template<typename genType >
genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
+

Detailed Description

+

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.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genType glm::extend (genType const & Origin,
genType const & Source,
typename genType::value_type const Length 
)
+
+
+ +

Extends of Length the Origin position using the (Source - Origin) direction.

+
See also:
GLM_GTX_extend: Position extending
+ +
+
+
+ + + + + + diff --git a/doc/api/a00166.html b/doc/api/a00166.html new file mode 100644 index 00000000..1b8c3a3f --- /dev/null +++ b/doc/api/a00166.html @@ -0,0 +1,562 @@ + + + + + +GLM_GTX_extented_min_max: Extended min max + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_extented_min_max: Extended min max
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
max (T const &x, T const &y, T const &z)
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, typename C< T >::value_type const &y, typename C< T >::value_type const &z)
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, C< T > const &y, C< T > const &z)
template<typename T >
max (T const &x, T const &y, T const &z, T const &w)
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, typename C< T >::value_type const &y, typename C< T >::value_type const &z, typename C< T >::value_type const &w)
template<typename T , template< typename > class C>
C< T > max (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
template<typename T >
min (T const &x, T const &y, T const &z)
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, typename C< T >::value_type const &y, typename C< T >::value_type const &z)
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, C< T > const &y, C< T > const &z)
template<typename T >
min (T const &x, T const &y, T const &z, T const &w)
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, typename C< T >::value_type const &y, typename C< T >::value_type const &z, typename C< T >::value_type const &w)
template<typename T , template< typename > class C>
C< T > min (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
+

Detailed Description

+

Min and max functions for 3 to 4 parameters.

+

<glm/gtx/extented_min_max.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
T glm::max (T const & x,
T const & y,
T const & z 
)
+
+
+ +

Return the maximum component-wise values of 3 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
C<T> glm::max (C< T > const & x,
typename C< T >::value_type const & y,
typename C< T >::value_type const & z 
)
+
+
+ +

Return the maximum component-wise values of 3 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
C<T> glm::max (C< T > const & x,
C< T > const & y,
C< T > const & z 
)
+
+
+ +

Return the maximum component-wise values of 3 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
T glm::max (T const & x,
T const & y,
T const & z,
T const & w 
)
+
+
+ +

Return the maximum component-wise values of 4 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
C<T> glm::max (C< T > const & x,
typename C< T >::value_type const & y,
typename C< T >::value_type const & z,
typename C< T >::value_type const & w 
)
+
+
+ +

Return the maximum component-wise values of 4 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
C<T> glm::max (C< T > const & x,
C< T > const & y,
C< T > const & z,
C< T > const & w 
)
+
+
+ +

Return the maximum component-wise values of 4 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
T glm::min (T const & x,
T const & y,
T const & z 
)
+
+
+ +

Return the minimum component-wise values of 3 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
C<T> glm::min (C< T > const & x,
typename C< T >::value_type const & y,
typename C< T >::value_type const & z 
)
+
+
+ +

Return the minimum component-wise values of 3 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
C<T> glm::min (C< T > const & x,
C< T > const & y,
C< T > const & z 
)
+
+
+ +

Return the minimum component-wise values of 3 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
T glm::min (T const & x,
T const & y,
T const & z,
T const & w 
)
+
+
+ +

Return the minimum component-wise values of 4 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
C<T> glm::min (C< T > const & x,
typename C< T >::value_type const & y,
typename C< T >::value_type const & z,
typename C< T >::value_type const & w 
)
+
+
+ +

Return the minimum component-wise values of 4 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
C<T> glm::min (C< T > const & x,
C< T > const & y,
C< T > const & z,
C< T > const & w 
)
+
+
+ +

Return the minimum component-wise values of 4 inputs.

+
See also:
GLM_GTX_extented_min_max: Extended min max
+ +
+
+
+ + + + + + diff --git a/doc/api/a00167.html b/doc/api/a00167.html new file mode 100644 index 00000000..fb9e60a5 --- /dev/null +++ b/doc/api/a00167.html @@ -0,0 +1,244 @@ + + + + + +GLM_GTX_fast_exponential: Fast exponentiation functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_fast_exponential: Fast exponentiation functions
+
+
+ + + + + + + + + + + + + + + + +

+Functions

template<typename T >
fastExp (const T &x)
template<typename T >
fastExp2 (const T &x)
template<typename T >
fastLn (const T &x)
template<typename T >
fastLog (const T &x)
template<typename T >
fastLog2 (const T &x)
template<typename genType >
genType fastPow (genType const &x, genType const &y)
template<typename genTypeT , typename genTypeU >
genTypeT fastPow (genTypeT const &x, genTypeU const &y)
+

Detailed Description

+

Fast but less accurate implementations of exponential based functions.

+

<glm/gtx/fast_exponential.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
T glm::fastExp (const T & x)
+
+
+ +

Faster than the common exp function but less accurate.

+
See also:
GLM_GTX_fast_exponential: Fast exponentiation functions
+ +
+
+ +
+
+ + + + + + + + +
T glm::fastExp2 (const T & x)
+
+
+ +

Faster than the common exp2 function but less accurate.

+
See also:
GLM_GTX_fast_exponential: Fast exponentiation functions
+ +
+
+ +
+
+ + + + + + + + +
T glm::fastLn (const T & x)
+
+
+ +

Faster than the common ln function but less accurate.

+
See also:
GLM_GTX_fast_exponential: Fast exponentiation functions
+ +
+
+ +
+
+ + + + + + + + +
T glm::fastLog (const T & x)
+
+
+ +

Faster than the common log function but less accurate.

+
See also:
GLM_GTX_fast_exponential: Fast exponentiation functions
+ +
+
+ +
+
+ + + + + + + + +
T glm::fastLog2 (const T & x)
+
+
+ +

Faster than the common log2 function but less accurate.

+
See also:
GLM_GTX_fast_exponential: Fast exponentiation functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::fastPow (genType const & x,
genType const & y 
)
+
+
+ +

Faster than the common pow function but less accurate.

+
See also:
GLM_GTX_fast_exponential: Fast exponentiation functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genTypeT glm::fastPow (genTypeT const & x,
genTypeU const & y 
)
+
+
+ +

Faster than the common pow function but less accurate.

+
See also:
GLM_GTX_fast_exponential: Fast exponentiation functions
+ +
+
+
+ + + + + + diff --git a/doc/api/a00168.html b/doc/api/a00168.html new file mode 100644 index 00000000..fe7d8bb2 --- /dev/null +++ b/doc/api/a00168.html @@ -0,0 +1,193 @@ + + + + + +GLM_GTX_fast_square_root: Fast square root functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_fast_square_root: Fast square root functions
+
+
+ + + + + + + + + + + + +

+Functions

template<typename genType >
genType::value_type fastDistance (genType const &x, genType const &y)
template<typename genType >
genType fastInverseSqrt (genType const &x)
template<typename genType >
genType::value_type fastLength (genType const &x)
template<typename genType >
genType fastNormalize (genType const &x)
template<typename genType >
genType fastSqrt (genType const &x)
+

Detailed Description

+

Fast but less accurate implementations of square root based functions.

+ +

<glm/gtx/fast_square_root.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
genType::value_type glm::fastDistance (genType const & x,
genType const & y 
)
+
+
+ +

Faster than the common distance function but less accurate.

+

From GLM_GTX_fast_square_root extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::fastInverseSqrt (genType const & x)
+
+
+ +

Faster than the common inversesqrt function but less accurate.

+

From GLM_GTX_fast_square_root extension.

+ +
+
+ +
+
+ + + + + + + + +
genType::value_type glm::fastLength (genType const & x)
+
+
+ +

Faster than the common length function but less accurate.

+

From GLM_GTX_fast_square_root extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::fastNormalize (genType const & x)
+
+
+ +

Faster than the common normalize function but less accurate.

+

From GLM_GTX_fast_square_root extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::fastSqrt (genType const & x)
+
+
+ +

Faster than the common sqrt function but less accurate.

+

From GLM_GTX_fast_square_root extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00169.html b/doc/api/a00169.html new file mode 100644 index 00000000..92664927 --- /dev/null +++ b/doc/api/a00169.html @@ -0,0 +1,234 @@ + + + + + +GLM_GTX_fast_trigonometry: Fast trigonometric functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_fast_trigonometry: Fast trigonometric functions
+
+
+ + + + + + + + + + + + + + + + +

+Functions

template<typename T >
fastAcos (const T &angle)
template<typename T >
fastAsin (const T &angle)
template<typename T >
fastAtan (const T &y, const T &x)
template<typename T >
fastAtan (const T &angle)
template<typename T >
fastCos (const T &angle)
template<typename T >
fastSin (const T &angle)
template<typename T >
fastTan (const T &angle)
+

Detailed Description

+

Fast but less accurate implementations of trigonometric functions.

+

<glm/gtx/fast_trigonometry.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
T glm::fastAcos (const T & angle)
+
+
+ +

Faster than the common acos function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
T glm::fastAsin (const T & angle)
+
+
+ +

Faster than the common asin function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
T glm::fastAtan (const T & y,
const T & x 
)
+
+
+ +

Faster than the common atan function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
T glm::fastAtan (const T & angle)
+
+
+ +

Faster than the common atan function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
T glm::fastCos (const T & angle)
+
+
+ +

Faster than the common cos function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
T glm::fastSin (const T & angle)
+
+
+ +

Faster than the common sin function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
T glm::fastTan (const T & angle)
+
+
+ +

Faster than the common tan function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00170.html b/doc/api/a00170.html new file mode 100644 index 00000000..b27f3a5f --- /dev/null +++ b/doc/api/a00170.html @@ -0,0 +1,152 @@ + + + + + +GLM_GTX_gradient_paint: Procedural gradient color + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_gradient_paint: Procedural gradient color
+
+
+ + + + + + +

+Functions

template<typename valType >
valType linearGradient (detail::tvec2< valType > const &Point0, detail::tvec2< valType > const &Point1, detail::tvec2< valType > const &Position)
template<typename valType >
valType radialGradient (detail::tvec2< valType > const &Center, valType const &Radius, detail::tvec2< valType > const &Focal, detail::tvec2< valType > const &Position)
+

Detailed Description

+

Functions that return the color of procedural gradient for specific coordinates.

+

<glm/gtx/gradient_paint.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
valType glm::linearGradient (detail::tvec2< valType > const & Point0,
detail::tvec2< valType > const & Point1,
detail::tvec2< valType > const & Position 
)
+
+
+ +

Return a color from a linear gradient.

+
See also:
- GLM_GTX_gradient_paint: Procedural gradient color
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
valType glm::radialGradient (detail::tvec2< valType > const & Center,
valType const & Radius,
detail::tvec2< valType > const & Focal,
detail::tvec2< valType > const & Position 
)
+
+
+ +

Return a color from a radial gradient.

+
See also:
- GLM_GTX_gradient_paint: Procedural gradient color
+ +
+
+
+ + + + + + diff --git a/doc/api/a00171.html b/doc/api/a00171.html new file mode 100644 index 00000000..511f6fb0 --- /dev/null +++ b/doc/api/a00171.html @@ -0,0 +1,146 @@ + + + + + +GLM_GTX_handed_coordinate_space: Space Handedness + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_handed_coordinate_space: Space Handedness
+
+
+ + + + + + +

+Functions

template<typename T >
bool leftHanded (detail::tvec3< T > const &tangent, detail::tvec3< T > const &binormal, detail::tvec3< T > const &normal)
template<typename T >
bool rightHanded (detail::tvec3< T > const &tangent, detail::tvec3< T > const &binormal, detail::tvec3< T > const &normal)
+

Detailed Description

+

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.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool glm::leftHanded (detail::tvec3< T > const & tangent,
detail::tvec3< T > const & binormal,
detail::tvec3< T > const & normal 
)
+
+
+ +

Return if a trihedron left handed or not.

+

From GLM_GTX_handed_coordinate_space extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool glm::rightHanded (detail::tvec3< T > const & tangent,
detail::tvec3< T > const & binormal,
detail::tvec3< T > const & normal 
)
+
+
+ +

Return if a trihedron right handed or not.

+

From GLM_GTX_handed_coordinate_space extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00172.html b/doc/api/a00172.html new file mode 100644 index 00000000..55fb0ab6 --- /dev/null +++ b/doc/api/a00172.html @@ -0,0 +1,326 @@ + + + + + +GLM_GTX_inertia: Intertial matrix + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_inertia: Intertial matrix
+
+
+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat3x3< T > ballInertia3 (T const &Mass, T const &Radius)
template<typename T >
detail::tmat4x4< T > ballInertia4 (T const &Mass, T const &Radius)
template<typename T >
detail::tmat3x3< T > boxInertia3 (T const &Mass, detail::tvec3< T > const &Scale)
template<typename T >
detail::tmat4x4< T > boxInertia4 (T const &Mass, detail::tvec3< T > const &Scale)
template<typename T >
detail::tmat3x3< T > diskInertia3 (T const &Mass, T const &Radius)
template<typename T >
detail::tmat4x4< T > diskInertia4 (T const &Mass, T const &Radius)
template<typename T >
detail::tmat3x3< T > sphereInertia3 (T const &Mass, T const &Radius)
template<typename T >
detail::tmat4x4< T > sphereInertia4 (T const &Mass, T const &Radius)
+

Detailed Description

+

Create inertia matrices.

+

<glm/gtx/inertia.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat3x3<T> glm::ballInertia3 (T const & Mass,
T const & Radius 
)
+
+
+ +

Build an inertia matrix for a ball.

+

From GLM_GTX_inertia extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::ballInertia4 (T const & Mass,
T const & Radius 
)
+
+
+ +

Build an inertia matrix for a ball.

+

From GLM_GTX_inertia extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat3x3<T> glm::boxInertia3 (T const & Mass,
detail::tvec3< T > const & Scale 
)
+
+
+ +

Build an inertia matrix for a box.

+

From GLM_GTX_inertia extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::boxInertia4 (T const & Mass,
detail::tvec3< T > const & Scale 
)
+
+
+ +

Build an inertia matrix for a box.

+

From GLM_GTX_inertia extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat3x3<T> glm::diskInertia3 (T const & Mass,
T const & Radius 
)
+
+
+ +

Build an inertia matrix for a disk.

+

From GLM_GTX_inertia extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::diskInertia4 (T const & Mass,
T const & Radius 
)
+
+
+ +

Build an inertia matrix for a disk.

+

From GLM_GTX_inertia extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat3x3<T> glm::sphereInertia3 (T const & Mass,
T const & Radius 
)
+
+
+ +

Build an inertia matrix for a sphere.

+

From GLM_GTX_inertia extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::sphereInertia4 (T const & Mass,
T const & Radius 
)
+
+
+ +

Build an inertia matrix for a sphere.

+

From GLM_GTX_inertia extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00173.html b/doc/api/a00173.html new file mode 100644 index 00000000..3edfc20a --- /dev/null +++ b/doc/api/a00173.html @@ -0,0 +1,92 @@ + + + + + +GLM_GTX_int_10_10_10_2: Packed integer + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_int_10_10_10_2: Packed integer
+
+
+ + + +

+Functions

dword uint10_10_10_2_cast (glm::vec4 const &v)
+

Detailed Description

+

Pack vector to 1010102 integers.

+

Storage only.

+

<glm/gtx/int_10_10_10_2.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
dword glm::uint10_10_10_2_cast (glm::vec4 const & v)
+
+
+ +

From GLM_GTX_int_10_10_10_2 extension.

+

Cast a vec4 to an u_10_10_10_2.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00174.html b/doc/api/a00174.html new file mode 100644 index 00000000..2eb6ac97 --- /dev/null +++ b/doc/api/a00174.html @@ -0,0 +1,344 @@ + + + + + +GLM_GTX_integer: Extended integer functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_integer: Extended integer functions
+
+
+ + + + + + + + + + + + + + + + +

+Typedefs

typedef signed int sint

+Functions

template<typename genType >
genType factorial (genType const &x)
unsigned int floor_log2 (unsigned int x)
template<typename genIUType >
genIUType log2 (genIUType const &x)
int mod (int x, int y)
uint mod (uint x, uint y)
uint nlz (uint x)
int pow (int x, int y)
uint pow (uint x, uint y)
int sqrt (int x)
uint sqrt (uint x)
+

Detailed Description

+

Add support for integer for core functions.

+

<glm/gtx/integer.hpp> need to be included to use these functionalities.

+

Typedef Documentation

+ +
+
+ + + + +
typedef signed int sint
+
+
+ +

32bit signed integer.

+

From GLM_GTX_integer extension.

+ +

Definition at line 81 of file integer.hpp.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
genType glm::factorial (genType const & x)
+
+
+ +

Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
unsigned int glm::floor_log2 (unsigned int x)
+
+
+ +

Returns the floor log2 of x.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
genIUType glm::log2 (genIUType const & x)
+
+
+ +

Returns the log2 of x.

+

Can be reliably using to compute mipmap count from the texture size. From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int glm::mod (int x,
int y 
)
+
+
+ +

Modulus.

+

Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
uint glm::mod (uint x,
uint y 
)
+
+
+ +

Modulus.

+

Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
uint glm::nlz (uint x)
+
+
+ +

Returns the number of leading zeros.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int glm::pow (int x,
int y 
)
+
+
+ +

Returns x raised to the y power.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
uint glm::pow (uint x,
uint y 
)
+
+
+ +

Returns x raised to the y power.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
int glm::sqrt (int x)
+
+
+ +

Returns the positive square root of x.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
uint glm::sqrt (uint x)
+
+
+ +

Returns the positive square root of x.

+

From GLM_GTX_integer extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00175.html b/doc/api/a00175.html new file mode 100644 index 00000000..afc24682 --- /dev/null +++ b/doc/api/a00175.html @@ -0,0 +1,294 @@ + + + + + +GLM_GTX_intersect: Intersection tests + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_intersect: Intersection tests
+
+
+ + + + + + + + + + +

+Functions

template<typename genType >
bool intersectLineSphere (genType const &point0, genType const &point1, genType const &center, typename genType::value_type radius, genType &position, genType &normal)
template<typename genType >
bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
template<typename genType >
bool intersectRaySphere (genType const &orig, genType const &dir, genType const &center, typename genType::value_type radius, genType &position, genType &normal)
template<typename genType >
bool intersectRayTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
+

Detailed Description

+

Add intersection functions.

+

<glm/gtx/intersect.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool glm::intersectLineSphere (genType const & point0,
genType const & point1,
genType const & center,
typename genType::value_type radius,
genType & position,
genType & normal 
)
+
+
+ +

Compute the intersection of a line and a sphere.

+

From GLM_GTX_intersect extension

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool glm::intersectLineTriangle (genType const & orig,
genType const & dir,
genType const & vert0,
genType const & vert1,
genType const & vert2,
genType & position 
)
+
+
+ +

Compute the intersection of a line and a triangle.

+

From GLM_GTX_intersect extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool glm::intersectRaySphere (genType const & orig,
genType const & dir,
genType const & center,
typename genType::value_type radius,
genType & position,
genType & normal 
)
+
+
+ +

Compute the intersection of a ray and a sphere.

+

From GLM_GTX_intersect extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool glm::intersectRayTriangle (genType const & orig,
genType const & dir,
genType const & vert0,
genType const & vert1,
genType const & vert2,
genType & baryPosition 
)
+
+
+ +

Compute the intersection of a ray and a triangle.

+

From GLM_GTX_intersect extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00176.html b/doc/api/a00176.html new file mode 100644 index 00000000..aff43cf9 --- /dev/null +++ b/doc/api/a00176.html @@ -0,0 +1,103 @@ + + + + + +GLM_GTX_log_base: Log with base + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_log_base: Log with base
+
+
+ + + + +

+Functions

template<typename genType >
genType log (genType const &x, genType const &base)
+

Detailed Description

+

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.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::log (genType const & x,
genType const & base 
)
+
+
+ +

Logarithm for any base.

+

From GLM_GTX_log_base.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00177.html b/doc/api/a00177.html new file mode 100644 index 00000000..644ccc0c --- /dev/null +++ b/doc/api/a00177.html @@ -0,0 +1,114 @@ + + + + + +GLM_GTX_matrix_cross_product: Cross product matrix form + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_matrix_cross_product: Cross product matrix form
+
+
+ + + + + + +

+Functions

template<typename T >
detail::tmat3x3< T > matrixCross3 (detail::tvec3< T > const &x)
template<typename T >
detail::tmat4x4< T > matrixCross4 (detail::tvec3< T > const &x)
+

Detailed Description

+

Build cross product matrices.

+

<glm/gtx/matrix_cross_product.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
detail::tmat3x3<T> glm::matrixCross3 (detail::tvec3< T > const & x)
+
+
+ +

Build a cross product matrix.

+

From GLM_GTX_matrix_cross_product extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<T> glm::matrixCross4 (detail::tvec3< T > const & x)
+
+
+ +

Build a cross product matrix.

+

From GLM_GTX_matrix_cross_product extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00178.html b/doc/api/a00178.html new file mode 100644 index 00000000..4f3ebd1a --- /dev/null +++ b/doc/api/a00178.html @@ -0,0 +1,178 @@ + + + + + +GLM_GTX_matrix_interpolation: Rotation and translation matrix interpolation + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_matrix_interpolation: Rotation and translation matrix interpolation
+
+
+ + + + + + + + +

+Functions

template<typename T >
void axisAngle (detail::tmat4x4< T > const &mat, detail::tvec3< T > &axis, T &angle)
template<typename T >
detail::tmat4x4< T > axisAngleMatrix (detail::tvec3< T > const &axis, T const angle)
template<typename T >
detail::tmat4x4< T > interpolate (detail::tmat4x4< T > const &m1, detail::tmat4x4< T > const &m2, T const delta)
+

Detailed Description

+

Allows to directly interpolate two exiciting matrices.

+

<glm/gtx/matrix_interpolation.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void glm::axisAngle (detail::tmat4x4< T > const & mat,
detail::tvec3< T > & axis,
T & angle 
)
+
+
+ +

Get the axis and angle of the rotation from a matrix.

+

From GLM_GTX_matrix_interpolation extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::axisAngleMatrix (detail::tvec3< T > const & axis,
T const angle 
)
+
+
+ +

Build a matrix from axis and angle.

+

From GLM_GTX_matrix_interpolation extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::interpolate (detail::tmat4x4< T > const & m1,
detail::tmat4x4< T > const & m2,
T const delta 
)
+
+
+ +

Build a interpolation of 4 * 4 matrixes.

+

From GLM_GTX_matrix_interpolation extension. Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00179.html b/doc/api/a00179.html new file mode 100644 index 00000000..e7da6aab --- /dev/null +++ b/doc/api/a00179.html @@ -0,0 +1,430 @@ + + + + + +GLM_GTX_matrix_major_storage: Build matrix + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_matrix_major_storage: Build matrix
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat2x2< T > colMajor2 (detail::tvec2< T > const &v1, detail::tvec2< T > const &v2)
template<typename T >
detail::tmat2x2< T > colMajor2 (detail::tmat2x2< T > const &m)
template<typename T >
detail::tmat3x3< T > colMajor3 (detail::tvec3< T > const &v1, detail::tvec3< T > const &v2, detail::tvec3< T > const &v3)
template<typename T >
detail::tmat3x3< T > colMajor3 (detail::tmat3x3< T > const &m)
template<typename T >
detail::tmat4x4< T > colMajor4 (detail::tvec4< T > const &v1, detail::tvec4< T > const &v2, detail::tvec4< T > const &v3, detail::tvec4< T > const &v4)
template<typename T >
detail::tmat4x4< T > colMajor4 (detail::tmat4x4< T > const &m)
template<typename T >
detail::tmat2x2< T > rowMajor2 (detail::tvec2< T > const &v1, detail::tvec2< T > const &v2)
template<typename T >
detail::tmat2x2< T > rowMajor2 (detail::tmat2x2< T > const &m)
template<typename T >
detail::tmat3x3< T > rowMajor3 (detail::tvec3< T > const &v1, detail::tvec3< T > const &v2, detail::tvec3< T > const &v3)
template<typename T >
detail::tmat3x3< T > rowMajor3 (detail::tmat3x3< T > const &m)
template<typename T >
detail::tmat4x4< T > rowMajor4 (detail::tvec4< T > const &v1, detail::tvec4< T > const &v2, detail::tvec4< T > const &v3, detail::tvec4< T > const &v4)
template<typename T >
detail::tmat4x4< T > rowMajor4 (detail::tmat4x4< T > const &m)
+

Detailed Description

+

Build matrices with specific matrix order, row or column.

+

<glm/gtx/matrix_major_storage.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat2x2<T> glm::colMajor2 (detail::tvec2< T > const & v1,
detail::tvec2< T > const & v2 
)
+
+
+ +

Build a column major matrix from column vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat2x2<T> glm::colMajor2 (detail::tmat2x2< T > const & m)
+
+
+ +

Build a column major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat3x3<T> glm::colMajor3 (detail::tvec3< T > const & v1,
detail::tvec3< T > const & v2,
detail::tvec3< T > const & v3 
)
+
+
+ +

Build a column major matrix from column vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x3<T> glm::colMajor3 (detail::tmat3x3< T > const & m)
+
+
+ +

Build a column major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::colMajor4 (detail::tvec4< T > const & v1,
detail::tvec4< T > const & v2,
detail::tvec4< T > const & v3,
detail::tvec4< T > const & v4 
)
+
+
+ +

Build a column major matrix from column vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<T> glm::colMajor4 (detail::tmat4x4< T > const & m)
+
+
+ +

Build a column major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat2x2<T> glm::rowMajor2 (detail::tvec2< T > const & v1,
detail::tvec2< T > const & v2 
)
+
+
+ +

Build a row major matrix from row vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat2x2<T> glm::rowMajor2 (detail::tmat2x2< T > const & m)
+
+
+ +

Build a row major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat3x3<T> glm::rowMajor3 (detail::tvec3< T > const & v1,
detail::tvec3< T > const & v2,
detail::tvec3< T > const & v3 
)
+
+
+ +

Build a row major matrix from row vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x3<T> glm::rowMajor3 (detail::tmat3x3< T > const & m)
+
+
+ +

Build a row major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::rowMajor4 (detail::tvec4< T > const & v1,
detail::tvec4< T > const & v2,
detail::tvec4< T > const & v3,
detail::tvec4< T > const & v4 
)
+
+
+ +

Build a row major matrix from row vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<T> glm::rowMajor4 (detail::tmat4x4< T > const & m)
+
+
+ +

Build a row major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00180.html b/doc/api/a00180.html new file mode 100644 index 00000000..25788181 --- /dev/null +++ b/doc/api/a00180.html @@ -0,0 +1,268 @@ + + + + + +GLM_GTX_matrix_operation: Extended matrix operations + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_matrix_operation: Extended matrix operations
+
+
+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename valType >
detail::tmat2x2< valType > diagonal2x2 (detail::tvec2< valType > const &v)
template<typename valType >
detail::tmat2x3< valType > diagonal2x3 (detail::tvec2< valType > const &v)
template<typename valType >
detail::tmat2x4< valType > diagonal2x4 (detail::tvec2< valType > const &v)
template<typename valType >
detail::tmat3x2< valType > diagonal3x2 (detail::tvec2< valType > const &v)
template<typename valType >
detail::tmat3x3< valType > diagonal3x3 (detail::tvec3< valType > const &v)
template<typename valType >
detail::tmat3x4< valType > diagonal3x4 (detail::tvec3< valType > const &v)
template<typename valType >
detail::tmat4x2< valType > diagonal4x2 (detail::tvec2< valType > const &v)
template<typename valType >
detail::tmat4x3< valType > diagonal4x3 (detail::tvec3< valType > const &v)
template<typename valType >
detail::tmat4x4< valType > diagonal4x4 (detail::tvec4< valType > const &v)
+

Detailed Description

+

Build diagonal matrices from vectors.

+

<glm/gtx/matrix_operation.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
detail::tmat2x2<valType> glm::diagonal2x2 (detail::tvec2< valType > const & v)
+
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat2x3<valType> glm::diagonal2x3 (detail::tvec2< valType > const & v)
+
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat2x4<valType> glm::diagonal2x4 (detail::tvec2< valType > const & v)
+
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x2<valType> glm::diagonal3x2 (detail::tvec2< valType > const & v)
+
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x3<valType> glm::diagonal3x3 (detail::tvec3< valType > const & v)
+
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x4<valType> glm::diagonal3x4 (detail::tvec3< valType > const & v)
+
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x2<valType> glm::diagonal4x2 (detail::tvec2< valType > const & v)
+
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x3<valType> glm::diagonal4x3 (detail::tvec3< valType > const & v)
+
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<valType> glm::diagonal4x4 (detail::tvec4< valType > const & v)
+
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00181.html b/doc/api/a00181.html new file mode 100644 index 00000000..266c0eea --- /dev/null +++ b/doc/api/a00181.html @@ -0,0 +1,326 @@ + + + + + +GLM_GTX_matrix_query: Query matrix properties + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_matrix_query: Query matrix properties
+
+
+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
bool isIdentity (genType const &m, typename genType::value_type const &epsilon)
template<typename valType >
bool isNormalized (detail::tmat2x2< valType > const &m, valType const &epsilon)
template<typename valType >
bool isNormalized (detail::tmat3x3< valType > const &m, valType const &epsilon)
template<typename valType >
bool isNormalized (detail::tmat4x4< valType > const &m, valType const &epsilon)
template<typename T >
bool isNull (detail::tmat2x2< T > const &m, T const &epsilon)
template<typename T >
bool isNull (detail::tmat3x3< T > const &m, T const &epsilon)
template<typename T >
bool isNull (detail::tmat4x4< T > const &m, T const &epsilon)
template<typename valType , template< typename > class matType>
bool isOrthogonal (matType< valType > const &m, valType const &epsilon)
+

Detailed Description

+

Query to evaluate matrix properties.

+

<glm/gtx/matrix_query.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isIdentity (genType const & m,
typename genType::value_type const & epsilon 
)
+
+
+ +

Return whether a matrix is an identity matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isNormalized (detail::tmat2x2< valType > const & m,
valType const & epsilon 
)
+
+
+ +

Return whether a matrix is a normalized matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isNormalized (detail::tmat3x3< valType > const & m,
valType const & epsilon 
)
+
+
+ +

Return whether a matrix is a normalized matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isNormalized (detail::tmat4x4< valType > const & m,
valType const & epsilon 
)
+
+
+ +

Return whether a matrix is a normalized matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isNull (detail::tmat2x2< T > const & m,
T const & epsilon 
)
+
+
+ +

Return whether a matrix a null matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isNull (detail::tmat3x3< T > const & m,
T const & epsilon 
)
+
+
+ +

Return whether a matrix a null matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isNull (detail::tmat4x4< T > const & m,
T const & epsilon 
)
+
+
+ +

Return whether a matrix is a null matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isOrthogonal (matType< valType > const & m,
valType const & epsilon 
)
+
+
+ +

Return whether a matrix is an orthonormalized matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00182.html b/doc/api/a00182.html new file mode 100644 index 00000000..5c1a2bd4 --- /dev/null +++ b/doc/api/a00182.html @@ -0,0 +1,72 @@ + + + + + +GLM_GTX_mixed_producte: Mixed product + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_mixed_producte: Mixed product
+
+
+ + + + +

+Functions

+template<typename valType >
valType mixedProduct (detail::tvec3< valType > const &v1, detail::tvec3< valType > const &v2, detail::tvec3< valType > const &v3)
+

Detailed Description

+

Mixed product of 3 vectors.

+

<glm/gtx/mixed_product.hpp> need to be included to use these functionalities.

+
+ + + + + + diff --git a/doc/api/a00183.html b/doc/api/a00183.html new file mode 100644 index 00000000..bb00f9d4 --- /dev/null +++ b/doc/api/a00183.html @@ -0,0 +1,134 @@ + + + + + +GLM_GTX_multiple: Multiples + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_multiple: Multiples
+
+
+ + + + + + +

+Functions

template<typename genType >
genType higherMultiple (genType const &Source, genType const &Multiple)
template<typename genType >
genType lowerMultiple (genType const &Source, genType const &Multiple)
+

Detailed Description

+

Find the closest number of a number multiple of other number.

+

<glm/gtx/multiple.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::higherMultiple (genType const & Source,
genType const & Multiple 
)
+
+
+ +

Higher Multiple number of Source.

+

From GLM_GTX_multiple extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::lowerMultiple (genType const & Source,
genType const & Multiple 
)
+
+
+ +

Lower Multiple number of Source.

+

From GLM_GTX_multiple extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00184.html b/doc/api/a00184.html new file mode 100644 index 00000000..b7b601e7 --- /dev/null +++ b/doc/api/a00184.html @@ -0,0 +1,62 @@ + + + + + +GLM_GTX_noise: Procedural noise functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
GLM_GTX_noise: Procedural noise functions
+
+
+

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 Defines the half-precision floating-point type, along with various typedefs for vectors and matrices.

+

<glm/gtx/noise.hpp> need to be included to use these functionalities.

+
+ + + + + + diff --git a/doc/api/a00185.html b/doc/api/a00185.html new file mode 100644 index 00000000..505ec1a8 --- /dev/null +++ b/doc/api/a00185.html @@ -0,0 +1,378 @@ + + + + + +GLM_GTX_norm: Vector norm calculations + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_norm: Vector norm calculations
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
distance2 (T const &p0, T const &p1)
template<typename genType >
genType::value_type distance2 (genType const &p0, genType const &p1)
template<typename T >
l1Norm (detail::tvec3< T > const &x, detail::tvec3< T > const &y)
template<typename T >
l1Norm (detail::tvec3< T > const &v)
template<typename T >
l2Norm (detail::tvec3< T > const &x, detail::tvec3< T > const &y)
template<typename T >
l2Norm (detail::tvec3< T > const &x)
template<typename T >
length2 (T const &x)
template<typename genType >
genType::value_type length2 (genType const &x)
template<typename T >
length2 (detail::tquat< T > const &q)
template<typename T >
lxNorm (detail::tvec3< T > const &x, detail::tvec3< T > const &y, unsigned int Depth)
template<typename T >
lxNorm (detail::tvec3< T > const &x, unsigned int Depth)
+

Detailed Description

+

Various way to compute vector norms.

+

<glm/gtx/norm.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
T glm::distance2 (T const & p0,
T const & p1 
)
+
+
+ +

Returns the squared distance between p0 and p1, i.e., length(p0 - p1).

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType::value_type glm::distance2 (genType const & p0,
genType const & p1 
)
+
+
+ +

Returns the squared distance between p0 and p1, i.e., length(p0 - p1).

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
T glm::l1Norm (detail::tvec3< T > const & x,
detail::tvec3< T > const & y 
)
+
+
+ +

Returns the L1 norm between x and y.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
T glm::l1Norm (detail::tvec3< T > const & v)
+
+
+ +

Returns the L1 norm of v.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
T glm::l2Norm (detail::tvec3< T > const & x,
detail::tvec3< T > const & y 
)
+
+
+ +

Returns the L2 norm between x and y.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
T glm::l2Norm (detail::tvec3< T > const & x)
+
+
+ +

Returns the L2 norm of v.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
T glm::length2 (T const & x)
+
+
+ +

Returns the squared length of x.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
genType::value_type glm::length2 (genType const & x)
+
+
+ +

Returns the squared length of x.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
T glm::length2 (detail::tquat< T > const & q)
+
+
+ +

Returns the squared length of x.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
T glm::lxNorm (detail::tvec3< T > const & x,
detail::tvec3< T > const & y,
unsigned int Depth 
)
+
+
+ +

Returns the L norm between x and y.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
T glm::lxNorm (detail::tvec3< T > const & x,
unsigned int Depth 
)
+
+
+ +

Returns the L norm of v.

+

From GLM_GTX_norm extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00186.html b/doc/api/a00186.html new file mode 100644 index 00000000..dc50822d --- /dev/null +++ b/doc/api/a00186.html @@ -0,0 +1,108 @@ + + + + + +GLM_GTX_normal: Compute normals + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_normal: Compute normals
+
+
+ + + + +

+Functions

template<typename T >
detail::tvec3< T > triangleNormal (detail::tvec3< T > const &p1, detail::tvec3< T > const &p2, detail::tvec3< T > const &p3)
+

Detailed Description

+

Compute the normal of a triangle.

+

<glm/gtx/normal.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tvec3<T> glm::triangleNormal (detail::tvec3< T > const & p1,
detail::tvec3< T > const & p2,
detail::tvec3< T > const & p3 
)
+
+
+ +

Computes triangle normal from triangle points.

+

From GLM_GTX_normal extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00187.html b/doc/api/a00187.html new file mode 100644 index 00000000..969bbf8c --- /dev/null +++ b/doc/api/a00187.html @@ -0,0 +1,134 @@ + + + + + +GLM_GTX_normalize_dot: Normalize dot product + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_normalize_dot: Normalize dot product
+
+
+ + + + + + +

+Functions

template<typename genType >
genType::value_type fastNormalizeDot (genType const &x, genType const &y)
template<typename genType >
genType::value_type normalizeDot (genType const &x, genType const &y)
+

Detailed Description

+

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.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
genType::value_type glm::fastNormalizeDot (genType const & x,
genType const & y 
)
+
+
+ +

Normalize parameters and returns the dot product of x and y.

+

Faster that dot(fastNormalize(x), fastNormalize(y)). From GLM_GTX_normalize_dot extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType::value_type glm::normalizeDot (genType const & x,
genType const & y 
)
+
+
+ +

Normalize parameters and returns the dot product of x and y.

+

It's faster that dot(normalize(x), normalize(y)). From GLM_GTX_normalize_dot extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00188.html b/doc/api/a00188.html new file mode 100644 index 00000000..a664bcd8 --- /dev/null +++ b/doc/api/a00188.html @@ -0,0 +1,95 @@ + + + + + +GLM_GTX_number_precision: Number precision + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_number_precision: Number precision
+
+
+ + + + + + + + + + + + + + + +

+Typedefs

+typedef f16 f16mat1
+typedef f16 f16mat1x1
+typedef f16 f16vec1
+typedef f32 f32mat1
+typedef f32 f32mat1x1
+typedef f32 f32vec1
+typedef f64 f64mat1
+typedef f64 f64mat1x1
+typedef f64 f64vec1
+typedef u16 u16vec1
+typedef u32 u32vec1
+typedef u64 u64vec1
+typedef u8 u8vec1
+

Detailed Description

+

Defined size types.

+

<glm/gtx/number_precision.hpp> need to be included to use these functionalities.

+
+ + + + + + diff --git a/doc/api/a00189.html b/doc/api/a00189.html new file mode 100644 index 00000000..7d024c82 --- /dev/null +++ b/doc/api/a00189.html @@ -0,0 +1,188 @@ + + + + + +GLM_GTX_ocl_type: OpenCL types + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_ocl_type: OpenCL types
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef detail::int8 cl_char
+typedef detail::int8 cl_char1
+typedef detail::tvec2
+< detail::int8 > 
cl_char2
+typedef detail::tvec3
+< detail::int8 > 
cl_char3
+typedef detail::tvec4
+< detail::int8 > 
cl_char4
+typedef detail::float32 cl_float
+typedef detail::float32 cl_float1
+typedef detail::tvec2
+< detail::float32 > 
cl_float2
+typedef detail::tvec3
+< detail::float32 > 
cl_float3
+typedef detail::tvec4
+< detail::float32 > 
cl_float4
+typedef detail::float16 cl_half
+typedef detail::int32 cl_int
+typedef detail::int32 cl_int1
+typedef detail::tvec2
+< detail::int32 > 
cl_int2
+typedef detail::tvec3
+< detail::int32 > 
cl_int3
+typedef detail::tvec4
+< detail::int32 > 
cl_int4
+typedef detail::int64 cl_long
+typedef detail::int64 cl_long1
+typedef detail::tvec2
+< detail::int64 > 
cl_long2
+typedef detail::tvec3
+< detail::int64 > 
cl_long3
+typedef detail::tvec4
+< detail::int64 > 
cl_long4
+typedef detail::int16 cl_short
+typedef detail::int16 cl_short1
+typedef detail::tvec2
+< detail::int16 > 
cl_short2
+typedef detail::tvec3
+< detail::int16 > 
cl_short3
+typedef detail::tvec4
+< detail::int16 > 
cl_short4
+typedef detail::uint8 cl_uchar
+typedef detail::uint8 cl_uchar1
+typedef detail::tvec2
+< detail::uint8 > 
cl_uchar2
+typedef detail::tvec3
+< detail::uint8 > 
cl_uchar3
+typedef detail::tvec4
+< detail::uint8 > 
cl_uchar4
+typedef detail::uint32 cl_uint
+typedef detail::uint32 cl_uint1
+typedef detail::tvec2
+< detail::uint32 > 
cl_uint2
+typedef detail::tvec3
+< detail::uint32 > 
cl_uint3
+typedef detail::tvec4
+< detail::uint32 > 
cl_uint4
+typedef detail::uint64 cl_ulong
+typedef detail::uint64 cl_ulong1
+typedef detail::tvec2
+< detail::uint64 > 
cl_ulong2
+typedef detail::tvec3
+< detail::uint64 > 
cl_ulong3
+typedef detail::tvec4
+< detail::uint64 > 
cl_ulong4
+typedef detail::uint16 cl_ushort
+typedef detail::uint16 cl_ushort1
+typedef detail::tvec2
+< detail::uint16 > 
cl_ushort2
+typedef detail::tvec3
+< detail::uint16 > 
cl_ushort3
+typedef detail::tvec4
+< detail::uint16 > 
cl_ushort4
+

Detailed Description

+

OpenCL types.

+

<glm/gtx/ocl_type.hpp> need to be included to use these functionalities.

+
+ + + + + + diff --git a/doc/api/a00190.html b/doc/api/a00190.html new file mode 100644 index 00000000..c5385949 --- /dev/null +++ b/doc/api/a00190.html @@ -0,0 +1,220 @@ + + + + + +GLM_GTX_optimum_pow: Optimum pow + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_optimum_pow: Optimum pow
+
+
+ + + + + + + + + + + + +

+Functions

template<typename genType >
genType pow2 (const genType &x)
template<typename genType >
genType pow3 (const genType &x)
template<typename genType >
genType pow4 (const genType &x)
bool powOfTwo (int num)
detail::tvec2< bool > powOfTwo (const detail::tvec2< int > &x)
detail::tvec3< bool > powOfTwo (const detail::tvec3< int > &x)
detail::tvec4< bool > powOfTwo (const detail::tvec4< int > &x)
+

Detailed Description

+

Integer exponentiation of power functions.

+

<glm/gtx/optimum_pow.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
genType glm::gtx::pow2 (const genType & x)
+
+
+ +

Returns x raised to the power of 2.

+

From GLM_GTX_optimum_pow extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::gtx::pow3 (const genType & x)
+
+
+ +

Returns x raised to the power of 3.

+

From GLM_GTX_optimum_pow extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::gtx::pow4 (const genType & x)
+
+
+ +

Returns x raised to the power of 4.

+

From GLM_GTX_optimum_pow extension.

+ +
+
+ +
+
+ + + + + + + + +
bool glm::gtx::powOfTwo (int num)
+
+
+ +

Checks if the parameter is a power of 2 number.

+

From GLM_GTX_optimum_pow extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tvec2<bool> glm::gtx::powOfTwo (const detail::tvec2< int > & x)
+
+
+ +

Checks to determine if the parameter component are power of 2 numbers.

+

From GLM_GTX_optimum_pow extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tvec3<bool> glm::gtx::powOfTwo (const detail::tvec3< int > & x)
+
+
+ +

Checks to determine if the parameter component are power of 2 numbers.

+

From GLM_GTX_optimum_pow extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tvec4<bool> glm::gtx::powOfTwo (const detail::tvec4< int > & x)
+
+
+ +

Checks to determine if the parameter component are power of 2 numbers.

+

From GLM_GTX_optimum_pow extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00191.html b/doc/api/a00191.html new file mode 100644 index 00000000..75004c08 --- /dev/null +++ b/doc/api/a00191.html @@ -0,0 +1,124 @@ + + + + + +GLM_GTX_orthonormalize: Orthonormalize + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_orthonormalize: Orthonormalize
+
+
+ + + + + + +

+Functions

template<typename T >
detail::tmat3x3< T > orthonormalize (const detail::tmat3x3< T > &m)
template<typename T >
detail::tvec3< T > orthonormalize (const detail::tvec3< T > &x, const detail::tvec3< T > &y)
+

Detailed Description

+

Orthonormalize matrices.

+

<glm/gtx/orthonormalize.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
detail::tmat3x3<T> glm::orthonormalize (const detail::tmat3x3< T > & m)
+
+
+ +

Returns the orthonormalized matrix of m.

+

From GLM_GTX_orthonormalize extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec3<T> glm::orthonormalize (const detail::tvec3< T > & x,
const detail::tvec3< T > & y 
)
+
+
+ +

Orthonormalizes x according y.

+

From GLM_GTX_orthonormalize extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00192.html b/doc/api/a00192.html new file mode 100644 index 00000000..c670b7f7 --- /dev/null +++ b/doc/api/a00192.html @@ -0,0 +1,102 @@ + + + + + +GLM_GTX_perpendicular: Perpendicular + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_perpendicular: Perpendicular
+
+
+ + + + +

+Functions

template<typename vecType >
vecType perp (vecType const &x, vecType const &Normal)
+

Detailed Description

+

Perpendicular of a vector from other one.

+

<glm/gtx/perpendicular.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
vecType glm::perp (vecType const & x,
vecType const & Normal 
)
+
+
+ +

Projects x a perpendicular axis of Normal.

+

From GLM_GTX_perpendicular extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00193.html b/doc/api/a00193.html new file mode 100644 index 00000000..191af8fe --- /dev/null +++ b/doc/api/a00193.html @@ -0,0 +1,114 @@ + + + + + +GLM_GTX_polar_coordinates: Polar coordinates + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_polar_coordinates: Polar coordinates
+
+
+ + + + + + +

+Functions

template<typename T >
detail::tvec3< T > euclidean (detail::tvec3< T > const &polar)
template<typename T >
detail::tvec3< T > polar (detail::tvec3< T > const &euclidean)
+

Detailed Description

+

Conversion from Euclidean space to polar space and revert.

+

<glm/gtx/polar_coordinates.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
detail::tvec3<T> glm::euclidean (detail::tvec3< T > const & polar)
+
+
+ +

Convert Polar to Euclidean coordinates.

+

From GLM_GTX_polar_coordinates extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tvec3<T> glm::polar (detail::tvec3< T > const & euclidean)
+
+
+ +

Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.

+

From GLM_GTX_polar_coordinates extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00194.html b/doc/api/a00194.html new file mode 100644 index 00000000..aa522e6f --- /dev/null +++ b/doc/api/a00194.html @@ -0,0 +1,102 @@ + + + + + +GLM_GTX_projection: Projection + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_projection: Projection
+
+
+ + + + +

+Functions

template<typename vecType >
vecType proj (vecType const &x, vecType const &Normal)
+

Detailed Description

+

Projection of a vector to other one.

+

<glm/gtx/projection.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
vecType glm::proj (vecType const & x,
vecType const & Normal 
)
+
+
+ +

Projects x on Normal.

+

From GLM_GTX_projection extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00195.html b/doc/api/a00195.html new file mode 100644 index 00000000..b626f9f2 --- /dev/null +++ b/doc/api/a00195.html @@ -0,0 +1,782 @@ + + + + + +GLM_GTX_quaternion: Extented quaternion types and functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_quaternion: Extented quaternion types and functions
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename valType >
valType angle (detail::tquat< valType > const &x)
template<typename valType >
detail::tquat< valType > angleAxis (valType const &angle, valType const &x, valType const &y, valType const &z)
template<typename valType >
detail::tquat< valType > angleAxis (valType const &angle, detail::tvec3< valType > const &axis)
template<typename valType >
detail::tvec3< valType > axis (detail::tquat< valType > const &x)
template<typename valType >
detail::tvec3< valType > cross (detail::tquat< valType > const &q, detail::tvec3< valType > const &v)
template<typename valType >
detail::tvec3< valType > cross (detail::tvec3< valType > const &v, detail::tquat< valType > const &q)
template<typename valType >
detail::tvec3< valType > eulerAngles (detail::tquat< valType > const &x)
template<typename valType >
detail::tquat< valType > exp (detail::tquat< valType > const &q, valType const &exponent)
template<typename valType >
valType extractRealComponent (detail::tquat< valType > const &q)
template<typename T >
detail::tquat< T > fastMix (detail::tquat< T > const &x, detail::tquat< T > const &y, T const &a)
template<typename valType >
detail::tquat< valType > intermediate (detail::tquat< valType > const &prev, detail::tquat< valType > const &curr, detail::tquat< valType > const &next)
template<typename valType >
detail::tquat< valType > log (detail::tquat< valType > const &q)
template<typename valType >
valType pitch (detail::tquat< valType > const &x)
template<typename valType >
detail::tquat< valType > pow (detail::tquat< valType > const &x, valType const &y)
template<typename valType >
valType roll (detail::tquat< valType > const &x)
template<typename valType >
detail::tvec3< valType > rotate (detail::tquat< valType > const &q, detail::tvec3< valType > const &v)
template<typename valType >
detail::tvec4< valType > rotate (detail::tquat< valType > const &q, detail::tvec4< valType > const &v)
template<typename T >
detail::tquat< T > shortMix (detail::tquat< T > const &x, detail::tquat< T > const &y, T const &a)
template<typename valType >
detail::tquat< valType > squad (detail::tquat< valType > const &q1, detail::tquat< valType > const &q2, detail::tquat< valType > const &s1, detail::tquat< valType > const &s2, valType const &h)
template<typename valType >
detail::tmat3x3< valType > toMat3 (detail::tquat< valType > const &x)
template<typename valType >
detail::tmat4x4< valType > toMat4 (detail::tquat< valType > const &x)
template<typename valType >
detail::tquat< valType > toQuat (detail::tmat3x3< valType > const &x)
template<typename valType >
detail::tquat< valType > toQuat (detail::tmat4x4< valType > const &x)
template<typename valType >
valType yaw (detail::tquat< valType > const &x)
+

Detailed Description

+

Extented quaternion types and functions.

+

<glm/gtx/quaternion.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
valType glm::angle (detail::tquat< valType > const & x)
+
+
+ +

Returns the quaternion rotation angle.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tquat<valType> glm::angleAxis (valType const & angle,
valType const & x,
valType const & y,
valType const & z 
)
+
+
+ +

Build a quaternion from an angle and a normalized axis.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tquat<valType> glm::angleAxis (valType const & angle,
detail::tvec3< valType > const & axis 
)
+
+
+ +

Build a quaternion from an angle and a normalized axis.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tvec3<valType> glm::axis (detail::tquat< valType > const & x)
+
+
+ +

Returns the q rotation axis.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec3<valType> glm::cross (detail::tquat< valType > const & q,
detail::tvec3< valType > const & v 
)
+
+
+ +

Compute a cross product between a quaternion and a vector.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec3<valType> glm::cross (detail::tvec3< valType > const & v,
detail::tquat< valType > const & q 
)
+
+
+ +

Compute a cross product between a vector and a quaternion.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tvec3<valType> glm::eulerAngles (detail::tquat< valType > const & x)
+
+
+ +

Returns euler angles, yitch as x, yaw as y, roll as z.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tquat<valType> glm::exp (detail::tquat< valType > const & q,
valType const & exponent 
)
+
+
+ +

Returns a exp of a quaternion.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + +
valType glm::extractRealComponent (detail::tquat< valType > const & q)
+
+
+ +

Extract the real component of a quaternion.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tquat<T> glm::fastMix (detail::tquat< T > const & x,
detail::tquat< T > const & y,
T const & a 
)
+
+
+ +

Quaternion normalized linear interpolation.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tquat<valType> glm::intermediate (detail::tquat< valType > const & prev,
detail::tquat< valType > const & curr,
detail::tquat< valType > const & next 
)
+
+
+ +

Returns an intermediate control point for squad interpolation.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tquat<valType> glm::log (detail::tquat< valType > const & q)
+
+
+ +

Returns a log of a quaternion.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + +
valType glm::pitch (detail::tquat< valType > const & x)
+
+
+ +

Returns pitch value of euler angles in degrees.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tquat<valType> glm::pow (detail::tquat< valType > const & x,
valType const & y 
)
+
+
+ +

Returns x raised to the y power.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + +
valType glm::roll (detail::tquat< valType > const & x)
+
+
+ +

Returns roll value of euler angles in degrees.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec3<valType> glm::rotate (detail::tquat< valType > const & q,
detail::tvec3< valType > const & v 
)
+
+
+ +

Returns quarternion square root.

+

From GLM_GTX_quaternion extension. Rotates a 3 components vector by a quaternion. From GLM_GTX_transform extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec4<valType> glm::rotate (detail::tquat< valType > const & q,
detail::tvec4< valType > const & v 
)
+
+
+ +

Rotates a 4 components vector by a quaternion.

+

From GLM_GTX_transform extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tquat<T> glm::shortMix (detail::tquat< T > const & x,
detail::tquat< T > const & y,
T const & a 
)
+
+
+ +

Quaternion interpolation using the rotation short path.

+

From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tquat<valType> glm::squad (detail::tquat< valType > const & q1,
detail::tquat< valType > const & q2,
detail::tquat< valType > const & s1,
detail::tquat< valType > const & s2,
valType const & h 
)
+
+
+ +

Compute a point on a path according squad equation.

+

q1 and q2 are control points; s1 and s2 are intermediate control points. From GLM_GTX_quaternion extension.

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat3x3<valType> glm::toMat3 (detail::tquat< valType > const & x)
+
+
+ +

Converts a quaternion to a 3 * 3 matrix.

+

From GLM_GTX_quaternion extension.

+ +

Definition at line 189 of file gtx/quaternion.hpp.

+ +

References glm::mat3_cast().

+ +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<valType> glm::toMat4 (detail::tquat< valType > const & x)
+
+
+ +

Converts a quaternion to a 4 * 4 matrix.

+

From GLM_GTX_quaternion extension.

+ +

Definition at line 195 of file gtx/quaternion.hpp.

+ +

References glm::mat4_cast().

+ +
+
+ +
+
+ + + + + + + + +
detail::tquat<valType> glm::toQuat (detail::tmat3x3< valType > const & x)
+
+
+ +

Converts a 3 * 3 matrix to a quaternion.

+

From GLM_GTX_quaternion extension.

+ +

Definition at line 201 of file gtx/quaternion.hpp.

+ +

References glm::quat_cast().

+ +
+
+ +
+
+ + + + + + + + +
detail::tquat<valType> glm::toQuat (detail::tmat4x4< valType > const & x)
+
+
+ +

Converts a 4 * 4 matrix to a quaternion.

+

From GLM_GTX_quaternion extension.

+ +

Definition at line 207 of file gtx/quaternion.hpp.

+ +

References glm::quat_cast().

+ +
+
+ +
+
+ + + + + + + + +
valType glm::yaw (detail::tquat< valType > const & x)
+
+
+ +

Returns yaw value of euler angles in degrees.

+

From GLM_GTX_quaternion extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00196.html b/doc/api/a00196.html new file mode 100644 index 00000000..63b2b312 --- /dev/null +++ b/doc/api/a00196.html @@ -0,0 +1,199 @@ + + + + + +GLM_GTX_random: Random + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_random: Random
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+template<typename T >
compRand1 ()
+template<>
float compRand1 ()
+template<typename T >
compRand1 (T Min, T Max)
+template<typename T >
detail::tvec2< T > compRand2 (T Min, T Max)
+template<typename T >
detail::tvec2< T > compRand2 (const detail::tvec2< T > &Min, const detail::tvec2< T > &Max)
+template<typename T >
detail::tvec3< T > compRand3 (T Min, T Max)
+template<typename T >
detail::tvec3< T > compRand3 (const detail::tvec3< T > &Min, const detail::tvec3< T > &Max)
+template<typename T >
detail::tvec4< T > compRand4 (T Min, T Max)
+template<typename T >
detail::tvec3< T > compRand4 (const detail::tvec4< T > &Min, const detail::tvec4< T > &Max)
+template<typename T >
gaussRand1 (T mean, T std_deviation)
+template<typename T >
detail::tvec2< T > gaussRand2 (T mean, T std_deviation)
+template<typename T >
detail::tvec2< T > gaussRand2 (const detail::tvec2< T > &mean, T std_deviation)
+template<typename T >
detail::tvec2< T > gaussRand2 (T mean, const detail::tvec2< T > &std_deviation)
+template<typename T >
detail::tvec2< T > gaussRand2 (const detail::tvec2< T > &mean, const detail::tvec2< T > &std_deviation)
+template<typename T >
detail::tvec3< T > gaussRand3 (T mean, T std_deviation)
+template<typename T >
detail::tvec3< T > gaussRand3 (const detail::tvec3< T > &mean, T std_deviation)
+template<typename T >
detail::tvec3< T > gaussRand3 (T mean, const detail::tvec3< T > &std_deviation)
+template<typename T >
detail::tvec3< T > gaussRand3 (const detail::tvec3< T > &mean, const detail::tvec3< T > &std_deviation)
+template<typename T >
detail::tvec4< T > gaussRand4 (T mean, T std_deviation)
+template<typename T >
detail::tvec4< T > gaussRand4 (const detail::tvec4< T > &mean, T std_deviation)
+template<typename T >
detail::tvec4< T > gaussRand4 (T mean, const detail::tvec4< T > &std_deviation)
+template<typename T >
detail::tvec4< T > gaussRand4 (const detail::tvec4< T > &mean, const detail::tvec4< T > &std_deviation)
+template<typename T >
detail::tvec2< T > normalizedRand2 ()
+template<typename T >
detail::tvec2< T > normalizedRand2 (T Min, T Max)
+template<typename T >
detail::tvec3< T > normalizedRand3 ()
+template<typename T >
detail::tvec3< T > normalizedRand3 (T Min, T Max)
template<typename T >
signedRand1 ()
+template<>
float signedRand1 ()
+template<typename T >
detail::tvec2< T > signedRand2 ()
+template<typename T >
detail::tvec3< T > signedRand3 ()
+template<typename T >
detail::tvec4< T > signedRand4 ()
+template<typename T >
detail::tvec2< T > vecRand2 ()
+template<typename T >
detail::tvec2< T > vecRand2 (T MinRadius, T MaxRadius)
+template<typename T >
detail::tvec3< T > vecRand3 ()
+template<typename T >
detail::tvec3< T > vecRand3 (T MinRadius, T MaxRadius)
+template<typename T >
detail::tvec4< T > vecRand4 ()
+template<typename T >
detail::tvec4< T > vecRand4 (T MinRadius, T MaxRadius)
+

Detailed Description

+

Generate random number from various distribution methods.

+

<glm/gtx/random.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + +
T glm::signedRand1 ()
+
+
+ +

Generate a random number in the interval [-1, 1], according a linear distribution.

+

From GLM_GTX_random extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00197.html b/doc/api/a00197.html new file mode 100644 index 00000000..454ea751 --- /dev/null +++ b/doc/api/a00197.html @@ -0,0 +1,146 @@ + + + + + +GLM_GTX_raw_data: Raw data + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_raw_data: Raw data
+
+
+ + + + + + +

+Typedefs

typedef uint8 byte
typedef uint32 dword
typedef uint64 qword
typedef uint16 word
+

Detailed Description

+

Projection of a vector to other one.

+

<glm/gtx/raw_data.hpp> need to be included to use these functionalities.

+

Typedef Documentation

+ +
+
+ + + + +
typedef uint8 byte
+
+
+ +

Type for byte numbers.

+

From GLM_GTX_raw_data extension.

+ +

Definition at line 56 of file raw_data.hpp.

+ +
+
+ +
+
+ + + + +
typedef uint32 dword
+
+
+ +

Type for dword numbers.

+

From GLM_GTX_raw_data extension.

+ +

Definition at line 64 of file raw_data.hpp.

+ +
+
+ +
+
+ + + + +
typedef uint64 qword
+
+
+ +

Type for qword numbers.

+

From GLM_GTX_raw_data extension.

+ +

Definition at line 68 of file raw_data.hpp.

+ +
+
+ +
+
+ + + + +
typedef uint16 word
+
+
+ +

Type for word numbers.

+

From GLM_GTX_raw_data extension.

+ +

Definition at line 60 of file raw_data.hpp.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00198.html b/doc/api/a00198.html new file mode 100644 index 00000000..38d8255f --- /dev/null +++ b/doc/api/a00198.html @@ -0,0 +1,334 @@ + + + + + +GLM_GTX_reciprocal: Reciprocal + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_reciprocal: Reciprocal
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
genType acot (genType const &x)
template<typename genType >
genType acoth (genType const &x)
template<typename genType >
genType acsc (genType const &x)
template<typename genType >
genType acsch (genType const &x)
template<typename genType >
genType asec (genType const &x)
template<typename genType >
genType asech (genType const &x)
template<typename genType >
genType cot (genType const &angle)
template<typename genType >
genType coth (genType const &angle)
template<typename genType >
genType csc (genType const &angle)
template<typename genType >
genType csch (genType const &angle)
template<typename genType >
genType sec (genType const &angle)
template<typename genType >
genType sech (genType const &angle)
+

Detailed Description

+

Define secant, cosecant and cotangent functions.

+

<glm/gtx/reciprocal.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
genType glm::acot (genType const & x)
+
+
+ +

Inverse cotangent function.

+

From GLM_GTX_reciprocal extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::acoth (genType const & x)
+
+
+ +

Inverse cotangent hyperbolic function.

+

From GLM_GTX_reciprocal extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::acsc (genType const & x)
+
+
+ +

Inverse cosecant function.

+

From GLM_GTX_reciprocal extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::acsch (genType const & x)
+
+
+ +

Inverse cosecant hyperbolic function.

+

From GLM_GTX_reciprocal extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::asec (genType const & x)
+
+
+ +

Inverse secant function.

+

From GLM_GTX_reciprocal extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::asech (genType const & x)
+
+
+ +

Inverse secant hyperbolic function.

+

From GLM_GTX_reciprocal extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::cot (genType const & angle)
+
+
+ +

Cotangent function.

+

adjacent / opposite or 1 / tan(x) From GLM_GTX_reciprocal extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::coth (genType const & angle)
+
+
+ +

Cotangent hyperbolic function.

+

From GLM_GTX_reciprocal extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::csc (genType const & angle)
+
+
+ +

Cosecant function.

+

hypotenuse / opposite or 1 / sin(x) From GLM_GTX_reciprocal extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::csch (genType const & angle)
+
+
+ +

Cosecant hyperbolic function.

+

From GLM_GTX_reciprocal extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::sec (genType const & angle)
+
+
+ +

Secant function.

+

hypotenuse / adjacent or 1 / cos(x) From GLM_GTX_reciprocal extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::sech (genType const & angle)
+
+
+ +

Secant hyperbolic function.

+

From GLM_GTX_reciprocal extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00199.html b/doc/api/a00199.html new file mode 100644 index 00000000..710e5272 --- /dev/null +++ b/doc/api/a00199.html @@ -0,0 +1,402 @@ + + + + + +GLM_GTX_rotate_vector: Rotate vector + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_rotate_vector: Rotate vector
+
+
+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat4x4< T > orientation (detail::tvec3< T > const &Normal, detail::tvec3< T > const &Up)
template<typename T >
detail::tvec2< T > rotate (detail::tvec2< T > const &v, T const &angle)
template<typename T >
detail::tvec3< T > rotate (detail::tvec3< T > const &v, T const &angle, detail::tvec3< T > const &normal)
template<typename T >
detail::tvec4< T > rotate (detail::tvec4< T > const &v, T const &angle, detail::tvec3< T > const &normal)
template<typename T >
detail::tvec3< T > rotateX (detail::tvec3< T > const &v, T const &angle)
template<typename T >
detail::tvec4< T > rotateX (detail::tvec4< T > const &v, T const &angle)
template<typename T >
detail::tvec3< T > rotateY (detail::tvec3< T > const &v, T const &angle)
template<typename T >
detail::tvec4< T > rotateY (detail::tvec4< T > const &v, T const &angle)
template<typename T >
detail::tvec3< T > rotateZ (detail::tvec3< T > const &v, T const &angle)
template<typename T >
detail::tvec4< T > rotateZ (detail::tvec4< T > const &v, T const &angle)
+

Detailed Description

+

Function to directly rotate a vector.

+

<glm/gtx/rotate_vector.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::orientation (detail::tvec3< T > const & Normal,
detail::tvec3< T > const & Up 
)
+
+
+ +

Build a rotation matrix from a normal and a up vector.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec2<T> glm::rotate (detail::tvec2< T > const & v,
T const & angle 
)
+
+
+ +

Rotate a two dimensional vector.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tvec3<T> glm::rotate (detail::tvec3< T > const & v,
T const & angle,
detail::tvec3< T > const & normal 
)
+
+
+ +

Rotate a three dimensional vector around an axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tvec4<T> glm::rotate (detail::tvec4< T > const & v,
T const & angle,
detail::tvec3< T > const & normal 
)
+
+
+ +

Rotate a four dimensional vector around an axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec3<T> glm::rotateX (detail::tvec3< T > const & v,
T const & angle 
)
+
+
+ +

Rotate a three dimensional vector around the X axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec4<T> glm::rotateX (detail::tvec4< T > const & v,
T const & angle 
)
+
+
+ +

Rotate a four dimentionnals vector around the X axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec3<T> glm::rotateY (detail::tvec3< T > const & v,
T const & angle 
)
+
+
+ +

Rotate a three dimensional vector around the Y axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec4<T> glm::rotateY (detail::tvec4< T > const & v,
T const & angle 
)
+
+
+ +

Rotate a four dimensional vector around the X axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec3<T> glm::rotateZ (detail::tvec3< T > const & v,
T const & angle 
)
+
+
+ +

Rotate a three dimensional vector around the Z axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tvec4<T> glm::rotateZ (detail::tvec4< T > const & v,
T const & angle 
)
+
+
+ +

Rotate a four dimensional vector around the X axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00200.html b/doc/api/a00200.html new file mode 100644 index 00000000..412bfaf2 --- /dev/null +++ b/doc/api/a00200.html @@ -0,0 +1,62 @@ + + + + + +GLM_GTX_simd_mat4: SIMD mat4 type and functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
GLM_GTX_simd_mat4: SIMD mat4 type and functions
+
+
+

SIMD implementation of mat4 type.

+

<glm/gtx/simd_mat4.hpp> need to be included to use these functionalities.

+
+ + + + + + diff --git a/doc/api/a00201.html b/doc/api/a00201.html new file mode 100644 index 00000000..c43a10cf --- /dev/null +++ b/doc/api/a00201.html @@ -0,0 +1,62 @@ + + + + + +GLM_GTX_simd_vec4: SIMD vec4 type and functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
GLM_GTX_simd_vec4: SIMD vec4 type and functions
+
+
+

SIMD implementation of vec4 type.

+

<glm/gtx/simd_vec4.hpp> need to be included to use these functionalities.

+
+ + + + + + diff --git a/doc/api/a00202.html b/doc/api/a00202.html new file mode 100644 index 00000000..92a2e7bc --- /dev/null +++ b/doc/api/a00202.html @@ -0,0 +1,220 @@ + + + + + +GLM_GTX_spline: Spline + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_spline: Spline
+
+
+ + + + + + + + +

+Functions

template<typename genType >
genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
template<typename genType >
genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
template<typename genType >
genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
+

Detailed Description

+

Spline functions.

+

<glm/gtx/spline.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
genType glm::catmullRom (genType const & v1,
genType const & v2,
genType const & v3,
genType const & v4,
typename genType::value_type const & s 
)
+
+
+ +

Return a point from a catmull rom curve.

+

From GLM_GTX_spline extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
genType glm::cubic (genType const & v1,
genType const & v2,
genType const & v3,
genType const & v4,
typename genType::value_type const & s 
)
+
+
+ +

Return a point from a cubic curve.

+

From GLM_GTX_spline extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
genType glm::hermite (genType const & v1,
genType const & t1,
genType const & v2,
genType const & t2,
typename genType::value_type const & s 
)
+
+
+ +

Return a point from a hermite curve.

+

From GLM_GTX_spline extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00203.html b/doc/api/a00203.html new file mode 100644 index 00000000..bec7d4cb --- /dev/null +++ b/doc/api/a00203.html @@ -0,0 +1,190 @@ + + + + + +GLM_GTX_std_based_type: Add types based on STL + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_std_based_type: Add types based on STL
+
+
+ + + + + + + + +

+Typedefs

typedef detail::tvec2
+< std::size_t > 
size2
typedef detail::tvec2
+< std::size_t > 
size2_t
typedef detail::tvec3
+< std::size_t > 
size3
typedef detail::tvec3
+< std::size_t > 
size3_t
typedef detail::tvec4
+< std::size_t > 
size4
typedef detail::tvec4
+< std::size_t > 
size4_t
+

Detailed Description

+

Adds vector types based on STL value types.

+

<glm/gtx/std_based_type.hpp> need to be included to use these functionalities.

+

Typedef Documentation

+ +
+
+ + + + +
typedef detail::tvec2<std::size_t> size2
+
+
+ +

Vector type based of two std::size_t components.

+
See also:
- GLM_GTX_std_based_type
+ +

Definition at line 56 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec2<std::size_t> size2_t
+
+
+ +

Vector type based of two std::size_t components.

+
See also:
- GLM_GTX_std_based_type
+ +

Definition at line 68 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<std::size_t> size3
+
+
+ +

Vector type based of three std::size_t components.

+
See also:
- GLM_GTX_std_based_type
+ +

Definition at line 60 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec3<std::size_t> size3_t
+
+
+ +

Vector type based of three std::size_t components.

+
See also:
- GLM_GTX_std_based_type
+ +

Definition at line 72 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<std::size_t> size4
+
+
+ +

Vector type based of four std::size_t components.

+
See also:
- GLM_GTX_std_based_type
+ +

Definition at line 64 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::tvec4<std::size_t> size4_t
+
+
+ +

Vector type based of four std::size_t components.

+
See also:
- GLM_GTX_std_based_type
+ +

Definition at line 76 of file std_based_type.hpp.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00204.html b/doc/api/a00204.html new file mode 100644 index 00000000..ca39c8f3 --- /dev/null +++ b/doc/api/a00204.html @@ -0,0 +1,92 @@ + + + + + +GLM_GTX_string_cast: String cast + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_string_cast: String cast
+
+
+ + + + +

+Functions

template<typename genType >
std::string to_string (genType const &x)
+

Detailed Description

+

Setup strings for GLM type values.

+

<glm/gtx/string_cast.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
std::string glm::to_string (genType const & x)
+
+
+ +

Create a string from a GLM type value.

+

From GLM_GTX_string_cast extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00205.html b/doc/api/a00205.html new file mode 100644 index 00000000..d415c0e5 --- /dev/null +++ b/doc/api/a00205.html @@ -0,0 +1,422 @@ + + + + + +GLM_GTX_transform: Extented transformation matrices + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_transform: Extented transformation matrices
+
+
+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat4x4< T > rotate (T angle, T x, T y, T z)
template<typename T >
detail::tmat4x4< T > rotate (T angle, detail::tvec3< T > const &v)
template<typename T >
detail::tmat4x4< T > rotate (detail::tmat4x4< T > const &m, T angle, T x, T y, T z)
template<typename T >
detail::tmat4x4< T > scale (T x, T y, T z)
template<typename T >
detail::tmat4x4< T > scale (detail::tmat4x4< T > const &m, T x, T y, T z)
template<typename T >
detail::tmat4x4< T > scale (detail::tvec3< T > const &v)
template<typename T >
detail::tmat4x4< T > translate (T x, T y, T z)
template<typename T >
detail::tmat4x4< T > translate (detail::tmat4x4< T > const &m, T x, T y, T z)
template<typename T >
detail::tmat4x4< T > translate (detail::tvec3< T > const &v)
+

Detailed Description

+

Add transformation matrices.

+

<glm/gtx/transform.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::rotate (angle,
x,
y,
z 
)
+
+
+ +

Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.

+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::rotate (angle,
detail::tvec3< T > const & v 
)
+
+
+ +

Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.

+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::rotate (detail::tmat4x4< T > const & m,
angle,
x,
y,
z 
)
+
+
+ +

Transforms a matrix with a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.

+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::scale (x,
y,
z 
)
+
+
+ +

Builds a scale 4 * 4 matrix created from 3 scalars.

+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::scale (detail::tmat4x4< T > const & m,
x,
y,
z 
)
+
+
+ +

Transforms a matrix with a scale 4 * 4 matrix created from 3 scalars.

+ + +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<T> glm::scale (detail::tvec3< T > const & v)
+
+
+ +

Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.

+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::translate (x,
y,
z 
)
+
+
+ +

Builds a translation 4 * 4 matrix created from 3 scalars.

+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::translate (detail::tmat4x4< T > const & m,
x,
y,
z 
)
+
+
+ +

Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.

+ + +
+
+ +
+
+ + + + + + + + +
detail::tmat4x4<T> glm::translate (detail::tvec3< T > const & v)
+
+
+ +

Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.

+ + +
+
+
+ + + + + + diff --git a/doc/api/a00206.html b/doc/api/a00206.html new file mode 100644 index 00000000..6bed327b --- /dev/null +++ b/doc/api/a00206.html @@ -0,0 +1,381 @@ + + + + + +GLM_GTX_transform2: Extra transformation matrices + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_transform2: Extra transformation matrices
+
+
+ + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
detail::tmat3x3< T > proj2D (const detail::tmat3x3< T > &m, const detail::tvec3< T > &normal)
template<typename T >
detail::tmat4x4< T > proj3D (const detail::tmat4x4< T > &m, const detail::tvec3< T > &normal)
template<typename valType >
detail::tmat4x4< valType > scaleBias (valType scale, valType bias)
template<typename valType >
detail::tmat4x4< valType > scaleBias (detail::tmat4x4< valType > const &m, valType scale, valType bias)
template<typename T >
detail::tmat3x3< T > shearX2D (detail::tmat3x3< T > const &m, T y)
template<typename T >
detail::tmat4x4< T > shearX3D (const detail::tmat4x4< T > &m, T y, T z)
template<typename T >
detail::tmat3x3< T > shearY2D (detail::tmat3x3< T > const &m, T x)
template<typename T >
detail::tmat4x4< T > shearY3D (const detail::tmat4x4< T > &m, T x, T z)
template<typename T >
detail::tmat4x4< T > shearZ3D (const detail::tmat4x4< T > &m, T x, T y)
+

Detailed Description

+

Add extra transformation matrices.

+

<glm/gtx/transform2.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat3x3<T> glm::proj2D (const detail::tmat3x3< T > & m,
const detail::tvec3< T > & normal 
)
+
+
+ +

Build planar projection matrix along normal axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::proj3D (const detail::tmat4x4< T > & m,
const detail::tvec3< T > & normal 
)
+
+
+ +

Build planar projection matrix along normal axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat4x4<valType> glm::scaleBias (valType scale,
valType bias 
)
+
+
+ +

Build a scale bias matrix.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<valType> glm::scaleBias (detail::tmat4x4< valType > const & m,
valType scale,
valType bias 
)
+
+
+ +

Build a scale bias matrix.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat3x3<T> glm::shearX2D (detail::tmat3x3< T > const & m,
y 
)
+
+
+ +

Transforms a matrix with a shearing on X axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::shearX3D (const detail::tmat4x4< T > & m,
y,
z 
)
+
+
+ +

Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
detail::tmat3x3<T> glm::shearY2D (detail::tmat3x3< T > const & m,
x 
)
+
+
+ +

Transforms a matrix with a shearing on Y axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::shearY3D (const detail::tmat4x4< T > & m,
x,
z 
)
+
+
+ +

Transforms a matrix with a shearing on Y axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
detail::tmat4x4<T> glm::shearZ3D (const detail::tmat4x4< T > & m,
x,
y 
)
+
+
+ +

Transforms a matrix with a shearing on Z axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00207.html b/doc/api/a00207.html new file mode 100644 index 00000000..02d3c562 --- /dev/null +++ b/doc/api/a00207.html @@ -0,0 +1,242 @@ + + + + + +GLM_GTX_ulp: Accuracy measurement + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_ulp: Accuracy measurement
+
+
+ + + + + + + + + + + + + + +

+Functions

template<typename T >
uint float_distance (T const &x, T const &y)
template<typename T , template< typename > class vecType>
vecType< uint > float_distance (vecType< T > const &x, vecType< T > const &y)
template<typename genType >
genType next_float (genType const &x)
template<typename genType >
genType next_float (genType const &x, uint const &Distance)
template<typename genType >
genType prev_float (genType const &x)
template<typename genType >
genType prev_float (genType const &x, uint const &Distance)
+

Detailed Description

+

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/gtx/ulp.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
uint glm::float_distance (T const & x,
T const & y 
)
+
+
+ +

Return the distance in the number of ULP between 2 scalars.

+

From GLM_GTX_ulp extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
vecType<uint> glm::float_distance (vecType< T > const & x,
vecType< T > const & y 
)
+
+
+ +

Return the distance in the number of ULP between 2 vectors.

+

From GLM_GTX_ulp extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::next_float (genType const & x)
+
+
+ +

Return the next ULP value(s) after the input value(s).

+

From GLM_GTX_ulp extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::next_float (genType const & x,
uint const & Distance 
)
+
+
+ +

Return the value(s) ULP distance after the input value(s).

+

From GLM_GTX_ulp extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::prev_float (genType const & x)
+
+
+ +

Return the previous ULP value(s) before the input value(s).

+

From GLM_GTX_ulp extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genType glm::prev_float (genType const & x,
uint const & Distance 
)
+
+
+ +

Return the value(s) ULP distance before the input value(s).

+

From GLM_GTX_ulp extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00208.html b/doc/api/a00208.html new file mode 100644 index 00000000..8e2f8aec --- /dev/null +++ b/doc/api/a00208.html @@ -0,0 +1,62 @@ + + + + + +GLM_GTX_vec1: Add vec1 types + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
GLM_GTX_vec1: Add vec1 types
+
+
+

Add vec1, ivec1, uvec1 and bvec1 types.

+

<glm/gtx/vec1.hpp> need to be included to use these functionalities.

+
+ + + + + + diff --git a/doc/api/a00209.html b/doc/api/a00209.html new file mode 100644 index 00000000..c26fdb85 --- /dev/null +++ b/doc/api/a00209.html @@ -0,0 +1,202 @@ + + + + + +GLM_GTX_vector_access: Vector access + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_vector_access: Vector access
+
+
+ + + + + + + + +

+Functions

template<typename valType >
void set (detail::tvec2< valType > &v, valType const &x, valType const &y)
template<typename valType >
void set (detail::tvec3< valType > &v, valType const &x, valType const &y, valType const &z)
template<typename valType >
void set (detail::tvec4< valType > &v, valType const &x, valType const &y, valType const &z, valType const &w)
+

Detailed Description

+

Function to set values to vectors.

+

<glm/gtx/vector_access.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void glm::set (detail::tvec2< valType > & v,
valType const & x,
valType const & y 
)
+
+
+ +

Set values to a 2 components vector.

+

From GLM_GTX_vector_access extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void glm::set (detail::tvec3< valType > & v,
valType const & x,
valType const & y,
valType const & z 
)
+
+
+ +

Set values to a 3 components vector.

+

From GLM_GTX_vector_access extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void glm::set (detail::tvec4< valType > & v,
valType const & x,
valType const & y,
valType const & z,
valType const & w 
)
+
+
+ +

Set values to a 4 components vector.

+

From GLM_GTX_vector_access extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00210.html b/doc/api/a00210.html new file mode 100644 index 00000000..fc7e3b19 --- /dev/null +++ b/doc/api/a00210.html @@ -0,0 +1,173 @@ + + + + + +GLM_GTX_vector_angle: Vector angle + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_vector_angle: Vector angle
+
+
+ + + + + + + + +

+Functions

template<typename vecType >
GLM_FUNC_QUALIFIER
+vecType::value_type 
angle (vecType const &x, vecType const &y)
template<typename T >
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec2< T > const &x, detail::tvec2< T > const &y)
template<typename T >
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec3< T > const &x, detail::tvec3< T > const &y, detail::tvec3< T > const &ref)
+

Detailed Description

+

Compute angle between vectors.

+

<glm/gtx/vector_angle.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_QUALIFIER vecType::value_type glm::angle (vecType const & x,
vecType const & y 
)
+
+
+ +

Returns the absolute angle between two vectors Parameters need to be normalized.

+

From GLM_GTX_vector_angle extension

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_QUALIFIER T glm::orientedAngle (detail::tvec2< T > const & x,
detail::tvec2< T > const & y 
)
+
+
+ +

Returns the oriented angle between two 2d vectors Parameters need to be normalized.

+

From GLM_GTX_vector_angle extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_QUALIFIER T glm::orientedAngle (detail::tvec3< T > const & x,
detail::tvec3< T > const & y,
detail::tvec3< T > const & ref 
)
+
+
+ +

Returns the oriented angle between two 3d vectors based from a reference axis.

+

Parameters need to be normalized. From GLM_GTX_vector_angle extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00211.html b/doc/api/a00211.html new file mode 100644 index 00000000..dfb1c3b5 --- /dev/null +++ b/doc/api/a00211.html @@ -0,0 +1,312 @@ + + + + + +GLM_GTX_vector_query: Vector query + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_vector_query: Vector query
+
+
+ + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
bool areCollinear (genType const &v0, genType const &v1, typename genType::value_type const &epsilon)
template<typename genType >
bool areOrthogonal (genType const &v0, genType const &v1, typename genType::value_type const &epsilon)
template<typename genType >
bool areOrthonormal (genType const &v0, genType const &v1, typename genType::value_type const &epsilon)
template<typename genType , template< typename > class vecType>
bool isNormalized (vecType< genType > const &v, genType const &epsilon)
template<typename valType >
bool isNull (detail::tvec2< valType > const &v, valType const &epsilon)
template<typename valType >
bool isNull (detail::tvec3< valType > const &v, valType const &epsilon)
template<typename valType >
bool isNull (detail::tvec4< valType > const &v, valType const &epsilon)
+

Detailed Description

+

Query informations of vector types.

+

<glm/gtx/vector_query.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool glm::areCollinear (genType const & v0,
genType const & v1,
typename genType::value_type const & epsilon 
)
+
+
+ +

Check whether two vectors are collinears.

+

From GLM_GTX_vector_query extensions.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool glm::areOrthogonal (genType const & v0,
genType const & v1,
typename genType::value_type const & epsilon 
)
+
+
+ +

Check whether two vectors are orthogonals.

+

From GLM_GTX_vector_query extensions.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool glm::areOrthonormal (genType const & v0,
genType const & v1,
typename genType::value_type const & epsilon 
)
+
+
+ +

Check whether two vectors are orthonormal.

+

From GLM_GTX_vector_query extensions.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isNormalized (vecType< genType > const & v,
genType const & epsilon 
)
+
+
+ +

Check whether a vector is normalized.

+

From GLM_GTX_vector_query extensions.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isNull (detail::tvec2< valType > const & v,
valType const & epsilon 
)
+
+
+ +

Check whether a vector is null.

+

From GLM_GTX_vector_query extensions.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isNull (detail::tvec3< valType > const & v,
valType const & epsilon 
)
+
+
+ +

Check whether a vector is null.

+

From GLM_GTX_vector_query extensions.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
bool glm::isNull (detail::tvec4< valType > const & v,
valType const & epsilon 
)
+
+
+ +

Check whether a vector is null.

+

From GLM_GTX_vector_query extensions.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00212.html b/doc/api/a00212.html new file mode 100644 index 00000000..4b5a7116 --- /dev/null +++ b/doc/api/a00212.html @@ -0,0 +1,231 @@ + + + + + +GLM_GTX_verbose_operator: Verbose operator + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_verbose_operator: Verbose operator
+
+
+ + + + + + + + + + + + +

+Functions

template<typename genTypeT , typename genTypeU >
genTypeT add (genTypeT const &a, genTypeU const &b)
template<typename genTypeT , typename genTypeU >
genTypeT div (genTypeT const &a, genTypeU const &b)
template<typename genTypeT , typename genTypeU , typename genTypeV >
genTypeT mad (genTypeT const &a, genTypeU const &b, genTypeV const &c)
template<typename genTypeT , typename genTypeU >
genTypeT mul (genTypeT const &a, genTypeU const &b)
template<typename genTypeT , typename genTypeU >
genTypeT sub (genTypeT const &a, genTypeU const &b)
+

Detailed Description

+

Use words to replace operators.

+

<glm/gtx/verbose_operator.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
genTypeT glm::add (genTypeT const & a,
genTypeU const & b 
)
+
+
+ +

Addition of two values From GLM_GTX_verbose_operator extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genTypeT glm::div (genTypeT const & a,
genTypeU const & b 
)
+
+
+ +

Division of two values From GLM_GTX_verbose_operator extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
genTypeT glm::mad (genTypeT const & a,
genTypeU const & b,
genTypeV const & c 
)
+
+
+ +

Multiplication and addition of three values From GLM_GTX_verbose_operator extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genTypeT glm::mul (genTypeT const & a,
genTypeU const & b 
)
+
+
+ +

Multiplication of two values From GLM_GTX_verbose_operator extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
genTypeT glm::sub (genTypeT const & a,
genTypeU const & b 
)
+
+
+ +

Substration of two values From GLM_GTX_verbose_operator extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00213.html b/doc/api/a00213.html new file mode 100644 index 00000000..515db789 --- /dev/null +++ b/doc/api/a00213.html @@ -0,0 +1,133 @@ + + + + + +GLM_GTX_wrap: Texture coordinate wrap modes + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
GLM_GTX_wrap: Texture coordinate wrap modes
+
+
+ + + + + + + + +

+Functions

template<typename genType >
genType clamp (genType const &Texcoord)
template<typename genType >
genType mirrorRepeat (genType const &Texcoord)
template<typename genType >
genType repeat (genType const &Texcoord)
+

Detailed Description

+

Wrapping mode of texture coordinates.

+

<glm/gtx/wrap.hpp> need to be included to use these functionalities.

+

Function Documentation

+ +
+
+ + + + + + + + +
genType glm::clamp (genType const & Texcoord)
+
+
+ +

Simulate GL_CLAMP OpenGL wrap mode From GLM_GTX_wrap extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::mirrorRepeat (genType const & Texcoord)
+
+
+ +

Simulate GL_MIRROR_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension.

+ +
+
+ +
+
+ + + + + + + + +
genType glm::repeat (genType const & Texcoord)
+
+
+ +

Simulate GL_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension.

+ +
+
+
+ + + + + + diff --git a/doc/api/a00214.html b/doc/api/a00214.html new file mode 100644 index 00000000..900fdca5 --- /dev/null +++ b/doc/api/a00214.html @@ -0,0 +1,62 @@ + + + + + +GLM_VIRTREV_xstream: xml like output + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
GLM_VIRTREV_xstream: xml like output
+
+
+

Streaming vector and matrix in a xml way.

+

Include <glm/virtrev/xstream.hpp> for this functionality.

+
+ + + + + + diff --git a/doc/api/a00215.html b/doc/api/a00215.html new file mode 100644 index 00000000..d2c7a3d5 --- /dev/null +++ b/doc/api/a00215.html @@ -0,0 +1,76 @@ + + + + + +Todo List + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
Todo List
+
+
+
+
Member glm::bitCount (genIUType< T > const &Value)
+
Clarify the declaration to specify that scalars are suported.
+
Member glm::epsilon ()
+
Implement epsilon for half-precision floating point type.
+
Member glm::findLSB (genIUType< T > const &Value)
+
Clarify the declaration to specify that scalars are suported.
+
Member glm::findMSB (genIUType< T > const &Value)
+
Clarify the declaration to specify that scalars are suported.
+
Member glm::intBitsToFloat (genIType const &value)
+
Clarify this declaration, we don't need to actually specify the return type
+
Member glm::outerProduct (vecType const &c, vecType const &r)
+
Clarify the declaration to specify that matType doesn't have to be provided when used.
+
Member glm::uintBitsToFloat (genUType const &value)
+
Clarify this declaration, we don't need to actually specify the return type
+
+
+ + + + + + diff --git a/doc/api/a00217.html b/doc/api/a00217.html new file mode 100644 index 00000000..1d893b75 --- /dev/null +++ b/doc/api/a00217.html @@ -0,0 +1,74 @@ + + + + + +Member List + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + + +
+
+
+
half Member List
+
+
+This is the complete list of members for half, including all inherited members. +
+ + + + + + diff --git a/doc/api/a00218.html b/doc/api/a00218.html new file mode 100644 index 00000000..04dff381 --- /dev/null +++ b/doc/api/a00218.html @@ -0,0 +1,75 @@ + + + + + +Member List + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + + +
+
+
+
tquat< T > Member List
+
+
+This is the complete list of members for tquat< T >, including all inherited members. + +
tquat(tvec3< T > const &eulerAngles)tquat< T > [explicit]
+ + + + + + diff --git a/doc/api/annotated.html b/doc/api/annotated.html new file mode 100644 index 00000000..709985ae --- /dev/null +++ b/doc/api/annotated.html @@ -0,0 +1,70 @@ + + + + + +Class List + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+ + +
half16-bit floating point type
tquat< T >Template for quaternion
+
+ + + + + + diff --git a/doc/api/bc_s.png b/doc/api/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..51ba0066debbeac813d4014d805dc95ebd5b532e GIT binary patch literal 705 zcmV;y0zUnTP)rF$rQRw6Q(&UpP1C2j9>6opbR!_oV&F*Ar#jFVPDcrqyulXW;j+8j#k`kzKrw^%mxu{{V1|%gWybaP{#p01Ow~ zB}u2{E{(}bUp!#{_s(CTu-lqpI0GO7kSiTS0H7s=EN*pJI7&&m$E!@mK+B_{Xx(nj zH0-yS_)(8nX^er(4+o=lHsk1YNuDJFz~=EOD_HN~zW*iu%I90GV!oc&bWQk_4geq* z?tP92Q)0;sZ>cqtNr zOitc-rw&Cz$YQa>g0&|*N&WS=YH&7966!J}!88AdX)_x%jMh)j1wW9Z z*IvhmrFxz{vu`%7PR#}L0f5_4b|fCOXQid+8KYfFC_DlHq_*W{G_-J(_zH3*04SWE z4=w=!x2-hRp+Pe7IRei{XXZoQv3aO*zlhc|&K$GAain(EABqhLSF-2uT86!Xj#Z0B zU3k_Xawp7W)%kt^=&@!R3-to)mi?gz3E*IJe>$ba=d_9I2l8b9axei@p6k1qW)^BJ zqHa=NSguR@Srtva-n?v)XN=T%7nVoVfN2cYfePZIbCZQi`9_mavc00000NkvXXu0mjfn{!2m literal 0 HcmV?d00001 diff --git a/doc/api/classes.html b/doc/api/classes.html new file mode 100644 index 00000000..ee469fb4 --- /dev/null +++ b/doc/api/classes.html @@ -0,0 +1,76 @@ + + + + + +Class Index + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
Class Index
+
+
+
H | T
+ + + + + +
  H  
+
  T  
+
half (glm::detail)   tquat (glm::detail)   
+
H | T
+
+ + + + + + diff --git a/doc/api/closed.png b/doc/api/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d4bd9fef2272c74b94762c9e2496177017775e GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VuAVNAAr*{o?>h22DDp4|bgj*t z)u^AqcA-V@guRYpb17F<&b?_~8HV>~XqWvB;^$!VVSTy0!eQcJp_yD7TIQA>7dijs YXf6~H5cs^Q6KEiVr>mdKI;Vst0NsWqGynhq literal 0 HcmV?d00001 diff --git a/doc/api/doxygen.css b/doc/api/doxygen.css new file mode 100644 index 00000000..dc7b4881 --- /dev/null +++ b/doc/api/doxygen.css @@ -0,0 +1,873 @@ +/* The standard CSS for doxygen */ + +body +{ + background-image:url('background.jpg'); + background-attachment:fixed; + background-position:center; + background-repeat:no-repeat; +} + +body, table, div, p, dl +{ + font-family: Lucida Grande, Calibri, Verdana; + font-size: 14px; +} + +body +{ + margin:0px; + padding:0px; + background-color:#000000; + background-repeat:no-repeat; + background-position:center center; + background-attachment:fixed; +/* + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFF8F0 5%, #FFEEDD 95%, #FFDDBB); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFF8F0), color-stop(0.05,#FFF8F0), color-stop(0.95,#FFEEDD), to(#FFDDBB)); +*/ + min-height:1200px; + overflow:auto; +} + +p +{ + background-color:#FFFFFF; +} + +/* @group Heading Levels */ + +h1 +{ + color:#FF8000; + font-family: Lucida Grande, Cambria, Georgia; + font-size: 24px; + font-weight: bold; +} + +h2 +{ + color:#FF8000; + font-family: Lucida Grande, Cambria, Georgia; + font-size: 18px; + font-weight: bold; +} + +h3 { + font-family: Lucida Grande, Cambria, Georgia; + font-size: 14px; + font-weight: bold; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #FFF8F0; + border: 0px solid #FF8000; + text-align: center; + margin: 2px; + padding: 2px; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #000000; + font-weight: normal; + /*text-decoration: none;*/ +} + +.contents a:visited { + color: #606060; +} + +.contents{ + background-color: #FFFFFF; + margin:0px; + margin-left:auto; + margin-right:auto; + padding-top:8px; + padding-bottom:8px; + padding-left:32px; + padding-right:32px; + width:936px; +} + +div.textblock{ + background-color: #FFFFFF; + padding-top: 4px; + padding-bottom: 4px; + padding-left: 32px; + padding-right: 32px; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 0px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code { + color: #4665A2; +} + +a.codeRef { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +.fragment { + font-family: monospace, consolas, "courier new"; + font-size: 12px; +} + +pre.fragment { + border: 0px solid #FF8000; + background-color: #FFF8F0; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + line-height: 125%; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +td.indexkey { + font-weight: bold; + border: 0px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 4px 10px; +} + +td.indexvalue { + border: 0px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #FFF8F0; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + margin-left:auto; + margin-right:auto; + width:1000px; + + text-align: right; + padding-right: 12px; + color: #FFEEDD; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 10px; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 0px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 0px solid #FF8000; +} + +hr.footer { + height: 1px; + margin-left:auto; + margin-right:auto; + width:1000px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + font-family: monospace, consolas, "courier new"; + font-size: 12px; + background-color: #FFFCF8; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #000000; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 4px solid #FFFFFF; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memTemplParams { + color: #404040; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + color: #000000; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #000000; + border: 0px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.memitem { + padding: 8px; + margin-bottom: 10px; +} + +.memname { + font-family: monospace, consolas, "courier new"; + font-weight: bold; + font-size: 12px; + white-space: nowrap; + margin-left: 6px; +} + +.memproto { + border-top: 0px solid #FF8000; + border-left: 0px solid #FF8000; + border-right: 0px solid #FF8000; + padding: 6px 0px 6px 0px; + color: #000000; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 8px; + border-top-left-radius: 8px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 8px; + -moz-border-radius-topleft: 8px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 8px; + -webkit-border-top-left-radius: 8px; + background-repeat:repeat-x; + background-color: #FFFFFF; + background-image: -moz-linear-gradient(center top, #FFF8F0 0%, #FFFFFF 60%, #FFFFFF 95%, #FFFFFF); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFF8F0), color-stop(0.2,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#FFFFFF), to(#FFFFFF)); +} + +.memdoc { + /*font-family: Lucida Grande, Calibri, Verdana;*/ + border-bottom: 0px solid #FF8000; + border-left: 0px solid #FF8000; + border-right: 0px solid #FF8000; + padding: 2px 5px; + background-color: #FFFFFF; + border-top-width: 0; + /* opera specific markup */ + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #FFF8F0 90%, #FFEEDD); + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.90,#FFF8F0), to(#FFEEDD)); +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #FF8000; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + border-spacing: 6px 2px; +} + +.params .paramname, .retval .paramname { + color: #FF8000; + font-family: monospace, consolas, "courier new"; + font-weight: bold; + font-size: 12px; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + vertical-align: top; +} + + + + +/* @end */ + +/* @group Directory (tree) */ + +/* for the tree view */ + +.ftvtree { + /*font-family: Lucida Grande, Calibri, Verdana;*/ + margin: 0px; +} + +/* these are for tree view when used as main index */ + +.directory { + font-weight: bold; + margin: 5px; +} + +.directory h3 { + margin: 0px; + margin-top: 1em; +} + +/* +The following two styles can be used to replace the root node title +with an image of your choice. Simply uncomment the next two styles, +specify the name of your image and be sure to set 'height' to the +proper pixel height of your image. +*/ + +/* +.directory h3.swap { + height: 61px; + background-repeat: no-repeat; + background-image: url("yourimage.gif"); +} +.directory h3.swap span { + display: none; +} +*/ + +.directory > h3 { + margin-top: 0; +} + +.directory p { + margin: 0px; + white-space: nowrap; +} + +.directory div { + display: none; + margin: 0px; +} + +.directory img { + vertical-align: -30%; +} + +/* these are for tree view when not used as main index */ + +.directory-alt { + font-size: 100%; + font-weight: bold; +} + +.directory-alt h3 { + margin: 0px; + margin-top: 1em; +} + +.directory-alt > h3 { + margin-top: 0; +} + +.directory-alt p { + margin: 0px; + white-space: nowrap; +} + +.directory-alt div { + display: none; + margin: 0px; +} + +.directory-alt img { + vertical-align: -30%; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; +} + +address { + font-style: normal; + color: #804000; +} + +table.doxtable { + border-collapse:collapse; +} + +table.doxtable td, table.doxtable th { + border: 0px solid #000000; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #000000; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + /*background-image: url('tab_b.png');*/ + z-index: 101; + overflow: hidden; +} + +.navpath ul +{ + background-color: #FFEEDD; + height:30px; + line-height:30px; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + /*background-image:url('bc_s.png');*/ + background-repeat:no-repeat; + background-position:right; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#FF8000; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#FFEEDD; +} + +div.summary +{ + float: right; + font-size: 12px; + padding-right: 5px; + width: 160px; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-color:#FFEEDD; + background-image: -moz-linear-gradient(center top, #FFEEDD 0%, #FFEEDD 5%, #FFEEDD 80%, #FFFFFF); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFEEDD), color-stop(0.05,#FFEEDD), color-stop(0.05,#FFEEDD), color-stop(0.80,#FFEEDD), to(#FFFFFF)); + + padding:0px; + margin:0px; + margin-left:auto; + margin-right:auto; + width:1000px; + border-bottom: 0px solid #FFC080; +} + +div.headertitle +{ + margin: 0px; + padding: 5px; + padding-bottom:10px; + padding-top:10px; +} + +div.title +{ + font-family: Lucida Grande, Cambria, Georgia; + font-size: 24px; + color: #FF7F00; +} + +dl +{ + padding: 0 0 0 10px; +} + +dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug +{ + border-color: #FF7F00; + border-left:4px solid; + padding: 0 0 0 6px; +} + +dl.note +{ + border-color: #FFDDBB; +} + +dl.warning, dl.attention +{ + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + border-color: #00D000; +} + +dl.deprecated +{ + border-color: #505050; +} + +dl.todo +{ + border-color: #00C0E0; +} + +dl.test +{ + border-color: #3030E0; +} + +dl.bug +{ + border-color: #C08050; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + /*font-family: Lucida Grande, Cambria, Georgia;*/ + font-size: 24px; + margin: 0px; + padding: 0px; +} + +#projectbrief +{ + /*font-family: Lucida Grande, Cambria, Georgia;*/ + font-size: 18px; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + /*font-family: Lucida Grande, Cambria, Georgia;*/ + font-size: 14px; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 0px solid #FF8000; + background-color:#FFFFFF; +} + +#top +{ + margin-left:auto; + margin-right:auto; + width:1000px; +} diff --git a/doc/api/doxygen.png b/doc/api/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..635ed52fce7057ac24df92ec7664088a881fa5d0 GIT binary patch literal 3942 zcmV-s51H_ZP)95ENDh(OT9xpYZC{M(=rqI* z+1erNEr&9zRjUI-4rN=4BBz>P@ys*xOjGRjzVE*Fx_qvyt9d@B@BO*&@8Mq!nM{Tc z_WoM84-~xLreSL9@vgZ{m2dF}`u=^ZF3syQ-s2tnBwCI3ZFvSfI20Wbj236~Urq*8Kfw@RKKfRQTgE>}uUHK^ptamY=o)LU(xy55zNQ(`qZ znZ&$O075mrrInIXQgw4%GCbMD8Vn`3n3$EaRwtP1D{A!Gs=e!L%3;ayv@I{rAw{xw z^x^>EIWQM8ob3m}$(BaupDMV;Ed8w5|i(*e`7rU$TOc&1o7`|!LyN5jHI z7uWAR!v4c2xMp?}QmRYyf>i}tYGU(g=>DW&==J@GbhR z5@BNVY3O$`^D%gk4khm9XpFhuwzxUhi9T=Du4rpVuYRSMPHeDqo+4htnZRU@G9`0& z9~p)CsFl1|t*wjfoTo&%davN^3RfJUhQ{ZZIAcD77X^XsF_iR&ZMQ;p>K5*+*48)x z+=<>nh+6Uq85jOkg>{z>a;+V`s(I;I%*5s+R@9a^wNoZ03(g9-EcH%uHvX&yp7`D#`9Kw>DU3s zjD-VuW_A-K)unlS4O3f>_B%pPONUmI#oyL};Lglp3=04>0eBBEw$D1k-$WTsoi#K* z$7h`NcyRZsZ#w~6I<%~u!^xDofYrzF>zVIj2N>Ijs`mVR(Oy&*9f}<{JtQj8jJT!oEc!NQXBq5y|6ET*N?7ox*E6#{i- z@_DLD^IYTtg|Pg?A~!7@OCd8p^)kxK%VBM84docx$Z{MvO)iiqep@or-N}TEU8$%; zJih?#yJ9)V1s_`}c3XbY9V}nEKwNz8ILmR|v)(w|D@oVG;=i`+$*)!(xH{9#$2Za;pyZ1wgU#)mHl|&8%iwu%yncO z`T32Ib0$D}j`c}}5M@M#7oR&G=QwU!!Ja*P7|NJt1@lo=d{_dY-q_lmDcH7{BHncF zR@^PmcLC6EsN?6N{fV3o8}>?h9X_@;=&-p7%tms7$_{3w(anwek_k&<&)~c$Ar?S> zy9gKavndTmxqAbE?SMgcWhXPENdKdz7ntt55Y3Hs3jjc~uR-#$tR(1a_abv9`-QzG z^J0Fsbd&yruq%xAsxf3rc=T}$Zx|AD%x{Fd=? z{qhl3kG5w-PqVK9-Gru%7UIEw)bt$ZMF|Z6HpmO)F%@GNT8yT|#FuWPxv@@Ic={;6 zU7)e!XG|1dx=kU|&|)+m+$&|Yw92Fa;*MnegXcCf8XsHfqg_F5t)3Jt8)EkXKuY21 zqt%4}@R8hK*(_JO0*H+Pa)6Pp&K49rKNeQEYb*x9WY`!`Vh3|80YF%I`lxv9_!$hD zOh$>zWaRIW!);6`vA$Zp;5lnGyX^^N%YEjCeJMHPolKCE1ttIqK<$0w&LcE8)`_c2 z^H^qf6ACV0t7FLLCsu#mL&Mb8gE@rZE#k+1Nrrxw+{N0^#bN*~!qt2>S4e#jC$a$` ze4@{)$aTEYq_!#2|t@Fj3e?w-XVuG$Z}kAR?_kgJAlZIJ)0{eHw#fybNooA zp02jyYVc&w!}m#BVP>ef2|U^J(A-#O1R#A&><*?Y! zOwml{CnE+aU3JfKE@uzge(qMY{^6siuXFt;+mMbapU;Ppejl=L#>s2#SMBbfP9AFT znEVA=TBtZ6d-GfF>kOxylg>Ek%qTp*h2ze!^^hOsmKOEE6b;maQ>~R>3#z`Zawbik z88OTykU3_!Atg^+vnM=1n}?%<$dHzn)?k&T#RWwb+*y;XNQbYNHKo3wr~&}Qa$id; z6^D*K9RTQZUuQVg)g~P%!BIiv+cXllt)KEP9IN)1udQKf>p|~lXj7K<-9}0Q%i9+K zXaF7qXclE>sf)7)J4_M%V{;(sFT7HN$o0#_qU#Ah1D{ zon=JihPcgG5xHuvQwOXBkt3(iUdx{6Gn|aa>@C9Cqg%rPK(+REZ4>6t3z7m@Aj;0l zSHh&%cKSJ*+WOJGwe?Y7d(9RAy)&NVS6uj}1m@U}jXH3oVQT9E0A)$ZDRdK>;_i;+ z7vbEoI7$1XK6vNxT(_sJ(GM4s92e;gB&Q zDO;(Ve^%gPG&lWW1fUf_=9-Q1%&`s%aD^o`Q2u`WI9V>Qm#D5?SW<)Njmt@aR5@6( zL4cdTo+Jg@>Brm1^_gf%0Z?}1AppR3NdFE5uzdpBZz;{Thd6SI-$gb2}pFAww$*j(2=s{mdz2E;lBvVcrN@}i2bC`Q5Y_;BID^f0J+ACVhyQsLg0@`okIk+i=LJ=3yvI*oASj62 za3C{Pu_fQ+atw!zN{$Shr*_UV=|jp4#CqWeGE?Jb`pq!|5bDES&-Ix=-N>DpydHqW z+-{QS+i)d;uGS)M%Suw9khR}3N82j|S{a#&Tctme0s%mTy<1S|;@M-+S4#o@!qr;r z+w(n=;@43Y_n#dI0Gb(T0{G7k-KY8k`MPM_Bss$?)SK){KJMrwv!vz42_U_Za zX7lDqiU8ZvCAfGpAtfVC5bQrYa4C)M9G$S4D&VqpJ8)lm$t5FAAR%ywf>*~VaivC70RVFXISv4Lx&tk^Cf1)qQ|rxp z*8H>)cgoM;(eKxH14u~~@JopNr9@A z#-yXVG?$es;EPqsn-j?45^L52U=nT#0A^T3JY$&B3EH&%2UHdv3P=_3$!n76!34ks zz^2ii@sXAu8LKYMmG=_^*qtiiOFNlG3?QYtG%wrCZh|)vlj8vq3sw~f1b8;_TMB>z zPSyDQy_9bbXD*#sNRGMzfSAwUD}ASX;ZGQcGdE=9q~ORU{v$}=z2Bc8EOe2S&);jS zCZB8P`hPoV1NBk)TQP2z{q$NL-GLUc7%>&fecE^E{I5gs?8!qTK7VgR7Z?}-`YG|z zVN-NvOlQ+B;~J*69_Xd1n-0MLKTY6&*%rTi*0^HXniz8{bCMsVpSXqs(GGO)*_#Kz z9YBCQ_VRhtwhMfppMh@OdxjCN0mH`5hKZr>UoxMx`W~u^kD&bskplglOiRxQvep*2 z0mk+kMP>J)K`8X3`6Zq|X~5IQ-_rrOn+_WvU{1Gs{ow1-Eb;K(Z?p$@ugXpr^?PM( z(5Hv;$*X=QZaqG_4q)N1v9sO(Dsei!;%IcIztt6YUs{yj z^77e`UYa^%<-Ts+d*b=ihKt?0_sj!ePNO@K*PGmGD*v^;rRAkduikx~UNk=@{XKeV zp_ir(dTaGVWBr{_02Kg2Xmlsn|IvIIRYivbo|L{yx}yX5Bte@P6C>1KyqvYnT{boB#j-07*qoM6N<$f^XQQ A+yDRo literal 0 HcmV?d00001 diff --git a/doc/api/files.html b/doc/api/files.html new file mode 100644 index 00000000..4e6dbfa4 --- /dev/null +++ b/doc/api/files.html @@ -0,0 +1,187 @@ + + + + + +File List + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + +
+
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_detail.hpp [code]OpenGL Mathematics (glm.g-truc.net)
_fixes.hpp [code]OpenGL Mathematics (glm.g-truc.net)
_swizzle.hpp [code]OpenGL Mathematics (glm.g-truc.net)
_swizzle_func.hpp [code]OpenGL Mathematics (glm.g-truc.net)
_vectorize.hpp [code]OpenGL Mathematics (glm.g-truc.net)
associated_min_max.hpp [code]OpenGL Mathematics (glm.g-truc.net)
bit.hpp [code]OpenGL Mathematics (glm.g-truc.net)
closest_point.hpp [code]
color_cast.hpp [code]OpenGL Mathematics (glm.g-truc.net)
color_space.hpp [code]OpenGL Mathematics (glm.g-truc.net)
color_space_YCoCg.hpp [code]OpenGL Mathematics (glm.g-truc.net)
compatibility.hpp [code]OpenGL Mathematics (glm.g-truc.net)
component_wise.hpp [code]OpenGL Mathematics (glm.g-truc.net)
constants.hpp [code]OpenGL Mathematics (glm.g-truc.net)
epsilon.hpp [code]OpenGL Mathematics (glm.g-truc.net)
euler_angles.hpp [code]OpenGL Mathematics (glm.g-truc.net)
ext.hpp [code]
extend.hpp [code]OpenGL Mathematics (glm.g-truc.net)
extented_min_max.hpp [code]OpenGL Mathematics (glm.g-truc.net)
fast_exponential.hpp [code]OpenGL Mathematics (glm.g-truc.net)
fast_square_root.hpp [code]OpenGL Mathematics (glm.g-truc.net)
fast_trigonometry.hpp [code]OpenGL Mathematics (glm.g-truc.net)
func_common.hpp [code]OpenGL Mathematics (glm.g-truc.net)
func_exponential.hpp [code]OpenGL Mathematics (glm.g-truc.net)
func_geometric.hpp [code]OpenGL Mathematics (glm.g-truc.net)
func_integer.hpp [code]OpenGL Mathematics (glm.g-truc.net)
func_matrix.hpp [code]OpenGL Mathematics (glm.g-truc.net)
func_noise.hpp [code]OpenGL Mathematics (glm.g-truc.net)
func_packing.hpp [code]OpenGL Mathematics (glm.g-truc.net)
func_trigonometric.hpp [code]OpenGL Mathematics (glm.g-truc.net)
func_vector_relational.hpp [code]OpenGL Mathematics (glm.g-truc.net)
glm.hpp [code]OpenGL Mathematics (glm.g-truc.net)
gradient_paint.hpp [code]OpenGL Mathematics (glm.g-truc.net)
half_float.hpp [code]OpenGL Mathematics (glm.g-truc.net)
handed_coordinate_space.hpp [code]OpenGL Mathematics (glm.g-truc.net)
hint.hpp [code]OpenGL Mathematics (glm.g-truc.net)
inertia.hpp [code]OpenGL Mathematics (glm.g-truc.net)
int_10_10_10_2.hpp [code]OpenGL Mathematics (glm.g-truc.net)
integer.hpp [code]OpenGL Mathematics (glm.g-truc.net)
intersect.hpp [code]OpenGL Mathematics (glm.g-truc.net)
intrinsic_common.hpp [code]OpenGL Mathematics (glm.g-truc.net)
intrinsic_exponential.hpp [code]OpenGL Mathematics (glm.g-truc.net)
intrinsic_geometric.hpp [code]OpenGL Mathematics (glm.g-truc.net)
intrinsic_matrix.hpp [code]
intrinsic_trigonometric.hpp [code]OpenGL Mathematics (glm.g-truc.net)
intrinsic_vector_relational.hpp [code]OpenGL Mathematics (glm.g-truc.net)
log_base.hpp [code]OpenGL Mathematics (glm.g-truc.net)
man.doxy [code]
matrix_access.hpp [code]OpenGL Mathematics (glm.g-truc.net)
matrix_cross_product.hpp [code]OpenGL Mathematics (glm.g-truc.net)
matrix_integer.hpp [code]OpenGL Mathematics (glm.g-truc.net)
matrix_interpolation.hpp [code]OpenGL Mathematics (glm.g-truc.net)
matrix_inverse.hpp [code]OpenGL Mathematics (glm.g-truc.net)
matrix_major_storage.hpp [code]OpenGL Mathematics (glm.g-truc.net)
matrix_operation.hpp [code]OpenGL Mathematics (glm.g-truc.net)
matrix_query.hpp [code]OpenGL Mathematics (glm.g-truc.net)
matrix_transform.hpp [code]OpenGL Mathematics (glm.g-truc.net)
mixed_product.hpp [code]OpenGL Mathematics (glm.g-truc.net)
multiple.hpp [code]OpenGL Mathematics (glm.g-truc.net)
gtc/noise.hpp [code]OpenGL Mathematics (glm.g-truc.net)
gtx/noise.hpp [code]OpenGL Mathematics (glm.g-truc.net)
norm.hpp [code]OpenGL Mathematics (glm.g-truc.net)
normal.hpp [code]OpenGL Mathematics (glm.g-truc.net)
normalize_dot.hpp [code]OpenGL Mathematics (glm.g-truc.net)
number_precision.hpp [code]OpenGL Mathematics (glm.g-truc.net)
ocl_type.hpp [code]OpenGL Mathematics (glm.g-truc.net)
optimum_pow.hpp [code]OpenGL Mathematics (glm.g-truc.net)
orthonormalize.hpp [code]OpenGL Mathematics (glm.g-truc.net)
pages.doxy [code]
perpendicular.hpp [code]OpenGL Mathematics (glm.g-truc.net)
polar_coordinates.hpp [code]OpenGL Mathematics (glm.g-truc.net)
projection.hpp [code]OpenGL Mathematics (glm.g-truc.net)
gtc/quaternion.hpp [code]OpenGL Mathematics (glm.g-truc.net)
gtx/quaternion.hpp [code]OpenGL Mathematics (glm.g-truc.net)
gtc/random.hpp [code]OpenGL Mathematics (glm.g-truc.net)
gtx/random.hpp [code]OpenGL Mathematics (glm.g-truc.net)
raw_data.hpp [code]OpenGL Mathematics (glm.g-truc.net)
reciprocal.hpp [code]OpenGL Mathematics (glm.g-truc.net)
rotate_vector.hpp [code]OpenGL Mathematics (glm.g-truc.net)
setup.hpp [code]OpenGL Mathematics (glm.g-truc.net)
simd_mat4.hpp [code]
simd_vec4.hpp [code]OpenGL Mathematics (glm.g-truc.net)
spline.hpp [code]OpenGL Mathematics (glm.g-truc.net)
std_based_type.hpp [code]OpenGL Mathematics (glm.g-truc.net)
string_cast.hpp [code]OpenGL Mathematics (glm.g-truc.net)
swizzle.hpp [code]OpenGL Mathematics (glm.g-truc.net)
transform.hpp [code]OpenGL Mathematics (glm.g-truc.net)
transform2.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_float.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_gentype.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_half.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_int.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_mat.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_mat2x2.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_mat2x3.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_mat2x4.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_mat3x2.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_mat3x3.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_mat3x4.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_mat4x2.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_mat4x3.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_mat4x4.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_precision.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_ptr.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_size.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_vec.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_vec1.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_vec2.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_vec3.hpp [code]OpenGL Mathematics (glm.g-truc.net)
type_vec4.hpp [code]OpenGL Mathematics (glm.g-truc.net)
ulp.hpp [code]OpenGL Mathematics (glm.g-truc.net)
unsigned_int.hpp [code]
vec1.hpp [code]OpenGL Mathematics (glm.g-truc.net)
vector_access.hpp [code]OpenGL Mathematics (glm.g-truc.net)
vector_angle.hpp [code]OpenGL Mathematics (glm.g-truc.net)
vector_query.hpp [code]OpenGL Mathematics (glm.g-truc.net)
verbose_operator.hpp [code]OpenGL Mathematics (glm.g-truc.net)
wrap.hpp [code]OpenGL Mathematics (glm.g-truc.net)
xstream.hpp [code]OpenGL Mathematics (glm.g-truc.net)
+
+ + + + + + diff --git a/doc/api/functions.html b/doc/api/functions.html new file mode 100644 index 00000000..b53579b3 --- /dev/null +++ b/doc/api/functions.html @@ -0,0 +1,73 @@ + + + + + +Class Members + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + + +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+
+ + + + + + diff --git a/doc/api/functions_func.html b/doc/api/functions_func.html new file mode 100644 index 00000000..6126d97d --- /dev/null +++ b/doc/api/functions_func.html @@ -0,0 +1,73 @@ + + + + + +Class Members - Functions + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + + + +
+
+
+ + + + + + diff --git a/doc/api/index.html b/doc/api/index.html new file mode 100644 index 00000000..839452ce --- /dev/null +++ b/doc/api/index.html @@ -0,0 +1,77 @@ + + + + + +OpenGL Mathematics + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
OpenGL Mathematics
+
+
+

OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) specification.

+

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.

+

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, procedural noise functions, etc...

+

This library works perfectly with OpenGL but it also ensures interoperability with third party libraries and SDKs. It is a good candidate for software rendering (Raytracing / Rasterisation), image processing, physic simulations and any context that requires a simple and convenient mathematics library.

+

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 officially supports the following compilers:

+
    +
  • Clang 2.6 and higher
  • +
  • CUDA 3.0 and higher
  • +
  • GCC 3.4 and higher
  • +
  • LLVM 2.3 through GCC 4.2 front-end and higher
  • +
  • Visual Studio 2005 and higher
  • +
  • Any conform C++98 or C++11 compiler
  • +
+
Note:
The Doxygen-generated documentation will often state that a type or function is defined in a namespace that is a child of the glm namespace. 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 MIT licence.

+

These pages are the API reference only. For more information about how to use GLM, please have a look at the manual.

+

Thanks for contributing to the project by submitting tickets for bug reports and feature requests. (SF.net account required). Any feedback is welcome at glm@g-truc.net.

+
+ + + + + + diff --git a/doc/api/jquery.js b/doc/api/jquery.js new file mode 100644 index 00000000..c052173a --- /dev/null +++ b/doc/api/jquery.js @@ -0,0 +1,54 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0) +{I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function() +{G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); +/* + * jQuery UI 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* * jQuery UI Resizable 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * ui.core.js + */ +(function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f
');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidthk.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)) +{s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);; +/** + * jQuery.ScrollTo - Easy element scrolling using jQuery. + * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com + * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php). + * Date: 2/8/2008 + * @author Ariel Flesler + * @version 1.3.2 + */ +;(function($){var o=$.scrollTo=function(a,b,c){o.window().scrollTo(a,b,c)};o.defaults={axis:'y',duration:1};o.window=function(){return $($.browser.safari?'body':'html')};$.fn.scrollTo=function(l,m,n){if(typeof m=='object'){n=m;m=0}n=$.extend({},o.defaults,n);m=m||n.speed||n.duration;n.queue=n.queue&&n.axis.length>1;if(n.queue)m/=2;n.offset=j(n.offset);n.over=j(n.over);return this.each(function(){var a=this,b=$(a),t=l,c,d={},w=b.is('html,body');switch(typeof t){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(t)){t=j(t);break}t=$(t,this);case'object':if(t.is||t.style)c=(t=$(t)).offset()}$.each(n.axis.split(''),function(i,f){var P=f=='x'?'Left':'Top',p=P.toLowerCase(),k='scroll'+P,e=a[k],D=f=='x'?'Width':'Height';if(c){d[k]=c[p]+(w?0:e-b.offset()[p]);if(n.margin){d[k]-=parseInt(t.css('margin'+P))||0;d[k]-=parseInt(t.css('border'+P+'Width'))||0}d[k]+=n.offset[p]||0;if(n.over[p])d[k]+=t[D.toLowerCase()]()*n.over[p]}else d[k]=t[p];if(/^\d+$/.test(d[k]))d[k]=d[k]<=0?0:Math.min(d[k],h(D));if(!i&&n.queue){if(e!=d[k])g(n.onAfterFirst);delete d[k]}});g(n.onAfter);function g(a){b.animate(d,m,n.easing,a&&function(){a.call(this,l)})};function h(D){var b=w?$.browser.opera?document.body:document.documentElement:a;return b['scroll'+D]-b['client'+D]}})};function j(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); + diff --git a/doc/image/logo-mini.png b/doc/api/logo-mini.png similarity index 100% rename from doc/image/logo-mini.png rename to doc/api/logo-mini.png diff --git a/doc/api/modules.html b/doc/api/modules.html new file mode 100644 index 00000000..98d42617 --- /dev/null +++ b/doc/api/modules.html @@ -0,0 +1,158 @@ + + + + + +Modules + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
Modules
+
+
+
Here is a list of all modules:
+
+ + + + + + diff --git a/doc/api/nav_f.png b/doc/api/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..1b07a16207e67c95fe2ee17e7016e6d08ac7ac99 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQfZzpjv*C{Z|{2YIT`Y>1X`Eg z-tTbne1`SITM8Q!Pb(<)UFZ(m>wMzvKZQqKM~~GcZ=A7j<~E6K62>ozFS=cD3)mf8 z9WX0+R&m(l9KUsLdTx4?9~({T__KA%`}olPJ^N;y|F^pHgs_K%!rj~{8>RwnWbkzL Kb6Mw<&;$VTdq1fF literal 0 HcmV?d00001 diff --git a/doc/api/nav_h.png b/doc/api/nav_h.png new file mode 100644 index 0000000000000000000000000000000000000000..01f5fa6a596e36bd12c2d6ceff1b0169fda7e699 GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr8!2~3AUOE6t1`SUa$B+ufw|6&kG8phMJMJ~w va4>Y+bZ&9QY?(VEUPY_cGd9nQ`um^ZSUyYpAAuKhL7F^W{an^LB{Ts5DmojT literal 0 HcmV?d00001 diff --git a/doc/api/open.png b/doc/api/open.png new file mode 100644 index 0000000000000000000000000000000000000000..7b35d2c2c389743089632fe24c3104f2173d97af GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vww^AIAr*{o=Nbw!DDW^(zOibV zl!F8B0?t?i!vld4k#$~0_AX3zElaokn + + + + +Related Pages + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
Related Pages
+
+
+
Here is a list of all related documentation pages:
+
+ + + + + + diff --git a/doc/api/tab_a.png b/doc/api/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..2d99ef23fed78c7683f0b5aa803d937060d288c4 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qo)`sjv*C{Z|CmjY;X`^DSv)) z;hc^cTF;t%XWXdwWP5+kt?jQ5uhqKtjd^EY`^^-S;M%tFAj_l)EwVTK)E@1LSD0{e q?a6($SGQTzz1#QBzr0NMKf^0WCX-0bi?u-G89ZJ6T-G@yGywp8?ljB* literal 0 HcmV?d00001 diff --git a/doc/api/tab_b.png b/doc/api/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..b2c3d2be3c7e518fbca6bb30f571882e72fc506d GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qk9-Ajv*C{Z|~mbJ)|JfaM8Xd zIP7xAmLwau9@iXhZTrl-TjWj9jM#?{xt`6uU{<)jb9Suc^QnbhJ(o{ib8=j9u0_mE8M7kgF7f<7W7IEf=8(L_qx|g0H;V7iPxm&Q@G7p8W2Kx&iT|YUM=ITC zY<0Qbr;u&AtXD{o@41wH=7&d8=2Z_{M9Tsa=g*t*@A3H$UOlxZk7?f6RUWpx>Fc_L s#LQ{edY3MpIXkMeV^&YV=9fR%8Jv|Kya=#u06K}m)78&qol`;+0RKEt)&Kwi literal 0 HcmV?d00001 diff --git a/doc/api/tab_s.png b/doc/api/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..978943ac807718de0e69e5a585a8f0a1e5999285 GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QZ1e?jv*C{Z|}b5Yzkm-c<7z3 zq^cq0=~}Z;b(!Zvb5Z%sTRFKGlz1=qOFg;myyu?$r`wZb^irPsN1a)6)TwB0r+)wb zPL25;=adu89?fTK`qDR>$D*)b_WOmdKI;Vst02j(hg8%>k literal 0 HcmV?d00001 diff --git a/doc/api/tabs.css b/doc/api/tabs.css new file mode 100644 index 00000000..636277d9 --- /dev/null +++ b/doc/api/tabs.css @@ -0,0 +1,79 @@ +.tabs, .tabs2, .tabs3 { + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFEEDD 95%, #FFEEDD); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.95,#FFEEDD), to(#FFEEDD)); + + /*background-image: url('tab_b.png');*/ + background-color:#FFF8F0; + width: 100%; + z-index: 101; + font-size: 13px; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFEEDD 95%, #FFEEDD); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.95,#FFEEDD), to(#FFEEDD)); + + /*background-image: url('tab_b.png');*/ + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFEEDD 95%, #FFEEDD); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.95,#FFEEDD), to(#FFEEDD)); + + /*background-image:url('tab_s.png');*/ + background-repeat:no-repeat; + background-position:right; + color: #FF8000; + /*text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);*/ + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFEEDD 95%, #FFEEDD); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.95,#FFEEDD), to(#FFEEDD)); + + /*background-image: url('tab_h.png');*/ + background-color:#FFFEFD; + background-repeat:repeat-x; + color: #FF8000; + /*text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);*/ + text-decoration:underline; +} + +.tablist li.current a { + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFEEDD 95%, #FFEEDD); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.95,#FFEEDD), to(#FFEEDD)); + + /*background-image: url('tab_a.png');*/ + background-color:#FFFEFD; + background-repeat:repeat-x; + color: #FF8000; + /*text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);*/ +} diff --git a/doc/build/XalanMessages_1_7_0.dll b/doc/build/XalanMessages_1_7_0.dll deleted file mode 100644 index 6583443946cd874b0bdfba4a44b0d8f93f81cd28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61440 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

l#0P#q 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Ξ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%0D(sA92ROpT1HJZBipbEziQ)r|*lu&! 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

Og=-hs^914U^E|H@%ldhIOKc8 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 Dy!hGx diff --git a/doc/build/xalan-c_1_7_0.dll b/doc/build/xalan-c_1_7_0.dll deleted file mode 100644 index 319c14dd28b08b202979b4991bcf3045ae161a44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2072576 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

SGt0!+s9^O8g(QcRBakgN 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%0A_nj2IFe66290!bLn)CDd-I`` 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

orPh06!rdLs29N{$!rz#{Y_e^0BlYjq9{^>rRy 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

  • BHqu7*D416$_Jj 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

    ZADdJl+1R)qZ! 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�FQ`K5lh=+zwa9EoMX?2W@knn(UQJ)NU; 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�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%0ANn83bA|uRwc4+)x791%w%@N0 zGW6c$DtsdE4A4IrC+m27f)HJk|B$cSZO+;>dwhR&f~1#=_R`(0>0Wg=Yp#VY!$CgsD+(weHK!FX*?RO+8Hqb*u(Sq+WN)xI;KZi_uSf%Ji!oHDXC zX|mX6oO1H~?Q!-pyPT26>J_yu+mr4SdxvE&o3}T#>e!sec8>kDk^XAr;vJ<%7FpHH zYFE_iF!h_%4(fMz5_P`r`c?L=cJ<&S8I`2PsPV`_Lt5_xR^En z>ZMKgvVTrhbCq2$vummvtClraH`-Tv=g=#5^X(BW>aOVqWu*TSHcc$8t#7JsY#ywQ z`F(3*$mr7L)pga))q}Pn?*BcvS08+`zIiWmdQ=t5viy>=pC)9tan`g_Pq(|h@ci0_ z)lG|Pm)6Mx0-q-2N%)x4lUTeCKFvfVh(uTssL%NohPf8q(fQrT_jn0y<|SrED3 zz|kWs+ro0zvPb$R@vdV(bW7cjacAB2_uRV4u1a64^JprG9ZHwgHPlzz#(b4d>#tlW z{p}cc|KOH1_mrbYsd`7>nQ?Lf&Ly%-A9QU>ueCodu*WqwhhDW|4?B{X-N*ZEa&U6y zcv(NV$-TpZd##sAx99a78q_|0{2JsAtbfn!ac+_AoAzneh4Y;yqmN&?qPk`1ue3Mj zR^u!qmrG5aP-XQhpwluAx5uJfkO#3M_gb{8N*%gOX>D`$Dre&H-tJlBxro{=Yg*V| zVLa7)ER)rzkHuH*OhZj=n^ohSwE-s}!QPLK?V z44IbqTq_U4h<7XUrL(SB&3a;4uV!K>yVt_~&Z_&uCMxXfS%^6!WjzbY`l`A`EHkT{ zd-Tmgdh&t)s3o72@yUa<6B%2b52T)Q^>$C{(X_N)ZshfExO%sv^p`~6%cpwUj?dz% zmAPF|zsY%$;0#~h*amv`B|9jCOw9~7-G1b_Yfl@-rzm}VaIDy4%75L`_g%Z_XvvLy zxxcjcxbt{+x>~R97*6H3{p7s=dDotUkmX`v=e)4zGo0Ks(tjj!!=Ft_!wV62qBHteYE)vI1<+D0>O-TKUEw#}3JM%rl8FV=B)9Q0ei zG3vJ2{`YzY(yu<}xm1|_49*#C|JC196dw!DbCj?8j&?r!zI}0h-*IlxX(#m#lxm9c2c}5`<)cirrqq%Cdd&IP`?lQ}AGs~c?xQ;t3 z(*70^>S?#-+vWH=u2Dqq_`o`BMNcnvdo>11uM>4?dzqAuu(oIXw%?|X;D$cs-F{R3 zxTm({+JoC8dQ3$NS)I2a3iaBd&C~hj;=p9)PL-eE4SPJ+IALrKU?S(FL{>R-^Y8^ z1MK1YOLP1H`Q(NT)#vs^&)Jh+#TJ=-?2GR+<_tnxX zdQNM*kWVD!9UywR-(ZUeCn(qw-PG3V1Qbj=4|M>@o1Fy`*&wkU}>E^{O-4*7B5O^{S=R z=>X~2E*vMddbhKRYN%Vis($-YKH76M9XLPziNT-cO|6#ZIn~SR25JNpPF@$388sm9 z3{^EY&*ee1v%wpn8B1CUxT{V#zkd7DeZ~`4$&bapyo})JvcJb`ialCwH z<2)xEY?-mdXyDFG+LZHTYroxi0?q!GMr-eC2jLe{xOH@CwY^r{4iBU(`83nQl?$g* z4?hq~%eS`{uD4TdZyi+IslIs)oQNG~*SMX<_au_?Q+#zGpZhc{Yv%FusWm)evOf?V zWHYu`Mf>H_N9GSQoxQW#CztMoGvdzadK6x`$ljw3(6mpmUtnhTcOM8%3o}wu~&L>IU2M?bd6j8|}`T_CTKhaBC2yaOR*M zGk|!aT#L@wIG93cOFaftsZy?&PQj-oytvlTc;bq%G*1SFUh7e+cYfu<>16(IJtyZD zY=bCsX&Ov}qixY*q_q~={g>5>{mH<>26?JuPuYu>)l{#l zl9!9@&u<54NG!|s*H-vmsJy-7TKu|Z{^smrbgyiZscL|6&~|}+OwT0F*s_E6skZsV z`g!u!#XMfHsk6t(fx;zb?NHrido(8>p#dYEOR8?Mzw^V}Ots7HaN1EB)DG{|8KiRL z_LoGY&i-fbmIv6=$xe*XLg&dOGPUpC%)W%^*v6_=tEw6!4GsEpo5$^4yD0~TaeL4E zo@cM(Zg6@HPxgrK4AVQhV`FZQVo1ZlG%2^@arY)>{nlQ45`&ttwZFYcq}N`=Y=PMI zy9YTaKc3oq5Q7y;nUFC?-XyoDFN0S5oY%U0j#g*P8)Q^(u+{m!h9O71tFhJY9>bvZ ziRdEIduF!nG~kR=jRF1K5uyU_Xiacyzz ze9fr3E9CQRD}ycfWP4;B+-SV3tsVRbx|5^NuY?B`&1dYjS+3p5g9v-EX-aG_t=tOG zdZ(>!?6V&>+v&RxZgHRg8xqn{`V7|>4I&+Fh=KjWK`G~;{9oVC5)5AT|0%-bdfnXf zyZB}^ZfkPKBqz4lI+hmCaW4;GBrkN*Z*fY~bAw>E(Qh4(G3+LM%;mNM_vmQk_F2C3 zRxXKpNT z?y^6L%-2+Zn!`jhyMedYe16M8XFA9ERR}|-@@e02=eHqzvJ}PLe41N%gegN&z1wr= z!_OrwIJvrtp98R8(CS?dcNQ&j=Q8hFeW0|&Y4_ZE&a)F5M7n?W-4P9xs=qZRW5J1i zcSeJ-L{$3SAsv{XFWnu|K-P%D?K0PRcS-}L(Phb}ad%8tIdk83)D(RG zKq>nR243i$)?PV#o^`@NCY@hnyAxaV|G}1dM|Onn)AppPcVq*2YwvQNr(O5inGKN8Z-;iR?xEj2_N8uVayzvF zT(ZmZ0QtK+wt@76-?@F-WA8PPU79x^_s9-@tUKHE-GdEegtnbq6MObz!(5B`UBe(P zc}6ZiufRug*uGCUzUXI9Hc;jaziO(kNq1E#tEa)F+s${6Hc)Cxr=PE1X17Oo8R^-p z4P?S6{uem*zG3v;y_;oQ+upeBVUM}nH|`hPX|{ii-qA_dV^23w=I=&pW)n@cH1t z70E9h_WVfE?$K8`Z#gzDJ8{K|!L%#q8-YjIBNjiDVSm?YpuFuLQ?NhLnQ!NIazjJ2 z+y4eiYrneUitUkYs{JOYducn<(*$K@waoo(3;l`i_SU5Sfh_eq=bMo&{e3b$kY}!q z#~mB8?3~@OnjdBxIAOW0i<-S<7(@%O=N^XO{AbE`IMu0kYwY!~XCNQsg@Ljqy%IUI z;?2(UE?$4FYP3HtcW02n*_73)o5D8ulK!4WkB3nM*|H1U$34O}%6ZFs`@OR*_H<5a zVYMD@2COxom-#N(j`U9BJ%77W$aCONoOM)VgT-%xTsRm{$w~h%>b`bb_gjhsh243N z#F;<0InQgQUAy%;nB@Jw%l?UDtIxCFfrd(Xrrk4<(?+jx+GzeM;@~{vl>@gZjvdRk z)9YE|;B56uR+NLSDQT1X#hs7sc0Jg7lCj5WO~1;IK5o$l^55d;WT_ z{Y{rI^ly-w+Nyr0-#fLlX4X?({{5a`;Rn|G{XJv(ec%55*h4?}H~HZ{|9@Ma*?U*T zy&s6%Zx3BtSh{pIzdR|w5^OI7m|gn(Byt&J0YoHoZ&})<>!M2k>VPAcKSNya_9eK&+nP| z=SjbFev@jbog()w!9k?BQ1{IN%azOHB5Ae0mgNiWG|t}bmAU59fz$Q#JJHUs^?r9S zY2`qEGhvb#Z6)<#eor?O$WB z3>~t(u1@~{9Qoyx6ZkDqejGepQB_w}e?rqr8Ijm)$k*BA%CgF-l}Ch`%xM(%+Pc6_ zCEsy6aRqYTBOf54{VPR|$jPcnOll`?98ziVy99jxSEmAe|7&{qwA^o{kLP?E=Q7sF zYI?q^teoA_!q3U9s@7A2YAaY(y-I#bN|h4H8-qU+Qk3k zSO7IQaDo4$t$;06{W9x9RaUU9x|V31Qm}$w4{ubD6f{}<>UZ-B)l^X1w7hm@ZL>PM zfS-_Gfi+dRqPd|?-CVG$VL9h(3hL~iqh8ife?I?*kgDXVZhZs)gI>Xk3mW-ai&Ezl z5aMdNJG+1%-&uC9sxMf%s=0O*_nsCXRyfDkIhO2`bb)j2o&tV6d^t}hDcSt0WerVg zntjAix2mJ$$ZEKN|5dA?$(Eh4Xvyr87dtgOj>t`I<^}o6T6sf0_v`yF;-UQ$)s;2Q zuia1Qf0t9Gyw}tY?m&NF^!L4Q z|2k*osghHVgkvRLKiAV-KitmYv@*8VrBleVc3EWuQI;Mv=akYZ%XmasDSPQ=e(J?B z8V-dKPYv;11zE(ZJqs%rR@L(#6ctwT^#Y~-HG*%7RV@#@=J>A-jON@Tic!7*Q8uSs ztd6#Q=0)jqdlg3ADN(BI@6M@1ODpGD7ddWDuRLy+Y8qC$tYNi|#`Hm#kRR$+>L}9E zJhip$OFM_Ob=6gkeJiq}+*yV5-k06tb72}N>b=4=%MR1{;qtAxI>*QDszi!dwq%+! zzOR>d;8xdm_`wgF+jSKkA>TBVfkX%E6n$FR%=^)^)Gkt&J)5*%&`g#)lA~@Tb|Lk> z^M;p7=ixWw@6J>$-M!%J&dE#*gCU4sLAVw>fgNAeXmMj`pX0h~R~ z!y`+ZF05bnHB8B4k0qq8Zk7;izbi!2)ALUjOV#IEgr;xB<2c`lE}gPMZkOY^{9uJN z!egCO4J)LD=;oAbE`3rRcj^quV|lHohdOpXA6eSc#K)ZVU!xr5jELgPR*|l=%LLQkESiheY-fZGGx?HX(O+^bF&_Jw5jIg8oub&fF4`Jg!4`Y+b|B zs=BbuBekonuD zc>zDMYCoJ%YKEGPmFDVswRP2H>Il!-scLsMyRM;0FIUx{3r>|~p$OGkYEEsFd?k)0 zE9;8|wM!eT8ZVs9TB=DMKlkK?a~DjX=B(!KRh6skXSQDC0`h$!Uyp`yB;`7MT!fQ z6)aF`5L-7~Ss>a)ejrdWN`=lwcjhRSX#_2!RQ3YEJ+)7PO8jKFivM)DO4N-|*>grH z1;_3luENg_SLxjgRccb9%51IjuyK2oKsN2+Ai2o(YfA5z#& zmK3Pq{ss8RF$jKdl!}AE@bM}p7&%^LK`e$Zf@?>q=o)y;coiKxUL~&^rL5~Y|1sCw zMycda;Ga^K3FB1)BoD#np_F^a@hSsCw~kT?5Ic-K566ci3smUa1u8Rfys~yie>D2< z6!3r65hD%u_4pZ^{hpOutzw(7b;4+s zeFx6a2L4Q&dztnFGUt)LiF~=9Z5*wlP3S?e89mpc@6u*37_BmY0Iy;nj=}Lu@lB0W z*{{Yb3nW1pWY9<6Ck+UGK-&eG*G8*IwopYDj8WOe{7=JEcTkZl$Ed*dV^r+NV^n&# zu_}7~Se1AKJFkybL0DZqR>iuw_9n+5b~5GpfV}R;{ux75@E-WgA<9}$89-`4N!m~c=TCq` zhvElqXHR^o8m3YpuzVP81??J+X=4^`EchMn-9|bP=Qxt!+I_=R;;CUO{WQ8?4O3x| zeulJVYt!{oJ#*|oJ#(CoC*Rt zkAnyZ0*h+AJ65H+7T`Erz&Y3B za0tY>u8v{60nxJIDpSfB6&_9;hpW_V7+7&A zd5mWu0g@KStFh5MT*c1kJT_c~K=S)syOwm(KjB!hUCe;$ic)8qz}Oc zh@3-QYr&z|1A(dIRVu`Fz)vHo*twje2~Xpgdulpm;8^Vk?@O5)xPB&@GdMqsy5cxc zPdy!oKL>Cfy#+F7k5@quo54L0h>}MocB{C?ariLOa$Oyc9gb751!6~_2k9U_?n%16 zNw*iMLyvFanK1VQlqDr)JCgKVOTiY1eVg>aTFQ0u3QwSY?lewCi)q)p(r;k&y@4#W&`yB3_$yfR7hDlFUJ0z@H%X@!-9LU^8mW_wTkr;b+CqUj5TnUHE^PxeseGV>wfA8 zq*(W6SoenZDo`2Lu)(ufcb(5#jWtwkAKLZJw7FHx^*>`ge|ETv>_MHsz&w#=J~)H; zj0Dq&*$U!a#rl;r;r(gr2hkr`pC*PA*Fx}p)^w~#W2{9}tV3h0L1U~xQxh0p4yEpQ z;<~IkS!+hVO`Bki8D@Q%n8kX7b!FyQj!%GDONQ2sQfbzZ5!R2X2RUXf=tYV(VT`#W z{wKzazp(DBp&v4?Cz&_Y&ZF6g6OV!s{) z);T+{KHh`4>^xLuSR+MPAB9*O1>l@ZM7HgR}$fVF!GuE@7313O9E+QUVnG0BthFOoKLGlaM zEUYootUXe!F;Zo$A?C0~U`-KRNE@nP9dHI~1J)9Om7KGV2sE6;koi8^ zHJr0vNU>fBj$>X4Fn$xO2y25N>w>g^y3MX5FXrbcb&>#??~Y-uNKBdk<3ZXr^M7zW zWByLG_jdaJ1GK^WX%o!zQRe(G^Lkp^#G}*=$3f=71oL5%c|FRUo?#vjf(-L`f;l|R z{GDd*jxl#wGZn*=Gip!Y=(I@$vm53o((h4rkGnT z=2MHgHNt$Vm=*OX!%BBFsl==AjJpP?q_}`Wty9iE$(K&s>wlx4`-M@hI&?=9>?=hyN+&meBR= zSuS9_{2qI3=9W-9W7k8BTbD6LGp}TsS7OW|mdqu4GY&InGd3y7~}uUIDQP* zGU(=V{vLcR%p8#Va3p(Ed|?iVN64Q!Ai*3EVGanK&RoIRA7<WlWNJhrM(7e#fqyCuA&@>x`f7dGOHueeoxLHG5g?W!UeD#?_?` zWUnXZrR=ld=p6P~vLE6&w1zz?<6M%lA;!2MEVeS#yWEd49;86Dn0u4y+i-?)Ky-3n z*iGZc#LMn|m*t+=45w*duzif3IQ>R6Vl#(r`D-E8gR#pPpRWMK!u3%&dJSU+>mWDZ zbfaSy&fP> zxt1BrxDg`0z?#I^00NA`UIaJt?18mImS-i=y@@xPG`wlg3FXJuD z3kS|DQd^@%DtlIuidGh>@I7!Dv9-BK-2yr|-ULz{tF9td0v3P|IM1Lh z{441=Kj?rW6#)lv-VC>ar$7b_JCJl>t)zuJ;Mb;M7rYEU02bGy_n9Z z=;=kO0yKjJ*uuT7U@`trnn4|L{2JHi9A2b0!?AA{scrBW?pYraBk}Je?0^qInDPXO zaTpByEphq|aXE(kK%x{IAQ2|dG8k0MLQkDPwaWzdD6}6C-F1R0{~tbpw%sSFbzsw! z32Hf5$F9b-v1`{+o(U-0t-L|=WF2(5ZOZ6I6wNo z)E`K2{4&=zaqkMwRX243zYL~uTn_3$9IX8Wf59cBd5rT6`E|kDK=41bQPOnchc$^l z0Cw7Af|~Lz>J1D7TPepja5TqT=qFpH{h(P7CQT-u;ApS_l%rV=9(xDB;W5NJ4M+FG zK4p)B4d{}TzYA;z;e98l#UT9%_Z}@$XFf*Re@-2OAgCbT33&12+y^^#P_|!C?qrc# zFW`L5FNxXHw5MO8dl?To-Au3($7@Mb0-wqGI`q~Z#1^!+W1lpakY)z=H;Lvh$_u94 zPdX4-&plASj`G149D`$U94>qSKS4L=Gaka%yXl8;JHB2*nYYfGtZH7~Lp8&7vnQ+W zvdL;v>16f6(UaBkqb94zxPA*f1tjG@2;9w@br;q#>{p`fuab=OL7vejdCm|EF-J1D zMMknNXPur5^PH0Bj*91r8P?meX{_5>I|o_EhFQ0!Shpri7{7T|rC8G?c}^Q*-yh<0 zgD7Kjg3l9z%mpFlg&4?iEdvL*mb{I5nLN{nVhevFAOupRjmt56{|Ni{G{}J98I#o| zr&A`doa4eXC#!P!WzG{|8>r*F8Du#A07N)m3vYoZfkN;B$bt^g24-;oXm}Xd%5gXR z8tCG<4lD=jIFExEcuJ1Bwhf*Gx5De;&F}`W2_!%gM8TQdy8@&*ZiX}P8o3T)oY%lx z;Mc$=U~#TME5{qaP8=_QUxufETR1L(hf)5u@ElOVwHA0C{21H`2jIov5)cL<&<+-J zFIK|d<^%RfH}m}Y9i9_^#y)D7;XG4hzth3m?hB8{9uk%@lj`Jo;D6nNKO^ zHp+~xGy1@*tRe&VNGvQl64aZ$@ zC)mvK82BI%YHW`o3OESSPN z^f}ff8;BVkc@%z(^ACw9nn*F4VeCVOvUk}VTf|$v&At1GFHj%~V$4@-!B)!l7@P#{ z;0n+RLZ9H@KKSz_dzjtnzkA@zr^A>>>6;+?po18nQwRbtISALX{sa-8i`(FtcLcw@B*l<7R>xZf=$7!x* z{)&cJ#Gj{no}gcQVA1zujqFAK%)S|@P51(WkK@Z{VLB6ERzK!-P>~cR25@(H7 zp&{%~e@FeD!9J#l@oP2f$eX}rlq1Qrkvq^`%6`dWJmWJm3#2X@tumeLHGjkUa})eW z>iR>TO&!ZPdK!Dpr92lp%R#b|bB*W_J{KFxT9o}~^iDpr0&3wHKJTTj;E2LF6dva3AbvOXh|Hs-MO=dmiK8bZa`#6_lAF&7JzI&c}ko`ruqY-wGB~9+QmyO5~ zlxHrnpGSN_rhz>(5RSI7CkF|T0?C`P1JWQ1yuL^7#+SvE7hijG@J9M8d#}h-qyzD% znOmNLAB7*r_RqQg3+9(6z!5!Rk&hROeY_U|_VZq(p2N@Q@p%LGU%>9K(1T10zn|sV zKsj^fKI91kd(zgX)4qa?Ei#;e_+if8FUE29D(aJG$^z@fAu0o+zvfvH2>hBlzmhCU^dH(?l;_J0 z^q(cv=P!8fb1P-y`D)@e`dcl}1RiwKsJ)2&M*8C4@r^WcFY^ZF1+n#%?Ub=9`!LV! zKs?Fw7LesxjN}!&m3+<{VIN2KcJdBqDd!~Yl#~BC}SaQq{Vc`qVy3;n2w zXLM6}#ypW{es^#_lRS@R-@Pl(1X2W_WfP=hS$IU^v1!7=E9A`T*k)W1JkjY<UouLi%o9Ah#Jl_Zk9>M?J=&y`3ar$elh5o{EWIxIb zN4u$mZ!vbCNPnrPP0~-)>3kOOb8OG1J?=JICHJSE51_pt$g`A#86V~`4<3Zgx#XMV z_+jz}fhURO8>~-$$6N)X%;zDH+QzfCFX&7Ep)GFa`5bdx;3fS3h`DGP$4hD7l`w51 z{29;A60Fv76_=@tKS(5z?H9 zJ)ZXl&cKHR*X{=QasNU3D|12YW6nP%4bNsH3F>|-^WN*!^Ah?v&pVU7;38y)kok>L<6bB5S7Q(2KD(@H3*tOk+9 zQXxtfDk1s3uXg)6J?Hy;&-3T+_5I`hy6=14({*3h=Nj%|*LCVLLI0e-pdrSR%h$$= zcq{w8VZQ7H$Gb=@US^w(jH|v7FSE5r1<$vpuBZLipHIXz@Aups>pt@yYo`7=u6L~T zkN-Mu%?}Op=`*CU;FwFKufG^FUuZApsJ%}+{)6l+`IMC#vZh`?tJ^N^Jji-n9p?)Z#}j3r^u(1NR zslS_g1}Oh>HNs_L+N&X$)6j}os~c7+0wH@tZuHYYhz!>2&U=i z5OI8rcs^F!OyLaq&{JPw+r0Iu^IX%p4cAlnzTucf=T8onH-n^cnCIg4^7U~s@u+(C zpuYMM%L8J($jia>_iW#~g6m42FMWiJG4^rl!tw4s)cgF~@ylwF)=uGf}bXB>8eDJ6MPPtG%uDD#1HlACBOLCF|o z%{3VR)v0&uURUjN?uT5TKcxx9Gv)IljQ=> z!`L?@8-C9$*6x;j&vc+;^c0`sukHkW!wX_<-?iJEYrk`tBzC8XYy0Pi=`UPkoKG9? z<*v{!#W7-Bw^rRRes3=hk9F*e?5oeojFCrE^(C`?m-wXd`(fsH5{o3|LDq8F$ec~R_)~RS>G-6HSfEEtnUhnPl&}$^`$#& z%Y0i<@NGe1PsiOyzI1c_p4Vl1nBP}@JV5()kmDb0Ty>apQasx9IKTVWpm>7qd}~nF zO&hhB`*TuVwPy#YLkBkt^`7I^@2S1>d!Bk~qP_jLkL^thw$B}?t+0K~LE1#~sonj) zhj~)FS-+opeSo@L>v|4Urw%q|J4ha0Y57of<_Kf1PJX|^^eVQO7e^U?oo$_QSm_+w z9qqU7_SrXHpZ=$VYwzVa$Jj1y{#f<$IOjRu{^zQTFM5}@v%2nHxb6^jx36~o9BH~$ z+Amjk|Kd9J3-!&Fm3ti@n&|&sM=am=>Q@KvnZ<9-hkh%#b~4lTd1Qa}9mMDA+iYgY zo0;;WnX;!YXoqLZi>ZG9#5qT)7emzBdyPe=ImRq`Vtw{JW2*DmWG3FbJRuHE3#PTE;Yn@aQw{Y$*6A|sd(POe zzNPkmS9MDJl>Mefs3EP+W}ep$Tfe3)i0#29(pjcGA+sr#Q>J+ur+L2>4|beGjI9ne zC1trLF1vSaoaX#iTxRSbUz74Wkk;;H#EsLex$7*D<8~r&Qbb};6#uB@H@*Kcu*pW048?6;idyyfK1VkBZC_A4#B=$QIQxH4<8zGv*QO=+@j2t;bYFd?X_>f6)#-^!^Z_m6b$?X35lrp!0t zY0qi0p3~$#rzz>@YdxpQb#rddX$m!t5&Lv~ecHI8On+bUoTg@5%a@w!=kxp9KVz!D zFX``taYDwmr(An6mb(~84pP?c5i`^MCe}*RtoIx_7xQSTdUd3G2JsxF-7DqnTkw0C z`HcCL`M9p2p49nPF~;z^b*M3pvkU&!&L=CCr?Lpot*syb)<0y_+qg~Raq86DjP|~y z-p1(~b4_X7=HI79-$ccFm)}#_9VO;>^39U(lkyY?sDs7^v0mpr8!R<3J~xJ|q0W1` zqWh?NeMLe2jB#3~zSK@|pXz=i%GxKY5nHhj&EDZU{(b72>eYdQ>#h;+QQdp`_8$6T zd7GF2rNh==lm6g+O__V}`c=}T9Af<`Js_qZbo{k>6Js^zVcPY_-{NtjSdPhS8x-{K z;aK^)jvCJq;`TLLsVnMn_JxM^#hL$oyLI>Z_xX6-WXuD3k@XF9`cCzI&9XR4ic9xj zYrYYZ-}V1P48-e6dM=ys{QtkMNBP!?fm$&T+rY-(8>cm5Ahk{m)Qf={*B+!hPS;TW zHUA+76kJ35Dh5(_s9Wz@zF7N1{inuzrln`p(HF(7Hm5OfV;XX2yVjWQnD24=isv;k zpVv<7KavN&+smbuvty+XaXs_@wLYhPZ0y6*`i`XXELEsSu`lyoWGuJrp6Z%5Fe7hb zJ&Ey>mPa|?JLZ*bt@CE?*XGKn{3vakw!TIm5T~U@`htWQ+R|~9YmIU(bdnzVQ`S{F zddOSbMd65s`Rp+b)4CHHre*q#DBH)gcIS#?s?3h=tHfx*bCZJpq7d8m2aP$&tLG{8 zp#DbN>$j8fn+1JDN!uIy+LG(c?CaS{5B*Db{f}o9sr_u1_M3RgP^SJw_3BSl*T12S z&R?lKwEx5+C{LZ^iDcxhN8q-{FJQ4c=-;Mf6-rw9=Z@I>D z-Tu=3rF`+MG#)FqOZDHnH}u_NNH?f^MobTIjD0+}Z>JrfYAk%EzTg(m5`NNFP*>$X z*gZyYf04dt<4_#!8oqEn@7eYr+Vx&sWnX{uP=Aj4sh_WjW6Ry$S9Q~;n9u&$I;1TZ zr8mYvRt#jsK&-#DVxUG0q{Kih`{cleX;uu>Tc3&XmsLl^KoA2d(`7e^jqn+Vpn^WyHh-Bmoui>Hm?6}=_dP#=T(o1pU0Kq zL*~U&{JqAs)--QgFs*xve%3#&%xqt8TKj}~a`wyGE=A+^sk_{xo*@R6Z;kSeF_&3e zzr))49e*o}<$0erS$WpKpj=xi7TOgv`eapSS``y1QKpE$ma?M=*&wAe3ejQzF0 zmE=zxkROb+z$*m-NNu zxIU$Rth?QRoR_wEuDS=j2hpB}5yn^g##-Z>WPC6FnOJe$Mm6Gg-T69oxiRhW_uNqB z;Fvl2U34GPIBnb~Ev;p1(;C+mluw*CZny3}jlVTc>(u3V>^KHZc@~tKq3phQ4DEN! zpQ35*7j3-0q!`C?l#VloYZRBs$9tW%>TFv}jr-1=`;0=gT%SgAqjmM7niFMlPn9g`lTBiOK^zq?N>Fz2oTyu>vOPt1W zLDBd;xJNE}|4{NSJ;q|Ly=SuO|C;tl8x`BJ*yhAz);o5Lp)%wA+`FC$dRJO7O}h6? z#d~n&TJksIwKuvquwCIC^N{tl(BVE9u(w3 zyuZ)OgE)=tMXIy;Sm%@KKPh#(!^Pbj?tv#8 z1D(IIzem)j`bHu67Ou?xdE=itPemPUF~D~j`P*+55%aASVk)nL5?d2Si`Mm3^ zp=8V&K9eSS6~|C(u2GECh>;rklp{-w`+EIxMtfVYPUgfyjO*N;4fo4&eZ2lPc_59Y zos^wCi{sl^MnOG^_p9+9woDo3)rEL(9_Mp$oTg37x(82MjtbV7-MikJW2A0xm}azf z@tDEiImKzCdiOL1)|{_TL)#w4YNu%2re^JYcI~uiyST3YXZORgEuJQSzVNQ*L;3Kf zy6GMwM=9R#dKO(U&Bl5CYVA|%{s)$)pr6dUXRM3$Mg3}&(Y{7CaZJ4S_flWasKid= za^p1q9yKl(wF_}M9oy7B8|LGF|I@yW`;_e{?_z$?BTB2yR^ExO+r59nmQ|E@9OG%$s6;9_R4gkx^R}Zh2q8P_DP<-j~4g)x~{Xl zAMyS;KGVueb8URD_NVva@xJturoLSgx0Hs6v7vsS;XcbWIn%SdVH<_w1mD+wA^&&v zo_4&kRi(7v?>=j|aqG^?@nr4hqn_n_A%?u;$X;l9N>kr|OY1kv$8W_${Eg=u_MNAl zTdrMDcjNE*KCWvoeO#?;cwe3PR-5bh(r9(Fy>xAB-+iU4le*W#eA@l%{?2h=TxV?E zQGe?^|C?In6t^jQ4p1_#DYa7P)=rb(=!2|pT#nECvavjE6Q_;yjmzuq+qloV=PwL$ zEYD2iZ~w>iZ`!a2J=blg{cP`9fM+$iX~r6VidoNPG9PNA%-5JN>ux>u@$X|lv96;! z9KWU7VUtk&tM==B&v0&~t@>uM&brwhgO&hl=c=anTXxB45r_w?>Q zr~N4Ud(C?9&oX|`#eWOuSMABUzIQv^ILmK!@+H=XSQks4Ij^g+p2T&H8nc@U-xjY0W8gL0TbDCdiSuds9jB?| z*G@MQ+uqUTNGbc=Y@t9-*_G{R{NP=A!B{U`XDoA(ay3m~Z%pJkIeAm`Ofhxgh9Ui~ zd?9DPUVBn}#{Qmj6}2mC`V{?2-P!WNvy!xDS=s%hugJmb$9#S9Fm0Ruu~r+GAv;eV zY2(X2)$f~zdCoaPJ3?}#vN6q)+FxJb8BlC1%J!DO&GdO>o9mBq>dh$a|BI&jf`a*+ z-|F8~uV#9_GQ*gKqWPLx%EEize1BtbQs)})`hK>w()-)^9Qp_ORT4kb+}pYz$&haJ zrZHJw9=;_H%{MCDYkTVY=tE3vj7Kx^*#XJ%w*OHZ?3jh+zU?p`jN^mcY3e9tryCEB;&p*eZ6?Q!Pvo=DntGm?Z>mOX|QV=;##L0Ck&8B11Z ze(GoV{UovK*-G74+TO2~qw7!4kx$CaKj#~=A1QBtdyq;SPx)qH-FEH&HlGp`aa|Cr zjq~eH<9y?C?0*{P*Zn>2zwYnrF6Y#t;wRFxzcLaZxhI;1hy3l?GJltt6}wSce=#>) z+GD@+mZ|Td!Uft;-%@9;)V5t^yIXt{W_@9*@dMemVvLfws(C@*K#n?U+_vK?Tq%VkP~n5USYhp(R^86f7?uac-Q;?hvJX&<~+}gCg>;B$2#vi z<8#Wqcl#;#0ky`#IsHodLv4sLXVNtDoi^iJ<@cQXj(T}O_(4CPiT{3>``&r(X?@$A z`(7X59b~3fz0v-qE;W7HvTwZd@%_arl5;O>uY}S z{PSDyHXhz+&A2T+PaeC+tSzc@aoj`pBXx6%K4!A^-~&_h8S~+6<7*0MiC^QL|E9C$ zM%IOMj0@~jZ~G`sAW7W6*1wsNTEL?C@1ltb-!awNr$m|hUog#*i@!O4nf3qeeDVB^ z=QCY1j)`Ni|8SgCJht`q{>_gXGVA%~;wj&XsLS=i^BJ-W_1FF6%?--pR{2_IyzKbF zy<++SvYk++N8E4nv`&)_oOdw#u%_&wY>@L1pF z7xnX-iPe?bgn9b={=T!)K4cD1Zoa{*GZrZ8;5TD|(mwR|EeHkQdewTS9Ivz#G#Dfb*tY45~U?sw^XqlLO`TXB^7+B36v^ojTD{~WIn??c2`(z@DV z;;v+DYaEh_--o$JO>V7DmpP8_I&&Sx_YlV>Ggw@j7EO~s+vmrP-1~^ZjDF3yGo?+A z;WPh;79 z`rp!YV8e3hG~+wU{;p2>&Z+Q$@vHmS8u=B)zk7*lO~r*#$j>UCtd{_o4{uKT~u=aoTR*Lci0jp<)^dENOk@8;KC zPR($SVV|hRGmFOg{Gxx&H`ay!ZCa;2Dfye8HTh@!Q!`te;Qlu&ZqmDop9|HqpS8I^ znKvz7tliAIN7Pm%@;r5svX7OKXC0YY z#siDQzcF&zOX}9>W?}5%{%+OZke|p7NBTQk79QbmiCM|+mb9?UaHhZ0H{IRzhHn1$ocewIP54~@9s-N}9s7oU>;0*}C$~Jsx_8L* z@Hh9g+ROC2%{=GvxA2a$@C<){Zo0^{yXh>`jA_xd(za#4o40?~zwuC@%&|Y&)8DyU zcbMfOLoIi{-%GC>wn$&Y0|0wPSx?II9|bgSMvq)CEJa4ta^qze)m(P z*ZMxExu%!~%UvzkTkaLpV!4&&TFWO}?rJ${`7X=nT0YTocgq7UUt{@P%NfgKE%&y3 zl=QvsJY$*V_s_^En|u%FKic0upJm@;q-mVjGDQ~o-3JWe8uC=0~D^*PkV|w>&eg>n?BQ!6f^RwoO0flN4J6O*@-*m8Q?kXUs1$J=yf+SpKfRp5WN0 zNoUdZ4t0&Qr0+@l)LU*VZ#u~1wC!r_a}B-O{1nG??v?%Jsp(ygySd{&WZKqris?b7 zpO_wHdWo{g{9u36g6WgeS!cfIk7D99Wg`te9djW$$7?GOv(7WzHKpa>KrWG%*XKIc zYq;hhFWQ=j{A^n&bh8dmP@wl`MbPx z?tape_j_+Doo9)E<6iyo`KApK?t{7#kJm@M9 zCYh#9Q_gc3Nv1e=SZw;5yPB%X-)=7D7xyn4e_6pZQ=uXMU{t zr1`x06V1PF-@DBBGXI(Re&$!H=cU~}BT0E*a+G^}3PebZYI`Vui7R z=VF>buiy<=bLGOfSDa}fWAZqhrVf`3D~zLonFztvsj8J%fVu&!k6Q8EUuyHh{s zw;JC)#Wa*1-*Ei0jiu4PIpg>2@9t6j4NlQ=dVqUf-+qOq4f_-?T(4nY`XeCMXNzyC~)TOOi6riBi&0 z_+C0YkHoDb`}PuRe*DYSMj>!M zJe!Vr=o+G$HR*1M$Hw^>H&M**DCS)hV`R;K>Sx|_)cTlL$}S4WD@S?QIL%v^qgGvu zF;lkvzw-4zHyLUw1jCzs&o;QoJ8rd!7Hc zX{SSPuD1<2|Fa5c8wto~kz1JmfO3!DUKgy19pTG7#v2ogXf0O;UzvBzTd4oKFu|&rQn)%ZqfwGm~2X-fi+S>;3&-e3p{hy5aZKx7vu!waxqM3(ohB z(BA~rdM=Y4sVqq!(9mATzuzmK+MRl)Ps z5c^EeSku(-U)$eeANOEs&s{^cviH2TEIxBJUm!=8WL%cc|dw2uK3LO8?m#}IN?xZ4(~e)U#KJAcNV2}O?;@!wcd56-y(c~1Z5F)S zOs~@S>l?~E6R9&_{ z+PZXn|GB^CG%Jh|4pgS+c@8vD%&b-i9#QYLO9j)Khk4MLZlw1m{{A#efpmQD@~J6V zf_E;pHS&;Je|K8APCk48TJyB`3DiaYO$YzklV_I7gFtPZZy^>aG*@;lJu6L_?y5eU zCU;Y&rs+M`^S)5qvWN2aK4VSWV;bjE&nRO`&zfpi%Sa#XIhyCzr8Bj2XNW`7Et}eYtP#`=TXw}qIw!tS$~N0ZteU>st0>E@wbP{NE?v7(pbdb zRo86dINhatQ}uga+qbs=-fZNzeeBc9Z_-^S%{gi;mt0Ft(s7+D{G`9#(K_!&g1;9o z`(3=Z(T1g6XQkf{vVE8M+)X~*r@y+^wLEBS^^o#=P#FG`OZT(Sz0w)CA#b}P!Le%kD*p#;V?JpJi?FBv^XFWiV+PHxC=Vxb zCoi&?!>=q4xA7WFN%SfYr*IRK+2kMP;TZnGBfQB{cDSlM9LEc+cXfHVj!)V2n(}Zh z(`kEcx$hy%!w6=v{&nU4ZR_&zAaB$B`tqlY2-b&@Q=lw&lo!1QXX#PO_tK;*7C3`r*kVWFq@{gm50upL>(iTMU&os=XCn; zDn&NEy*za13Z7*;zp?!t<>9Z~$WwgCZ)|gCc{qqm$ugcLRNhtY-#sV~S5nW1tfc)v z%fn$@#ZydYHM`zj?%#-$U*uUz`90;~C~jadbJ(|!^5J_a zyiJp*EprKg|!`J-v+43-ojRus5J-D9N_=@!hNB-}KP8cqq zNOLB4GK}dgr^5*Km}{wL8XJyOXSjh^_?7Kmkf+?q2%UeW4&*VWv66PLmxm+i#pArgBFf(oyWG!Wc6?KP=6zbe z545W&y1W z<)H@`@+9x`2is3q7Tm*Id{1&lc{rL|8O0(JGnFM*Gm}$6(5N^Ze|qo zsF-bEZebKlX!o)7awo6y6;+?8J6z8Y=Fnn}yyIe?W(LhZRfoBNhndW;Y(LjAxtmw` zmMuP$m)yw9EMlv9@}1im&0@CvTpFok6bsn!i}J8DXVaJWXj7CPPUk*eWf{kPsjT>x z{pM?{_>D6ch;!cND>h!J|KeQwGMD66VwUsCGMWW!__bqkJ%f0k$y8;B|gy@SpMj zXRHW+We^{*n0=d6go}BAPbqI&5$eyMY~?zr;ZDZz1ueI(2>Wm*4>67+8zw8luAD?2&+`$XT}9}^ z;atYUyv9OWZ(|?M;x1ld0UNfL9!};q1~G}BNpz?PhwyhE;&r~IV%v&v5SQ>Id75{u z2nSNf1eUO2rwZ?ED#E$k!EmPW16y9`cy;xrgT{u#9c?6c6;~c_#7|8|+o#UA8>p76vhcU)ip!@}-smOeO3sT^!1_ zJjY~~u=zd}p$9eG#{?Er*{vdUqlWt!%hznu-MQ(>`yIE@;=My zcu+++oxZ%ouWWa)eC1x=WHDPGQW1`&jsX;Ca;Vtl7;a=Hf5zp*#0MYp6V-<+LoVYb zX7UTkBjgE})1P-KKT;jx7DiK~)lu4GPNfecm_w7J)o;$_A>QOWwmC-J@lW33XWAbt zPq~XX`GYPQZ2*0FiOJBYW(<%O<~bLh|etfuQl+I;GnMzf1;#|89bBEQn^68$1K^Ad|m zT&j$@n{j-_W|t{Tu45QqQ2uxAJohq_%36IkPw)jBU0x9m<_d-~pDnJC1|DEM%h~Zt z@y$5Cr(-Yq!vnm@aytLRScG~$rs-AkjLUd|d2D)hML3LW8Nos-uW^0c%4oi&-L)0r z3~uKQ7SiTAdCR3d!zVPmUOnYJ`Z9qfY;}X!p%+gxlhy2bqd224Z}Te$-Xza>mdX4= zhnvL*H{qkSa0`?9jcsp{_gup>%wRcPZ`JQp$6%(>{x)MRuH$K@@H2_t#&ujuJ@2rH z&2E=QPN9xrOy@VYxkLGKHh1zoGx&wJcPeKt<5Ava30vGHwmF>}d5VcFru?7!8EUwL zQOu*&-4$UcPU9)&Qhty2nVT5S6iRH~$GC=G3}GURDZjTO?7_+0M1MY{)qS?-QXXUs zpU|YQGUp-&@ea+h@|lOpF_oXFy5BK4nVT5NBo@;A0c|`7aw$*pAx$6D_Hq*U@B*K* z=|kd?D;PkLCJ$?WIhJd9g17mamXGLzxr_%GO_4T_>O(l0UOdVx%waW&e)>W#k;CHS{~*#zGAbH%8Z`e&se^q z;sy1cUJT@YzNb2;?c*N|W+qKW>3=wZdw7S%RKI9jdNGvGSpOw;fg0}SCFZg9Xze^% zCbERhUbZb~b1MUQmv3k@#yU>rW(F{k@7eqnaX}p;n8hz_J63%n%S(L8#;+Qua5UF3 zl8%edir2JTT)_}#)9iI+%^BRq%Y4E5Z#V|0b2nr7hN?G>|G0;@SVot( zTqgthif!_id5&+{alH881y-}~+v*Jkk`tVp$5}w9cl6!#=S#MIR~_LQ7SirL$L1+M zrFx>ik^anQ>q*Lt@ofCQSmkl%(`mApWE|lGF~yxsq{S5R$n8v~)l|#e$A`3@=Kg_O znM}(M#W;5`k>&+4N0!-CP1iorpRedJ!*%i~^XM>B>@$Yd^q8d#8N-ik|B*c7X}+a$ zw)FA{6KM0XaRYC%$tM-z03Koz9p=bG2Jr_ceJVC+I#-?MIaYDZXVS-V4xJ~TSi;Vq zSA-jw%GO^B|_tpw&;($^{JLQ#Scox$qzh*?XCI z;xoD|*Pk+jE-Ssj^buUvy^R{Rfe;9 zjM=nrUKvhf5X;!PMP;~(WeSjFGkn5XULw&MdTx2O#F@GV`-D?M+k4BzpW3i(BgN_oY@{KiR%$}o}* zsw%^QJi_O+sg@sH&j^Za)>b;`$6|KdvNGJnWVYH$e)2XOY+V_SWxMLFUq- zoqXU;T5nSsPGJCx*}c8<@d0f+RQkUSots}cdfQ6hRl6>B?pPVFU@GZO@{SEUD{m&z zdArJR7b`fSOJ#V7#bma33|5fdp)%abQuf)=Jku!ONxt$lpL5X8m0>WgQkCHvK4$-2 z#0cfPic6N$b+^iJKPx$Ack_J5aeIg{R&wT^mEk?Q>{S^qB2Rf&F~9DUd}UZ%)P>B`V&|H`oU0pgXz z4y+89(T~?y$d(5=7T57KQ&>*oVDZk=v^bCZgc{KYl$2=CGCua)6q z2Ji({Csl?lCC)rqnUOd}?9+?qnMISoX)`#En;6MQtY(K(E5jMw!#J9qrjBtYk1>hW zbUIy(@+2S8@(kt6ZHyzFSsC`^G6wMl6*aDxzD%UqS@MXR7{?MipRL^J%Lg<)M;UP) zIliUSx#EC<%wwzb)GKafJgYeRd@;i`{-pZ_mEm6IQ{7X$!u7nwYPwyhKJyyOIp`vJ z#wgaiSi3|&Ce!i~c}j2IrpcvZftwl6YSNd<3nsGu-?ew##|Mn)=V;*8Qi5rza1NnhnZjxV&rPa;aRQmA=ht`Q3Hn~Mv z^BJvgtqgl`2|sZ8ZTc=w>}?xf=0~=^U0tLP<0-M#9oiUf=T&}V`#YVJNBN5KyYz$H z#0wPJ_@DBEo2jQjx4X3oe8S%MRE9g4z;%7J|M!YplJ`}H8=1&2T-H|}&?D;_nL@Ms z9h;~5p2Hsy_w4wf`pXaWcu1Q0ki^64Jf}WV8UEnuNA=VFTqB1+<~q6iacOu$+t0pF zN+SpLSO58iU7yy6acRBlen!4Lt54wI0ooW^4wP^F#;8G+;qQaBc|+7A&L65AIC+@k za_V#H1{XiCj&b2|?K0g)I0uJ}RMz~-sV|5Zs&bX#S~eafKiTC)`NroQ{*tj0dyEzn z?Dn$#X){I)(ef2j{-ozv^^`qc^&2IQ9;Ys{$!p?_Q8as99jECV_F+1EzA5imMCL7R zF)j1jS!QzZc(G2^+m-IEY(GJ|IP)F(&Q0%XL)iO0`N~R8nphcLVUJ0bVFqWsFP-$6 zEUrFKhWyAGQ~b{DQ>Am7`bYJL>H(AKQV=(M%m<5!=o%rPWMv#D^R)OS?e3k1E4? z3}gj8X6uL9^ zLVrM;qCTC;Z2P6-vx=MMI~JJ*#yF%GR)#l7eWlH$!`J!)I)5W=bXZgwo~7Nl>MO6& z`a5kNn=F>6OU!>S?Q~q~xcrmJZ1{urj3-z~s-#_DI15SqD6bgG0xEyf*HXtzoba>$ zW|{ord>-X3HeasYq@KBST%iu|96z$}FUpLCbY5vJ!Mmh>tqd3N8teV04<^ej62Ge( zyukvxuQCQ;6yXocT)+^%=D^kZ9cFXTpRR+C*gYh|GknI@O%mZjCa_1-L>R_0c4(IH zjy@4qlWLv_XY(LaSk1^5iLk|biEt@JI<`#suL%?3MSkJVR*CQ>e_cNj?qV@JZ;%L2 zu!y5tC&K-7-!Kt!wAv`)zpHUh+HRZ(S22~JNNkb_hjIt0> zW6nD?5lZwt%sHt%T-@;ummQ&;xbH~&kUGls@HXW~Cqf^7;20I-qURf`b2scrA zoO(yq@s7g>CnUn46RrD;^Z!-;oTN-nR`!fPB@v$bo3c1ny*Moq_Bve*pOFYZ@WGjh zFr+3CZa&Mpv*ph@iLk-B_T%0262_j1aNPxoaC}esb73MhyU4Y1=EaHd3R_*`oUGu8 zOT{1CUS=Oo`@1?&Yro6=c7^kC(3Q%b&*;)C5gwt{KN7yNc3h6RN}kaCYW0L=^t?tq zUzZ43=5x&T>KQxUp!`@s>PGXdcT*x<&q_|dSuD}9PFq9QThtd$x>Y{2&27#>iSv3V zjMWlh{oCzFe^!#dBM~0wOZK|cb@43I`JGO8shd2=M1G~yKgBftm_)0)?aM_BXDO+B z65$F)^9%d*Q5VV6>|XiA?Yu|J`x49$-3KJT5O8$}b%L zL?S%NckKP7?I_Ttzxd)KIzFWi@DaN|tv%ugj;z<-QTB|w!Bjdtt1OvF`G7%2;glm~h+oAHGF*F+{hIp1=IPf{K#piT=URm-P9fv23 zAJtFRAE8XRi`V&;9Y$(X>BkIOyx{y?$E&Plhn({=gfHnZO8dwF7Lt5Xz2iydu-QxM z8u#%5tww9(cz{_{ylj64@f|yjNrYa!L$gtGwIDcG=D?Pa1F1roE_iP-!Oy)Z2gvWGK58R$xA0=_>CUp zrIYDw^0s)U4^!A+f>@$AdD_2|2sJ#yEcSd?8S^#!z2|qnW8aDDD)UH9(ueZ_y@=w(n zUZ?3?`|}uI(&aP#H=}4e&+&MOk7)O~zK*6}I2N<1EUIVZSWT}lwPP`omF)YcV=LTs=`0{ zn0C#pLM`J6Evmxd^yMSAUau-#!WdR_Xv?Z_FSDp>RTa+TZQ86~6)xa$rqW}BD$nQ5 z)2Ve;xP}R|*sv-b!mYeX`9@XYY(}w~{Wh)&w=t1cn^c7pd77o{T2>XVWjvd1S`|)a z1V6ItW>ujVGfA{@OomfpkIk#Xbxfpei>mN9>RHHk<*tvhw5V|H+{Y|BRyrT!SjDM{ zs_-mdvQ1T0IFpxXQC$_zXEe>*R)xRPj|FVGrF8NbO}DBF$8j$OHru)?oWzsNWvgUW zxQy4RZ0GpA#BUt4O;s4eADq~}D$J+0gZyPBhi$9OsOnf1j^Juu;V0U4stPA?8!xhy zE}dNueR+o_+sP-cW+=01(WNSMJ5+^(xtbvqsoJqB9LbI3 z_<@~wstTvmhddkYEEed;VvbBz`S!Fb{7%a;J;WMs&|**d#{GOmVlVN^2v*RoYgM?3w`sn&bMOS8v&}x@nXzopO`dWO-?DRe z=jR!|XUiVeb1TD{Nwa;cLYljHgQc|JPb_dBd46H%w0g-yOr*vBRiQh*7{XjOI6$8B zI0gRX-~(MJAF$Oy;*T7^bLhdYgKya55b0t%T@I}ZSMUmdaKvHqo+8^FZXFXSJEAI_ z!B9%c(s=|f5$SRIMx+)A~DZ3xzdYQwH$BGBupk+pT!w{CU^Kn(-L0TU# zZn=Svs5(LY;88xM-HBEHE?YU1{EPVID-QjubFz?~PEtpChxJdE90^_E^PfXF3)?(X~b!%2bX$OCGb! z+47VhIQpEb@G8~kIxb&v!g=C`_0CsjjHTj&s_=Kdur$}^_1&1K?%X(aycn2e@bt#*!K{KgTNYiC%=fmeuSX3^nF^^80l_7a~AXB9{P zL(K6NyIdtLOk)fOd)!$37_DSjmYGRfWN1pGXf?*36;9 zFmcUP63>ZiMzitr+8l?9{ulcV2Kulbq%^Wug@q{fQ@rn2SR z>L0JtVuCi7K`iHxcf>oN)8$?9$V95&ljpq1pPW3=Jil?^B(cVPI=?S(naN(0ouAD= z&>zraifgAp#ZVKF? z`_J?PJj`sm&J#~8C-b@MVEr%DJBITI#}w_)o3#GY*o)^WvDbWQV-kr4#;%Ou7Y+5b&;_RZ?nm_#$7ziB6j{x9x|KC#nQrPHe6yK z`h2g=T&m6b!FBO9yOgvCOsCV2>I@%J`IA^>6zl!0|7AGK>9)*y_?lgoyGEu_u|isT zoAm0-$~vuh%eZ5XEDIF4CPZ=r~Jk(yg{>Fq?Nmv%m%wwhoiWU zIUK)Rb$ExayE_hV(teNXa0ZX^A+7h6e(tA8+r6s&`;oS#X;-nyV3xA`-pYyhsMtq2 z@d9Pts>A7wrge95$}_Cuq#n}Gubi=Ob;#3xKjp_9x}=pYli7ZMdB2?Zlv59s z27ctggY3&lRVH{imr9n8U4wK;&Fb&ba zU<@1vp%LZ*o8cRjZj89YT6hR~nxOt+G^~W%pfp8&KsPu6ZJVL)p>=cA9i(f4bHWhV z0*}CMiSt4~SOI5&Z52*3Lvxq{JK+)Vt;0zUXat?wpjO~IaBb1spa;ajbx_)29ibPj zh8w`NM^3^}I0<1LP*1QI*pA45SPx&JR;O^X7@k0u&ZrT12syfhlYwvow65W#6>Nil zP_%!fZ$Yb3Eb&i{Jxfm=I3t!!n46)Dy7>zy^2@X(u73uoSL=Fgcu* zfZ?zUzC+e2hzm@GlaLHKr{X-Y0Iq{F4Y>$|VKY1idpdF!Cc`242pMKz|A6&y2c(%; zdsqTz-~;5J6;8TB4BUm_Z0xsi7{obQlr5Gb5LgX^!AKV6aIqCz(!%6rEVJi?z*aGh%VkOoSt^u_Q^$8sy3bfVOm!JnE zLB=(hFU*DnNV^ub57F=dQmn(;K{VWjzaTPo#CVlTmpX=au1e( zw;MeXE<@y=aIz4dLec*)Z+Hh4_99Q=8`Ri`ehTbKT4loP01xC7}$!zoCHTvrfVmd1w#QVFz4=WXOCI^#e;F5kj}HAHpoy1OK4VZR~R}56%L0 z2YWOOg!S+Uyt{}iyo9RvkhhTaKJpCC0RI5J66V8INc9l80P7(M%ETk5;5}q{gdPp2 z!Fr76!G6%6VEth$e1&RHkslBbxf5_*4(A~J8TuR~Li*>Z3)l&zULYrdN<_TjHq?BH zpFzG?$Qx+=8rLn*;0?wDPoef(j0ZNtBXHg!pI`>uhVb{O6Ic$fAp8T415xlBa(%>j zU^Co>)Ss|Ua29GOA*bLsH2#dS0RIJlhS?AcKcU!H^goD(i;xUCzhNFQ7p_4vWcrT$ zg5j_U?gIA%xeAlu82o@-KheWsEj)s(zi{mWmmnER|HeKBYv49W$=G+GFRX^!5cq>V z1$x6$xB$N)+h6oN7!Prv{zGqoQE&jhLp~BD-C;enqk_1fZjkJNqD+vSfu3xTgt#Dy zgED-OJb*evkVL~n2#G<`1Xh6|1xZC14=13i93ha)F836AejwE^dN~ef@Bta zh6!en{Db0FkW2;E4w7l`8={;baoix@4-1m#P|FLFt5DO&ap4=34g|>vxByZZ#sE{{ z9Plad7^c8INSQK78p0}g0O`Ynq#v9HBN)W*vEW>A0=`3oP!RXT4dNa#K~f)fz$d63 z5hP3DHWW=AB$MGLWKI(#L*X!FP8%c>;X331kNS45BD3U)&ro%&sED$84;RXZ?21!TQ1wtX@ z18joNP^d8G1WzEc2*wYmKr4z^!aDc@Wr|^q;Rb|?Bllo8a3v5Qm=BMkKuL@N;vlS4 zko1S^kf(Hz%z-4RTP8^MKv-Gi988025MC}wI>Ac#2qntn^%a6-XGO%O63$UMNZvrH zD##DG4H>E;b`T5cs-ZSuHzY&r>WCBIrb46&%!9{}w4~plxu`>!+v-UUSre( zbce-o3YaEAQW82r6r6)EkiIG63=?4=e1H_qkpIvZ*1{DKngc0wYAwMOp3IM@$#n;IJK-_79g)v43C_X~DBLMXy22{B34CYNFZ6-6a2u2^ zm^1W-^>7{jL9VXohp-f$LWXXrLAVK#-OQmSLC7E21s@^PU>pyY!z)NP1aXI@@Ek%zu~sk(PQe$*Hw^Uw|G`JdIUM;0>)R}38seemxFDGU zXW=Il8XqJB-~jxAQWH>Ta2~9Qcs@*nD_~7Rzkn#X4{0U`ai0s!8Jwg?%8*$DRqJ;3&`w@EFEHEEo&1_rU}>3;h=391vQ9 zyn+>Q1(G3OH0BM_a2})>j1$JfK1hOWOEEv#1MeXBGRy;3zzy)1V{e5RcnWD(AfI41 zTmo?=))sof4)_ddR$;y{1~$QU_y>7bqt;*x+y#COUJKpf7=+d$H(@4R0&^YqA(#Q@ zKw2Lpm0&C!fgg}(19}!LhXUxT4=0Ft1{f7ln`3{ZQqjxY+20@;V0hK{fbo`Sa@v4h!g5vT(g zFARtM@D(y2#M;6%xB%uMTn|AETmk+t#sOVm1w4avM=*YffhXV`#T=m zSOu>j=W*=Oa14G!{uAiKumxU0u9G+itcF*R_7rjw*1>BidKxi>Yhazh7~welfV^js zd$1W2A!97!0P7$DGMq!-fwk}!a-T;{z#4c0!3!8G#K3)sxELgDU^Tpjyq7RH*aWX2 z<7LzbY=Y;I_6pVk$W`PVe1mS+aBgT6hZ==^*RhAeeJF4PF^9!)8K|3x2Q-1cw-7&g zej9PWgMJG)A@yC%5e|cL54{-H!#AjOKS&lpB4m4j9sqOU8i)_kD_|qMhobSQEr^2@ zk1!^PgUpYS7jPEBo?v}pBm9IKPf=U&8EPk>$HFxr&(Qy1H0*@0kn=g#6)r*Q7x*(= zgj9*hU3dpIUgFsB0~)--I>0Ze{2KFsS5W*7Y91ay;kP&r?1N+|{SLVV3*aZze2-WF z{{iuaE${@qkLZ~Y3#mT^$v}vM^ht;%>;m;OY8p1ccPRV?YY6+{FXZ`({t5?y`G$QS zMneMR`HnsWw;;t2T%*Dwcmf%I;&reI5+LI*NnOO#=;E- zgveyL0=|lK!YOdH5blY9@xezZqld^Wcm!FE5a|ntfipv-0j!5lP}B;M3Gfi|+aWR( zPQV}N;e^O;2)ZHC33dVNh44ONh-?Se50MtI4PHaJ0LBbTSctTN?eHB+rU;Rd@E9Ue zhDddo1uvjfc!*4gbC5C^B26F)E`u2gk!r9Q-axTbAu2K0=W1MG!gP$E-^Oo10rJadSQ zhWk)93&scWP$+ANEQjw2oYuCN_`L(QBx4kSX6 zTp=<9Hb5d&$&EFKc!wvbznQZhEM^lAshp( zAjSu4;5}q46e68r8Qg@Fg^?o=1=oNtf_cIcxB4q&Kkq$5w z&H+^yJpe8OsTU#@Ud?;uTs5UB@?;1Y-pk@qkgPJz@2YXUPN7M#Y& zBZz@3;55NGU_9IczbRf1YvBc?Y!)J|U;%uF63vkxa2L|F2;sXx5ev8gKOuEX)Ck2D9M|e1tTu@p_mAr-8IVEy7HA2$|c4$XrN(eC@EVZ~>h5I2N3R&yc)<|^UD30l z53GkTHaG$PNaP(nfc&G71MnM)jt-G7une9zOzQIJ2-{!ac|_8~YACg7kB+E-(oW!9U137q5dTxCLAkau3=<6r6$Y zkYyhF7DT~GNP>v@SVI^Jo8TVE3y?!F6E1+T5c?twfL-tb(l5fA!Cbfs>SBxwrolPj zmSA6p5wIUVL6&I55SGCU$R2~7gG2BO3NFPuz#d3~$Ytm=uoP~9v^+#A!eodAWd-62 zGvFlrg+eQFZ31WE9~4-H=Ri9c3em6y&cX}$2i9tg1u8)g7zQ(7DQtuD@D%=lx&}P} zN$EUkQA`zJ=L?s&0$^XA!$|5$t1kS}(8@>sF;5Xd~ zJ`G6luO^a;M3B@Z4M|JVk@O@3$w)Gh%p?oRO0tpcBnOEkIq{v{xk(<97yrkfpA;Yk zNg-006d^@PF;bkAASFpDQks+@W$~G^@}vT(NGg%aqzb7@s*&oX2B}GEk=mpVsY~jS z`naEcL(+&eCQWel*o-tMEl5k!inJzeNL$hlUu@TbbR?ZfXVQgqCEf6jLJ!iD^dh}U zAJUifBmKz$GLQ@+gUJvwlnf)o$p|u%j3T4S7&4ZOBjd>gGLcLolgSh^l}sbkabK^Q zWEPoC=8(B0ip(SP$pW&FEFz1^5)w^f$WpS5EXQx_uf%T;t;U`9*OGO34`Tz_NH&qp zWDD6!wvp{*2iZw>k=m!lRM-txkv7k2jn4%Cy&Tu@`OAk3FH}hPF|2i z@{+tFuW`5kx45!?Pd<>32Pz{8Ry|AXSJeOckMuQpKp^R0*miRf;N2 zm7&T~<*4#h1*#%diKQeQn`cwm|A=QX#Of{jJQq8F5 zR12yl)rx9OwV~Ql?Wp!t2dX30iRw&sp}JDtsP0q`swdTp>P_{b`cnO<{?q_!AT@{@ zObwxiQp2d>)Cg)MHHsQdjiJU;FbI&IJ4ZUjp-(IQ@R=5 zoNht4q+8Lg={9s*x*gq~?m%~>JJFr#E_7GA8{M7mLHDG4(Y@(DbYHq3-Jc#n52Odt zgXtmkPUT(X;6}^jtcM zo=4B87tjmoMf75N2^~$x&`arM^m2Lyy^>x236O zdI!Ce-bL@G_t5{*d+B}je)<4?kUm5orjO7^>0|V9`UHKFK1H9V&(LS-So$1&p1wd| zq%YBz=_~YA`WhWaU#D--H|bmSZTb#3I4P{g{42Kcy4sXY_OW1)WI0 zq+ijm={NLS`W^kA{y=}EKha6_XZj2MmHtM5r+?5t>0k73I+^}M|E2$-^-~PZFbvCZ z49^IR$ViOLD2&QzjLsO0$ykidIE>49jL!s^FeU|)k_l&mOo&OvL@=qDG)!719h08P zz+_}HF`1bxOjafvlby-IL^3&C7Du8 zX{HQQmMO=SXDToinMzD$rV3M)sm4@iYA`jKT1;)G4pWz@$JA#UFb$bTOk<`A)0An( zG-p~cEtytKYo-m;mTAYdXF4z)nNCb+rVG=R>Be+tdN4hiUQBPM57U?F$Mk0gFaw!E z%wT2+Gn5&|3};3#BbiamXl4vEmKn#4XC^QcnMurKW(qTvnZ`_KW-v3ES#;r?V8hrHY)Uqq4YDCN6&t~(X49}~*>r4r zHUpcH&BSJAv#?p&Y;1Nm2OG)eWOK2(**t7sHXoaxEx;CJ3$caSB5YB%7+ahz!Ior8 zv8CBEY+1G(Tb`}JR%9!&mDwt6Rkj*iovp#vWNWdt**a`pwjNubZNN5U8?lYqCTvr- z8QYv~!M0>uv8~xQY+JS++n(*fc4RxTo!KsISGF75o$bN)WP7o_**{xajJD#1uPGl#sli4ZkRCXFWot?qXWM{Fn**WZ7 zHj16c&Sw{}3)w~NVs;4|&Bm}x*=6i~?ksyOZ6;?q>I}|FL`7ee8br0DF)<#2#jkut(Wr>~Z!4dy+lHo@URmXW3Zx9DAO< zz+Pl8v6tB^>{a#}8^>N}Z?HGnTkLK24ttlq$KGcjun*aI_7VG-eZoFv6WC|$bM^(B z$i8G>v9H-T>|6F7`=0&4eq=wfN$h9#3;UJ*#(rmius_*f>~A)i{lorc|FMLlIGSTP zmg6{{6F8BRIGIy8mD4z#GdPp8IGb}gm-9HE3vgjv3N9rV&IP#;mx_zvQgdmzv|Kta zJ(q#Y$YtU(b6L2oTsAH{mxGJsa&o!2+*}?mFPD$Y&lTVba)r3UToJA)SBxvpmEcNp zrMS{u8Lli>jw{bq;3{&JxXN4=t}0iJtIpNnYI3!>+FTv3E?1AM&o$s0a*epgTobM- z*Nkh`)8?G(aj%&|#;5u@hxXxS`t}EA#>(2GydUCzE-drE9FV~Oj&kf)P za)Y?R+z@UkH;fz3jo?Odqqx!B7;Y>#jvLQS;3jgDxXIiUZYnp8o6gPPW^%K*+1wm% zE*Hhk;1b2qq~+%4`lcZa*n-Q(_a54eY1Jokuu%st_ratYis?m72@ zOXOa1uejIT8}2Rlj(g92;68GnxFqf~_l5h)edE4!Ke(UVFYY&&%>Cj1a{oBOQ#{Qx zJj-)D&kMZBOT5f0yvl35&KtbRTfEIXyvuvM&jSnfWYyRz4e_ozKBX@;Uijd~QAupO??a=jRLX1^GgJVZI1olrP2?=S%P< z`BHpoz6@WMFUObXEASQhN_=I$3SX74##iTS@HP2bd~LoCUze}P*XJAX4f#fVW4;OB zlyAm2=UebC`Br>uz75}&Z^yUiJMbO(PJCy+3*VLR#&_p?@ICond~d!F-Y{A_*> zKbMc<=kfFT1^hyO5x=~Ka zPDn3g5Hbpxgv>$~A*+y0$S&j%B88knE+My&N60JW6Y>iMgn~jLp|DUyC@K^aiVG!# zl0qq=v`|JUE0hz;3l)TlLM5THP(`RJR1>NTHH4Z%EupqhN2n{*6Y2{MgoZ*Rp|Q|J zXeu-lnhPz2mO?9`wa`XrE3^~Z3mt@xLMNfK&_(DfbQ8J@J%pY@FQK>4N9Zf`6Z#7S zgn_~!VX!bn7%B`Ch6^Kvk-{ipv@k{(D~uDy3loHi!X#m`Fh!UuOcSOHGlZGKEMc}V zN0=)_3G;;c!UAETut-=eED@rG7-6ZfOjs_g5LODSgw?_tVXd%ESTAf4HVT`B&B7L8 ztFTSjF6>DWF_)NI%p>L%^NIPz0%Ae2kXTqOA{G^kiN(bd zVo9--SXwM2mKDp1<;4nOMX{1tS*#*f6|0HW#TsHwv6fg{tRvPH>xuQn24X|8k=R&l zA~qG9iOt0pVoR}=*jj8OwiVln?ZpmaN3oOGS?nTq6}ySu#U5f$v6t9e>?8IS`-%O< z0pdV$kT_TzA`TUYiNnPa;z)6nI9ePdjupp=siX)gwUkCm zE2WdtOBtk$QYI<0lts!aWs|Z?IiyG_r<6;|E#;B&O8KPxQUR%;R7ff;6_JWc#iZg= z38|!1N-8atk;+Qtr1DY)siIU#sw`EJs!G+Q>QW7)JSS9 zHIbT1&7|g13#p~lN@^{&k=jb_r1nw=siV|M>MV7Ux=P)o?otn_r_@X8E%lN5O8un% z(g10oG)NjO4UvXQ!=&NT2x+7=N*XPVk;Y2nr18=OX`(bqnk-F`rb^SK>Cy~orZh{M zEzObUN>S20X}+{TS|}}&7E4Q{XemZoDlLEfWCTX*@ zMcOKDleSAcq@B_(X}7dT`cK*`?UVLP2c(12A?dJmL^>)Rla5O#q?6Jq>9ll4IxEFW z=cMz}1?i%6NxCduk*-SDq&VribVIr+-I8ugcci=0J?XymKzb;}OOK?-(i7>alpsBm zo=Y#JMCqmUN_s85k={!0r1#PX>7(>XN|HWHU!E#S^Mmdw5S(_;eYt_$P;MkQ zmYc{;BzKm($X(@ba(B6h+*9r)_m=y}edT^~ ze|dmBP#z=?mWRkgK$H-&laq@V1f;>^4Bu|#7$W!HM@^pEIJX4+} z&z9%NbLA*`o;+V(ATN{`$&2MBa>`D$LQpu_0QgSPKl)OqlCBITYDX0`u3M)mFqDnEP zxKctXsgzPmD`k|jN;##xQbDPxR8lG{Rg|hqHKn>zL#e6MQfe!8l)6eirM}WYX{a<( z8Y@kdrb;uVxza*uskBmBD{YjvN;{>!(n0B{bW%DiU6ig$H>JDML+PpXQhFx8S*@&5)++0i^~wfiqq0fa ztZY%XD%+Ip$_{0xvP;>m>{0$x_A2|7{mKF5pmIn#tQ=8}D#w)L$_eG9a!NU^oKemy zvC28+ymCRgs9aJmD_4}O$~7fUxvtz$ZYsBw+sYl~u5wSguRKs5D)GuA<+1Wad8#BR z&y?rN3nfu`sk~BND{qvy$~)z~@&&n6&tMX0xuKZAbD!-K9O0x1t`K$a> zh)Sun%BZZ$sk|zvqAIDfs;H`}sk&;YrfR9S>Zq>jslFOe!_*XNN;O;!sv$L%8lk3E z)2M0HbZUAvgPKvzq-IvLs9Du)YIZe;8mZ<~bE&!2JZfGwpPFASpcYgMsfE=dYEiYA zT3jummQ+irrPVTOS+$&6Uag>3R4b{K)hcRLwVGO8t)bRbYpJ!>I%-|Do?2gRpf*$+ zsg2bpYE!kD+FWg+wp3fGt<^SaTeY3qUhSZER6D7i)h=pRwVT>q?VQHrUwp9x>4Pv zZdSLbTh(pqc6EokQ{AQRR`;m?se9FZ>VEZrdQd&29#)U2N7ZBMarK0HQaz=fR?nzs z)mZhMdS1PtUQ{osm(?rkRrQ)0r(RcYs5jMH>TUIodRM)t-d7)}57l_}k@{GDqCQm< z)Mx5*^@WSy(f`c?g=epi2}Khi z)=%rN4bTQ^gS5fg5N)V7OdGC^&_-&bw9(oaZLBs<8?Q~!CTf$k$=Vccsy0oVuFcS9 zYO}Q2+8k}J7NyP8=4%VIh1w!*v9?5u)?&1!+A?jqwnAH}tbw5{4UZM(KZ+o|o+c58dI|Fpf@K5f5tKs%@%(hh4!w4>TF?YMSAJE@)0PHShh zvs$cnPCKt%&@O71w9DER?W%T7i_@-aH?*7DE$y~;N4u-t)9z~zw1--}_DFlIJ<*BfbTj(wIR(fl_jowyor?=NT=pFS=dS|_h-c|3Wch`I9J@sCCZ@rJ+ zSMR6y*9YhW^+EbzeTY6(AEpo2N9ZHGSmk`a*q?zF1$PN9!^AQhk}eTwkHD)K}@N^)>oheVx8u-=J^Q zH|d-8E&5h{o4#G&q3_gp>AUqk`hWUfeV@KxKcFAf59x>XBl=POn0{P8p`X-G>8JHG z`dK|zKc}D9FX$KbOZsK~ihfnUrpM{m^&9$4{g!@PzoXyP@9FpT2l_)jUVo%N)}QE4 z^#uKy{#<{dC+aWtSNd!Hjs8}Dr@z-f=pXe@dXoNG|Du1@zvKhG= zhDIZ!vC+h6YBV#N8!e2MMk}MW(Z*qqot= z=xg*d`Wpj`fyN+Xurb6KY78@m8zYR7#wcU7F~%5cj5Ed?6O4(*BxABM#h7YLGo~9e zjG4wPW41BJm}^8C^Njh%0%M`E$XIMFF`|taW2v#sSZ=H^RvN2})y5iQt+CEnZ)`9& z8k>yG#uj6%vCY_S>@ap3yNun&9^*e_ud&bAZyYcV8i$O-#u4MFam+YwoG?xrr;O9a z8RM)GYn(IA8yAd=#wFvjamBc5Tr=W~>&6Y^rg6)-ZQL>L8uyI*#slM_5pO&)9ve@L zr$&PD%y@3RFcOWI#w+8s@y2*-yffY#AB>O2CnL%DY zzs5gHnvyA-im95KshfsrnwDvsj_I17>6-yF%uHdXG{eoH88TCu z5oT&LjhWU=XQnqZm>JDXW@a;snbpi@W;b(~k!DUamzmqlW9BvUnfc8EW&CM2OOS6^P+H7OCHQSl(%?@Tqvy<7`>|%B`yP4h19%fIom)YCw zWA-)snf=WH=0J0hIoKRx4mF3F!_5)qNOP1q+8kq!HOHCb%?aj2bCNmPoMKKjr5-rJ+EyYqT&C)HyGA+xpEyr>#&+@H+6=tQdQd;3w&T__qE*SNY*n$UTGg!TRt>ABRm-Yv)v@YY^{o0< z1FNCc$ZBjgv6@=Vtmak=tEJV-YHhW#+FI?b_Erb0qt(gkY<01^THUPfRu8ME)ywK_ z^|AU|{jC1h0BfK%$Qo=7v4&d1tl`!OYos;G8f}fS##-a7@zw-uqBY5yY)!GITGOoQ z)(mT=HOrc9&9UZMQPwd1##(Ewv({T1 ztc}(tYqPb*+G=gHwp%-_oz^aEx3$Om&)RG4v-VpDtb^7e>#%jiI%*xWj$0?Jlh!Hg zv~|WhYsFgUtn=0d>!NkZx@=vsu3FcuIP1D~!@6nRvTj>%R5CdT7O4kF3Ym z6YHs!U_G;*TQ96c>!tO|dTqV2-dgXh_tppNqxH#3vOZg1tgqHL>$~;C`f2^Lep|`b zAM3C6&muNu(>7zXHfQs;V2ie7%eG>xwr19kfGs zDm%hXZKtu*+Ue}{b_P46oypE@XR))|+3f6g4m;A$Y3H(Y+j;D~c0N15UBE7A7qSc6 zMeL$>F}t{3!Y*l-vP;`#?6P(_yS!b&u4q@XE8A7c9cEOo^LO(7ut*L#r6_A+K#c8+RN+JRR z279Bu$=+;lvA5dW?Ctgrd#An2-fi!(|Fien`|SPp0sEkR$UbZzv5(rv?Bn(c`=ou! zK5d_|&)Tu}Is3eQ!M`4mx9r>Y9s90*&%SRzupip-_9OeT z{ltE1C)m&I=k^Ob(SB*avR~V8?6>wi`@Q|a{%C))lkCs-7yGOI&Hirxuz%XW?B8~> z{m1@m|FelhIkdw#tiw6HBRHZXIkKZTs-ro&V>qT`Ikw|CuH!kr6L7+u6i!Mf+zC1% zCzTW7q;}FcX`OUVdMAUE(aGdwcCt8Goor5aCx;X19ykx3c;}Jx z*m>eSbrPIs&U5F5ljyv3UOBIwH_lta)3%Z5e z!fp|_s9Ve}?v`*%x~1IGZW*_%Th1--R&Xo2mE6j16}PHe&8_a%aBI4?+}ds(x2{{y zt?xE)8@i3$#%>e0soTtL?zV7Sx~<&SZX36)+s^NPH-o>libPf6nCmS z&7JPfaA&%++}Z9Ncdi@d&U5Fx3*3e7B6qR7#Eo`i+@)vzkyARxlZoK=* zee6DQpSlU|Gxxds!cBBvy06^V?i=^5`_6suesDj!pWGz(v-`#U>V9*-yFc8Y?l1SZ zo9zB^|GNKN;!z&$F&^u29`6aB=t-XJDW2+Sp6(f*=~;`FfWCd(hK*3 zUdT)3MR=*bG+tUSotNIr;AQkOd6~T|URE!gm)**jU$dU!p( zUS4mnkJs1h=k@mncmusb-e7NtH`E*E4fjTPBfU}HXm5-+)*I)I_a=A~y-D6=Z;Ch7 zo90dTW_UBbS>9}KjyKnf^5%K-y#?MvZ;`jyTjE7~G2T*dnYY|q;jQ#md8@rO-db;+ zx8B>}ZS*#Io4qaGR&SfP-P_^q^mci>y*=K4-d=B?x8FP99rO-)hrJ`-QSX>{+&kf& z^iFxFy))ifFV;Kfo%b$y7rjf~W$%i2)w|}!dDp!g-c9e8ciX$;-SzHy_q_++LoeQY zT~Oewd%aPw9vI zK|kcD@+17zei}cmpUzM3XYe!nnf%Ot7C)<>&Cl-V@FV@4el9<^pU2PZ=kxRX1^j}3 zA-}L+#4qX>^Naf>{E~htzqDV*FYA}{%lj4lihd=(vR}oo>R0ot`!)QUel5SYU&pWO z*YoT94g7|FBfqiV#Bb_1^PBrE{FZ(zzqQ}SZ|k@7+xs2-j(#VUZQD2h`!oER{w#mCKgXZzNBQ&o`Thcbp})vq>@V@7{TP3#zsz6mukcs;tNhje8h@?7 z&R_3u@HhIK{LTIrf2+UE-|p}5clx{h-Tof`KYy>k&)@GK@DKWj{KNhc|EPb=KklFK zPx`0))BYL%tRL&2^UwPi{EPl2|FVC@zv^G}V-}@i@kNzh=$^Yzs@xS`t{O|q`|EK@U z|LrIHfBe7xKc57s03BcgY=8^!0U;m;q<|by0%|}D=m8^O2CRS`Z~|_?3;2ORAS{p~ zkTMV+2nIrdRDp;<>Oh)6+CaKM`ap(2#z3Y(=0KJ})VGcz+Y zo|&1Mnc;js#y=wIB}CGzQqNw0zrWA3t$GoWk&%&+k&%&+#r0yTc)EC|ct!DS@yg=4 z;#I{P7jII$Y4K*on-@2V<)Txp6syHr(JgKkw~F;*qj=v&s_KIGy zUmO&7io3;O@j~&M;w_4|EZ(Yk>*A<*o1$ObD~^kkqAuKBV~2;=_s$FFvC9$l{}lk1jr@_}Jp(ijOZoq4>n& zlZsC+KBf57;?s&xFFvFA%;K|(&n`Zv_}t?2iq9{;p!mY#i;6EUzNGll;>(IJFTSGq z%HpevuP(j@9+v;w;_Hg9FTSDp#^RfbZ!W&2_}1dvif=EzqxjC^yNd5FzNh%!;`@s4 zFMgo-!QzLCA1;2R_|f9WiXSh2qWH<;r;490ex~@@;^&H=FMgr;#p0KWUoL*7_|@Xq zieE2&qxj9@w~F5`ey8}|;`fT*FaDtT_r)I;|DpJ!;y)Jusrb*ue<}WJ@!yL7Ui^>Z ze-{6%_}|6GIE%f42N{<)1JALircVzf}I^^8YFSO8HmI zzgGVB@^8T7&405j%CfA=zg7P2^6!*?xBPqM-!K0``47u~RQ}`gsq&wc|FryPhCEnitaSH7xzaQCZj{fLx693PtK2Sk%H8tS+({faf%d_&e<)oaJv+}%rRK5hyoL-i% zE8nhs`|=&ie_Os|`A+3Km+w-(Yx!>FyO-}#zGwMf<$IU!Q@(Hce&zd@A5eZ^`9b9e zmmgAoX!&8~hnF8weq{MkHw`9mhxN6Z!5pO{EqTF%kL_`yZoN=d&}=DzrXx}@(0TwDu1~Ak@82&A1i;n z{E6}>%bzNLy8M~)XUm@}f4=;M@)yfrDu22BmGW21Un_sT{EhNA%ik)0yZoK`9I75RsQc19vrOxSoO!NKT-Y3 z>Q7aFy81KKpRN8}_2;Xc=L8`bmG?P{~y zsH|8>a2QgHL0f6tU9kARWDT+)n)a%>g}qxuil~hx79mV?^L~W^)A)B zR_|85d-WdGdsgpNy?6CK)%#ZOSG|Ar0o4aqA5?vC^&!=VRv%V#J|5zOnkI>YJ-?slK)Pw(8rf@2I}B z`mXA`tM944xB9;7`>P+Qez5wX>W8ZzseZKjvFgXGpQwJa`l;%ttDmWUw)(m1=c`|+ zezE$c>X)luseZNkwd&Wa->81G`mO4>tKX@9xB9*6_p3jEXM6sz`VZ9~RsXU2Pt{?6 z*dM*&>e2P1R~}t^qm$wA4Q|}H)|t&FgL~(*dUG(HZJeGBmoE_P7@?MzU)||0cUJCP zyS}{qnq+8$7=sFUSob&OV#7iBXzw;g120RQVc%%+5{_UR9eqedx#Tq`p76*sG`G;iG!8I~iYuR|C=g6trE@J1H>`0Q|DspFQl3 z9?5yYe$*6RPL;XZ!IqtN8nLo&kI(AKYyeh+jllZ;)~0B33PO&x~}Hz)lE)+eEuYW-^8NQhE>HmSi^ ztWOS^S4*)EmJ@zHT9e!p{;$s4ycDhGlw_Vp6ON3??mR7=iz{e6&;%MQXM}+>;g4`T ziVhIqwV#jB}*;$$J^&acYneyh1RX!_#Czz`;)qMT9%5`fT(ej)_ehk z{H>_rAzIr9&%t3hCaR-tS4vSrN88sO(UM4xXb)SACJZGE==G)RjrCA6R+i@avfB@6 zY^6VS2QelSrao>Df!xu-{>|&pW(zq?@VSN2^V$?pD3~8gRSlD3ep3qeG#X7n3d~Kv z4Krz)d!iUwn09yj!xstb593A+yse4>0@@-k9RgSQDL_K8agWBfY$Gu0NtD1_ra&Ef zv;JV@+2u()+%!%DTQtun6VjI_y1VLuH7TwQ?%%J0<}oqD2%-USo9=Wr0Kq27a}8V# z64;`tR#VE$wItfi6ARd+DP~6JQGYP(-y5b$A&O+R@u)vM2Y(?+7F{2(Nt4f^?eo)n z)Epy5E{I^!7D|~X6ge0DSY|7?(76PuY^){8B>-;HUGGnO{nL7TeBz6+Seg<igqK+VH6cJUCVhm#{lN z6_J;;3D*mwnDqB2{m~S|cS%F(hc>Amj36pKtxvk6*i`RD>UQ9Hv9dXMa{BaOffS7rAKd8r#@thX=lTwBs8ia61Mk zoyh|hZDFCCCZx_|lNS*7m|{eYR!JEFoR8GH4EI`O7Q;+B6^o6XvsG9)($Sd(vm}yB zL&VjEAoglJS$b6Ok6)}uyW{DA`3`MHrX3~0&DQx0-DF%w_v-t69$5~yZoSjMHEL|H zFXJK!*xd4z^SWH!EDE8psn%d?-49Yorg7XD&2nTZ#0;&+FT!pyf&g29(*lfC~ zLt1ryPY14H@XXW3W|D)Ly*%l|7JzelC(;9!Q7lNDiU;Tu$LaYJ9umL-9-B2HCFVfS zbMa6%v^xbsS9QIyJF)?Ltc(`CP=YKZ7O{LGNsN*MA!7neh!~C;LRk|WYUg}*c0PlE zARhU{F75b5kB0BU@(p{DQ*n+Q$T+Z+=fYh^)VW&(l(T38@e^~k5OM23GY(^PO&#pc zLxn4svu5$}@)CYES}#YMX-s)>mBm*7pv|(SdgR)n>$3^JVB&#wLHd{>O_i|?7gQnd`IV9JY_o)!~66xg)rU6LLl%$s)uI zJ-5KjtI%|K30x~~_S;hwtV%h6am=SFX7=o4WiZ+p!3qv(2X+6{H7Xr2?DzW9!SNA< zj2Ot;!HuVmAND6lvq^t2n=Y^E%Yf_~MoigG9U{nX1`JLkGzogT!?mUp`N$B8N=3(1 z-3(ZY)dpSWK2maPk_-37;~BRYPOri9Y~bi5L@83)76lbr$-?w)OsN=w)_hAA^yRR( zx!)Z<7>sI`j|@f~e#6ARn|;g!z62?3u>Z3=h;hs=ppaRI`UD6= z@+oY<1XSAeG9fAIx(Mp05zwWG{7*biVme%-5YFso(x;YbsZ7B0XnG88*+i!5-h{k{ z^NAk0##zUAt-du6d6f(Qq9|HQY?FuOQVXuPV=1Q&+G+PQ}4my&N31*W{;Rp`B#8vQAVC@0DR2M4PP{?rwUR5~j0_ASs`Dz$j7~Kum zsc2f6@_Qn9Mme`A=cVOQTIqR)JaDm8M?m?ICB)h=u4yb`OUvRk&~vAUQ$Ac7kB4>N zb7CiW^a4pg4{|1V@z@wr!ux|MasDS7+u9UsexqxoO38N9;H^QBrVf}Atp!49hb$OK zrG|9wtc)j<@k@L4?0hmJ4w}Ttnt7*3IUs(*%xEadiS|3{cA+g0F^ZC&6VSGU-$6hz z4x&-~A0F+q8`alRNze~%=$#V3-AHm5dFTZbvoTH8%b?`Th%6kEx!-1Y{Mq4v9Zi?> z!H8X}_?*yL))YCMa+GKY`?9TY--G^}4+hRKc=*UnrLcAcwsr{qIHuS(_#CL)@PFL< z6GYLWvk4mG)5NoEFw`^twV7u8?^KmZ#wN#wV3TOrL2Ztl1os3InOC3Io)6U{Djexm zxXgTyI*A}!48jXdzzwW3sIWQP6gQ@gOmv|Qh!dYB2t{p(XJDoct=$CpK~ z|q|pImWQ`EqkJQXT0$m4RWQ;NCwZdOtH%LszP|{*b zELYB|13te8R2wD*6s_#Rdmw3&;DWB{nYpt`#H8ibA$5&TZF*t^%*~$(9ruQMn~ACv z0nApR2tBXrWaBj|V;+<^69-1Z4m$8vgV|G~8biWigItrOfl}iMT!iL0`;3Q!>@G2- zFD(uS@r;NcIeMt-rY#N|7@Sx$4yv#ykw#(lyn=39YjPqhD{ImQ#h6}MOC@SHx*w9Druka-ObSB#R#zMggIj&VD9)0NRnzStN(-}4f0EO6k%EDvWLETMXC{Kr@?ysJoqmqrv#z z`F&aTE!r>5yev{&KvtETNabC(8R1^4%~@>J z5v;}4{_#U9cF?(VtDbd6CvbPChOBfB#)-;Jq7@KmEJ2X4D_BlDRYZ{gmry=Hh(8D% zRxX7aXN=`tg;m@O;$wnF*rxVn!nn{FVzAjqei{+bW0mH8mRM;N(<90ikc@euEe2I;!didUH~6H<%1j0a+@?D| zbqXHR6bV3=*4bcKpEOB12BV}v@j^}nN0S`3RBdy z2&3zXE{j2vE%t`wQH&&?P$uOe9W$lnvG`` zhtp=^V_l>m=yBFZIR#6XJFgBaBZe#IgCX7*B-*hwPPu2CS5_34MPW~T!KRfv`ph@Z zT#vTxDbEUjS@RrzTe?YMhKF+ri|I1jT^WcvMC#UZeX)277aKkKKhVILRJ0))i!5|(FG4upp7YX zI$Y1nRaKVbLZSKF$yL`?Lcx91!Ar0A2fhou@_5`)STCBlof`AqsZvH>jI@%6u7sn- z4=EH+Wy7$>L<%Ch?XYC&EGc;F42C)LqWPo^$q&x#iZnrB_^4~O`!ZVzVR~B|Ja|}R zD?kQeAGp@b|(KmEMF@;|CV&gWG0?t@B=u$W_J50q{4dJ@F92` z0L36TL4ienm&Eb4um>*~jEU>UK|jKSdOHx)>YSYoFJ*~`X;bv_$lrI`<5aR0o(L+BYGH3uP#R*K@Uu3O!Cspt5`i6@%wR%m^@t zAvO{!1sLrtfz_6{zDVDMW0GKBffKfjsPHxns?lkSz|L7cvO8>nr1aK8X-U=Md}%q< zbyA!bA1zpKOE$=R!rN0FRfmsJ+8Axsr%?Z53o?ZJ59-ZvpNf)eCPU?dSvxHaB$<}i zvXQgZ3vHQ!wAxXu_ZBFaBB%sHeMuPL_Ovw7pW) zX}F#?mz-#v2Dkc(ZTH|gjPZk5L2ZL}5Jf?n>kQn#N<7UZA#I_+W!9j9)H}-VlX}k5 zJa950x;fsqYfc0XqnjcTTozjU?dfWa20Om7p>ArRiO^xK1wj8~C_T#BUFvl3OiD}) z%~GX`^0MD`x_Zr#3(LY`uDabLP%)ynnyX_I(WDqVR5Z7=L1+(E|Cynmwg<;)fr{%o zjv{B;1ImQi42t0t`Vp-&ct4=dF~5QWyULB`F-=3`NaH9HkOOFzQSjEbG{sGWY5X#P zl}o>4>Igao!;!blwMM0GML>(ICgU?e(=tbKUD2>ToH2sRX6OePg0dGnMI`CSFe<9N zsQL%G1(5w~y;NcrC8c5X>UAdkf{CjlroNlwhKb9TDNwbJq*>`riH7lNmLFrP1uz7kZi|p_#C~jWoB1FMf}nhw z@5s$|FP|S8$7-B))pC-8O?x{AkLb4R+u+{$EHNY4SK$fd#fGH%O zC|ohfEH_wJC0{Za~!IwW?=!`@D{*wGGnR5$RpVghSySZR-_CtuDycatBP} z$!s^LRk^Dn81xCsN_}%lva>SZa9h~99g@~emwMEEQb<=hyF_~(Lo}&enpiE_bZ4Tl z#JA-aVIZD&pXW`hK_x8IEtO9+dckfymGOT}VL=o?mY zNs=>;*HQzX~Mc;qCihj9|#(Q+r9F(;G8ifletL7fV5(Ox?k zqLV&@<%4%jm6VB?i`TEyRzLmtz0o+t*|?jzfuN8Q`f9i1(}9fc0?FKQy*ufj!Ff54 zJ#s-9D}AIRDd@5TjhHnZc6~N;j`GWA<}S~e=ipd78luHJdb1NfDDL*HsWXyO2!JtU zlBP~UqphQRX&i!E7;T8^C&136YNo9wBnJvdU9*P!<3kqNY7PU$xKrYUnmP>}_5LXv zE(U^6Ri)&>g@AQ7u`oHO865N7&f)H}9mwfe+kl`3{PPh0M;Av!2W)5ZYesgzVz@9b zvPyOUynd!*EO7_>H?Kddi{09OYEoi%gquUB3k?#LBMp)?3jxXko(z;yGgt;drH$7{ zC*F!<53a4RTLkrBRtth2YHX6ASG+PAoIEg3zl8+Ab{#Rl*|=MWB4EfIal8L$0H?@M z=1dK;BJG=bz!K07kQRsuwBu`t;)cbQIMaz(b`N#^bF_+-iH(8l3j>tPijcmxKVzTu zE8_yhCI#bw1EfQm7A$d~bOPZ4(;+=gMFviUzal-7fjlOOLUj$P|T&T!8_} z<0$4WFY*qxl&{`qII%%u$a6v4$cYtRg5{`(2iB&@_Y{qW+Z>PzBt|EQl{_D##9B;C zK~oAZ|4? z8VrG>u=viEDTQ!q>@o6E0G9Dvgk^EWL#%|tH}TI}c;?Gs#yTxZBiS5w>77jU+~nNF z%W`SW@oRN+HYJRUV;oI`5@<>g@NHFOx6;}%ClbEBrjLr4DPif5Q!;T3j0O_-NCGF^ zzc5n~5t=Qevc)c?L_{U7wzNIA~V)ge7i zMTQWUIh2jROV-{fj(|&ugz_-OTk{!2iR|k;h|$B84?_&J=&OgRsHFHU1;321EKj1YP0qeLT;W z-ZdEkV4bET0B6QH#wdycuDTiF6&O}{T>KglfZMY)Jl4tU#`?(j4%z|AfjmHI;PiJl zby0*tyBCm~cw!Z4CQzmU7FNf@A-g695#qD{q-F)m;7oz3hx$l9%-XbsW{uT+)Q_I% zerOgj20&f-GTY>@IMKl%3eulda$Pj0dTfa!?^;^ZHoDNVD1h?CNnH?M%~WkLo>p-_ zjdbW4EgcM$1Yd`erRS(zRswvx7Y0<3V-;Mc$5X*^4cV+m5AdbEbI7YTbHW=Q6w3Y> z)Wz5#(m?pkFcd?pPlN$TLBgxUanjB!pCkiK(n6dfUlvFe(E1JM<8e{||SAzgLzc*zIc7(;AgzMZ7m}{Xe3V5ZyKc1M04Fn69(^-8A3mhxN65)d- zt$?2rBYH3bA7+X#w$BE$OaDMgh3!7FjQ|F0xf8cBdIY0$(wRIs$LlR@$!c5;kq-h3 zkNfmu(^-o~OZ1&HtXkd@8Q$pt|L#%Eo?zG=PX{yb1>{Q|5%!74$mvBM=Z1Ufvyr79 zQ8Aoj&$z3(Hl>^pjV{Oq!h22_su=;?;RuMpT8U7-@nmKj3bQ4Iu$&eR0170;-Cv$^ zhKm&JA7M@tZ%=aV+l5hsS#&DG1p&|1^cXz?HG#NWdB}Ev(yC2eZW<|i(fK7%S}Eev z06x5lb9&*YKxOSo;$OwSJfl4ZO`n+%! zAxn+u>||vy;-~+t#*$~qxWCM%EvylyudGwM9M;o^wRg2?b}p)=!?F<_de z445$Y40IAwE4JieLE#B=bVl$v0aW}upXloVPGD~mtHIZ33Z$U0gSLnyBa`8uhPrs@ zhSmLT)xyDOf*ZIgEV4Ln)nhCcuTmh;MkE|@Fq-nn06GF~`<*nGS?0A*9S&FE-HF;N z9@)qZHf8>(uK_03fJPp)y#<2t)#8vXbzW;BKl|g3e0h>^fi+cvV1uDJh69({Hn-#$ zam4fQa1*dNdnWB+a7QG*##v$|heFaI?&@zTU(^W-{kNM<#*MgnZU4(1H*-{UWf?D%iW5&#ma)4h4$L*G#=!FcRW@$@rjiXzz=s zl4k}MT738pioYTnW-a#8sL`aBPeg|C?I%W~9cFtxAA|1Gndy*eEpstZuYYPa^P6 zIL}AgfbzObfR^)SW2g^!s0o#PwKpUqwgwx96Q1Z&BH(a+@I0evbq$DyRxv@3>zmOd z&1xG!Nn;GHYBnK>uK%q;ZR8bQCyUPRw*IJ}(S8U}zAC6MZnhlaum3qMI8W|{8FIjh z3nq3O;q$ITHi9yFns~6#L#|18MgsIClj*+_)`|neBJDj`H`p>GpFs(Uj_{OaKWD~^ zJoYOfZN{@vk z^H^d#Ii`5fmu~ot9*cV76FnA|OvXzV7X~V`fTQp8SRAoxxuNHI9QfGlJQjkT;$SOZ z@BtkgIO!!EodK4K5j6Goof*IDL_GcyqD+8OrE&z_ir>u~Xe z6pgezZuXw`GguaCKOst@SwpA8#rMq|+D>1y^i;%|1Ftn$JcM#}SZ72*@@RY$wNEcz z9+JNfm$Zzk*8MfkwR2NsC0ecAl0%cNjm}euc@xqqts0~nsllx+kY*dv65J%FsP2>2 z6#<+y7!7l<)%F#__6h>SVmuKejWZdu$%D@9h-^d#hVmMdSecCqPdKeD={Dyna$yBJ6E2*0T(WFLXDa2lD_IWs^h*V`(~8KM@Gb6PP? zOL)v>!KC4^&!U0p-cgXwgMme@#DI+OX6&4tl6_0LU*Q(Ut26 zy5^x`0^87piIXA~KuR$hY%nd@us<&`BA$>0BW_v~G7&vW7P)}W>7l>!m9Ezy3R#Pa zEZAhj;^sOD5DjD;P@WySl~f&}2~g?4rRb4%pqB}rq;Z0L3aoIV61XrR(+rwG$>2kP zCX#3Iy%g5XKwv&bQV&=oDUfMpa%?@*qgpC99|{+-iLYZN^jil{=?cy|{3W?~~f-h@t)cqy!*RZ5`WfTc|lgimc=z$Fq+DD!chUz+z+?yv_^ zG~W~%3N7{mI8tkatr5={lf_9ih1eI=w}kpcT49b16oa@~e1=uwX-N4hafBJru)0)H zjxe@cpJN_))mKP$V6#N8dH9U4z{Mf%?$k%}f{kQq$#|<6D8d`Fkc44oR!CrDz`$Dw zQg(n@iYMV;d8rfOCK{F}V(pLj#-~>5D}z5^s)qmN`XPeaN%EJ3b~ z&*AzLPLW30}G*iU;&($m`?os3Ity5$N9fU|hD?FFq{lHd;iPX$M?xY9axab|XKQN>9`{UHfBiRsK ziJ&ftld#FxyD4>R)&;go1}1}<;Wjp!Gs;x-29hptc&`r_W_p&3D!8@&^Q3DQKf zWm6CIrlLIT!_0*P(2T4InC_}`_K4dmp;qjxC`On30)st-8QnGT{0-vXgKZ}a z_+UFB_*>i)WId0Nh9|^wfDOv}eG$(!5JCY_vE(_o(cOS}WGI!mh7k~w6;;h_%tymxkI0sG>9-vlkit733tYw9 z(}1j9JH0e8hQUlzzm`EBA5`;7)GZFIvWQZ#!K$%)@(U6=aOlt^~Ink z)HWXY?XyTdW=a_MD_ht%?PXi9- z-KM|rQC`K20Nm;xK$&Kqv_@{hE#BbWaBW{l6mweXf`yV>E;s{$zj#Y3LLpY! zY)br5_l`yF0>c5KN&+*)w>H=!9)v?C1>CAXSc-3M@LR&r4|b041zzdm@sA0-=BEr6 zKNXnC(*oXG=z;CQN*CS+zjf`}-DjXA-L&4BKv_=T6B%L&xf%{~7{J*f&UM6bwKqu4 zRro-Ur^A`&HLfQw#PrF^%SeLfQLZFVkUZ1ZqgSeyNSeM30VYHBkqoU$5-ObNyRW7L61yGuGZnCRq3CQ<1;;DQs4mQv0U?Rv z$}MkXQ>(ZR2XQ9zKoM3KtA>jLx5^3{X1)PRNM3M&>3jtVrc#?xL7hs$4it~R`JY5_ z5Znh*D3Hi=C z1t<555eDg}PZUAw;S>8K93t8^aR?Ci(Gv%Vc=E)C@jQ6qf)Pb%93X0oU;~LsPgf*$ zfT_YXHW1e_qNuL}7<}Z!hL*`k*0Urwm{#7#%!ji9BXqnaY-~FAiv{-gP5WUJ8$gAe z?eL=mi0*_{INF8rK51fu!p@v}(8L9sK;(>`W%j!xX;AJ{CQh63)f3_&69?A+jEN1( z;(5*^CN@;~2@?rzJuH&(IEjZsv-per12U1oLe6=Z#6rz~mP8VWWSdDaeQ#~}jii>K zuPig;D9=y(?p<$ifsDCqrUyf^VuEldhk1``rV`If$X# za<{y%L@3_9`y1+o2o3A>UOn;iDgs`l6!qKwoEy>$$MEzOso*RS&H>za5)7sTuOt|7+y*s#dYctT5Ac$49K;(* z3_WU~*z&zmpaJZ6M-K+0nrO%L*YH9F3t?i?sTT)7Hr>-v_@iR1L&ITJk8?KcS;fx3B|);Fq{y#?a8b37_XJR4w9pilY~kedZ;e&QjDAg6B8 zeOgphrG3>HnPqHz^&ViGP~LNE6O1^nwgIdn^mM0?ZwxZW3)UOtA$lG$4@fwCRBjXG z8sQXoH^KCCLVu6M?2y^HD@3}jMb@di9wi>hLo?}zqI8E$R01N-ssJPp`pHHmq_w*a zICVNhmhB|XnGWw{6Bs-hm5=SR>;Xu-D0=|ZDajsywF|NbK%H{zVOYQV7$OLSotawL zz>tbZ^SZe z6IEi}&x~7O-49EYSN8+k#nl6lc4>7#s9jh+07;cqH^GU!2_``BI)Vx6=7163BMu?1 zMX_4b22}!>DmzDj`RBM@kvbhRw|2GJ6{{*W*$)fG&sw~0wb3|Lwb}si*Q_?c^dkj7 zb2$COU!Ch0W-EY?5bli&5{ypWvp|WAJrg2SHQIv2co#op4fJyEs~JY4(I_r6t2$J( z1#mw3xz-894stZI>|Bq%)a)m%yX0w5ME12I6A=Lj+yODb{pUZdC&8N@E}@l6_i~2; zrA(o}in9S9t>J7!t16^Uigp0bs^9E^#5;!el{PP^wyrlSS2%$WK#y^tGQzmmJKavPX}6Uq{^ zSdqCU7Fh;mm~s_DGY2Gu-*iGU6d~d$Up5;wgKK78AegyLlAt7;~s9zl&Zt^>!J z5bIH#Dqpwa1mgixncJw+HHn*dX8)aVYLs0EBZ=|&B$d4DkRew}!UvZ)36vrS(T~Of zy}-Gl7IHCP6vavZ49d6Z+|rYUBgjy!TkqBy4=WTK9}azq&ZU5tZF)-!&=EBqc(G`Z*Hi*Nem98~aM)!!~`EvZC zsE!lutqvUTf*grBSutcOB)#QoEl~uD)tZoO-g;7Ex|7Lx5^}SdYK15`IX9+Ol1@}q zUL;mrc<6&fX(Lbqsc=%faR)iL_^vJ=U3=y2m9^)W`*^f+vp%-mXBEuJqhrtTkG35mxp!#1h&#N1e_@DE}!*Jybvp$B&lsKuWUTOiyW~N6Aw)H`ORfU;#E+o&I9xO`tHW^i8zq(!0haFZ!OP6tkeUu zySlr&T#J(j5@vgOv%7N}+PZ(gp46jbx@X(VTesJ5F2i^1`>W0;0}rvSt@V}V6ZTpz z4R%vlYS7gdwM`G%MZ}|<%6-`%Hya3Jb%ooI3RonQqusHC_ZpZlEM$NfzAu#yp+P4m zhbCb}nhI0|lv2=d%rQxfCw5w}#)(Mp3gqs%z(mD8**J6Yed8ni|3DIy-WE&uvMzx| zq@!muxyed4ahdZ)T<>jk%1G1+C&=jZ(O>jB=>(vbui}-SpvghuFz{iRaRc1RdvJJ& zKR$1xu!B)BxMGH1vTU0m_uf6IO}d%ufry$Pi40)r;B49EOCh~FIlxJS$;bkvSU>6g z14Y_fUtdQgi`ZRN+z(O&k@21 z+vt!JV5W(i2v(>rhC+p$V>nVx$=GQOS#FQ?t!W}oCrf&wAuH&Z*pw4}jNy^4ZGhj- z{{G%}XRCX(+Ua$7_SU+4%V08?TW02`EV(5bmX=rE;6_7W=U{ukE%I7tzq9|sZnrgl zcXeZ{v)SwJcJ?~^JFPph*1g#|*lgboj^5ktthVpU#;uL^3?TBYy`6(y5JhWYZuB}U zo8650xhhb^k z5x7g-(r#^RuYq=Uw&pQkoCepf_I%vj*xuNGp)LMqr~MS&?C$S(_wIBy4_Xf%DDdif zTi&-ewhwx}ja%ET3GA%3<{X#5w(TPBT-F{I_||Q&p|S7ncK6uiYfAP{elE{JtTXIP=&09S-3QBhH1Db*h_3CdqF-^ed$6*(vD#Wjd?l2`dN1_$yRB`m zTvoSNch=@uRs|VudgkodR(EY^eQ#rDZ;thiudcAI zY`M-GzF%7+JupkFtp{MPm7=%*!e+O(-t9{NwQV0j6=A*Y?6=l~{cf+d2vQ=DY3pB6GP&b6OFwiE}B?Yr1=|;I!LZvNe<~&@HqMgw})?jy8AhwhA(s zR1S8*7`Eg^1{;pH54Kk3r?THYY%?9OKkdT}8n)QZwiN~sSsY<6j`j{(tq#b{#&+xN z3!=C4gBj*d%bqiz^{CT>CAFm=hRt&-YY-%vj|}%PxdU~?YSHDdbBrH@&>XsHxO7Kg zd|HYbyoMg^E!&uG>`!lFYqzyh_Q2$~34>w7`|BHRd<{f>AwRTq@7|<-H0aOxI~w~n zyc{vB&z9MVoQUa;C(h;hjyP!Rz`6Wv@TkVOuM%+9S&`h%=!C->;bB&G8Ee|&833Mt zEH5puVKNvQI^#YV9UReX_+<59yjYS}q*WjP<9?uxc72;pZ z)7i=LviL7Fj`Z#h;CP)~-}lqJl|yq(xBvOO%oJegvtUk2bOyT!;h@E(Hv(3K5M`~X?3k4JacH^6Vhs5-<4M2PdlWu(3Yc~F3kQ4)51)7gHZoj@82yStk&9D%jn z+1u|O-QCz<7mme3=t8_?cN6v;3#F`i^owLzl3gIp)y^hVGvOjwB-!wRw--rrXRq5?U0)zYbY17P z7#oY!7H-fM*ujl$ewMg64ZPibVS)U?fkdx!Ymr8QZ<80u;?Dkhckk}TLM<111zQW` zad%^p#KazmyD*E>oF1&z3uKdRmln_ z?F9}sGPbBG^V)OBJ)d1BZUOn`GZC2W7olDQWZ>puj83*8BX6x94o_SOgY+u6+pQ4?XgeWmHu&JD+be|mYH%OKuTlL2Y(W%aZ*Un96d z@VAjuxZ2Y~xPkog)}dxZZu-i24EGd9384V4Isy$#Z??gap^B7%!8-1m<(_u69t9V= zXM?jL)H%sM7}#D-wY)gB@QeV@D-u+St&rPLa{>It*P(%CRUP1eshj7$&JE{LK=w#A zgiujt>2%x}D$wcNk#ty{rUdSpA=wdYrlE9g&P;Z)99nhr2Ym|N_k$A%=*o?!?!l?X z@zHoXgQ)%K^4h_Tr;b56kMP>#48qmA)`1~W%1IwrJk12W$Tr3MbrF(mUMU#t2zwba z!Yw~y0gX_Yw2&z3f-lIHKUmw5fpo45hM1QiVh@)cG`LkBDNTai&d*NOT4LC2?T)a- z!YWA&!KK+0f_pnV`$>T8nAuMe3(u#WOtLwaxzOy6;qjJwl6Qu(yMpsZtO-y>_XG`P zviG47vbr^aM^q=N+hi_@$@sXQPN_Ep$d@V(@YWY>IGci+>dgUeG=p+DEq6XfRMjw-u97k?zd7>B&FW5WIx9abKf8jt$JMC;9?buyf#Z;ANg7~hCX zT-_feR^gA`{sXgq>kEW4p5>b*w{x^@Wz+=rPki%~ zM|y*~%OYDRo%a4XBphTqHD$+QI)SjkGVQT5ADB}<7-c#c2crRA_#F;an1W3t`4<`K zfP772bB5cpcGQF)4#+YjW-K7E!NScTcWbbG2Bgx6xO!rWT7dFl2B{8Q*W#V@@tH@> zlO^;DD@$l$+}|Nyj^v)<;+l}r5xy9TnAgI{OC<+INi^TglRg+tp*&K3k{>&|-Ru)g zBAGEHjgFoH$P>T}ZGWMI<^=Uj2ZZMZEU0w?3j1e)Jx_q?J+Z)V3vhE7WrfWqYR2;c zc@Yqzx*!YRG|)yipwD)sH7SZ{kZl6*KH~l3 z(7FMyyN>kP+4eTur~p`JIvpRw z%_6q5Vs|*e<&l?rw)$s=`zOjv!H6HRjg{fHS^Fe(P)Yj2L5noAyK)DbNp1y7nh)-s zgPe@Qyv~g%W>7)4*RDzST*Rq^h23UIEz#_@uzF^r0?s?*Ov;@*SQ$+922uD<3}q^r zp6XK$#AOT?QzNkrmgUUY$)-Z*uk7eIdu&e425Pt~h36nA+_|S3gxwHohiuPK5cp;` z{R}%u^mfSK3aA>ilGzBnd^dy}I!x1f)EI3JO9t}HB+6h(#aRqBX&z2a7DkWTHnR)8mxvuO3vzkOG=R#X#1QM4CzsD&WL+p(aR8QQQ zoInluf;(n8*88!-Ss3YF-T)DH=pB>A?jHP8RGL@;}eD{zta-&j_ z^kf#H(sQ!@>JGI1H0y)31L_F_o?oc`^grf>V$mllUxL(vs7-Er-cV(k*&!McJ(0`P z)lhFNxJ^Is9J?@os;4*wnTti6yz64juC9gly~q%FOdtd)n=iGhEC-1BHdfc(evbo@vw2Flu7CM3+;6 zGNCq>i(b`*Hba5^*(Ge*9@gN<>r|8ztF6uAguKC^NyCsfAkE^sKW2ycuRgC6@}=?U zoDj6)nl0qK^mx-&ih=U!C0J5MQ{xwI&9f(E>Jiov=)q0s(SyOLcD7+C7BHc3psT^F zwcPxfEpP1T_rCjxml#YFLlEM{8ER+-Y8lK#@|eitZ6rVph{sCr;@TmoL7(~hp*6y@ z(-zQxO`J&pc1al4nTx#eeFe{pBa5?7m>+oH39c<@u|jHVNyQgj#PmHXGhN08m1(_0 zGPVs3(vjj4p{)yTmV*|;3`Vblxs+Pt=}6)fiu0U;w!tHX=?IW+k;xfga4pYiB%dvz zmaLK0hl3$pd*N;#U&;322_3Bb4%s&smsA>;rB3jt$oR(R#zrSGk}Qs=4<}fsG?J(S zW-)wYrD;irs*vB3lq{UT2(~0GvIu`m{ya-&8|jPOEXWAQTQ_1$zKDLeR}U7BLuZ+I zODb7liiildw(An35`4#F#nySSXc+%u_pBA9_Q}0PHg_(``?z#8w){aeum_P znp;kikerzdBj|Y`F;8BSJ0!L^q0LW8*q*tCCFm@GA>YG`dGh8b$|{U8fB(#f9v9Wm z`RPFPiX8#W-9t%eewN5ZXm0*Us`E383)|ehA(1&)!O4@diH0=?+-v^d#))N~otS_7 zW7y@@kUH0F?WhR8I7&k#x%(FcVAsWi5{=WiNYb!(WC`VP7vHl}S#)m_TVxA7+i*0l zthCvNvmy4{7O3=A#iqLv-kfxsQL)B*PP*h|k|B&V?&UgrRnp0z-%3gu^dGOZn5&(n zNV4DhwoT|K*og#<2@se^!PCjkA=&gs9D%aT8vpK^!Rs;w*TWxGWV3}+G5G6#kLT)lZ$PSS)94M)3{R77UB_;J7CW&uqEZRU42u{uwQkj ze8Yd$?FuzWZH976<;YtWM$aA4=X@p!YpORR(l|e2V$4U_HvkK6#y9OK=4D^!5Nv>i zC0IF%#6->H%_2OPVAJ`}5iHHp9AZu;Xvrp1=xv*kQcN7%w$0=W0fU`G;y(QO1e{1U zQ=W-bX|WSyhDFHO>0yrZ)U4EU{Z!jydL2!dedgB*olLYL()fNH?B3sb33;i{gbT^Ug}*Jq{ygG7lj= z++y`U*d?e((z$ayhLn<{|Jys3C~}zc38QFOiO?t+fa#-<%528?7@W+)MPS# zNz0jKo=9_!ouXF!Q8t@~SQN%cpSb;%*91>PA;?5pA#ad*bFAsYMO^Q(8%*ip3LPYv zw_#sH7i^y&zgW-MWglzZT<=dG5;d{l`3T0%IczogX$I1ScLUh@jod^M=N#zKDNJ#O zL7`H|8xr^U2yz=OJ`Fv7wOX{H7=Kgft1B-%%3@zsZUhW4Sbn4U7UhBJhZ?(`L&K87 z-@1)Q@8`Hb>W;ARoH}ab{Iegyy@tI2JghgnKt5u zR{d(eN$A5gi`p@RD=EMj^ym(-33L<~zMJPGl^|k6j)k2JEhB zA^z!06K)%gHTKvRYwQBogV5UHof57V;(?WL5e%k4@+@Dgb&#ci1b##dX^b3IBq@aT zkwghAC5e)vnIvLZJxP?Hj`}ddib`YgRoE(^VQ6cE*QjiYi-kmRJ>>o&$U-}whrwprP*kEbvq6eX&xjxru>HM`AY&ITxhG&aDA;~817JsomEh6^wAX*B zx#rf+$`~Y44ULV|%GOv!5^aZt)d&GcGdG!&V6!P9PAJKm=dwZhics*yO4JW2klCEo&BY zK7I()*h_`YgXFstcn#z31f!Cse#+>NhJ+J52cGQ@^c_wbGK3#?CY_TLS=J0YuBkRP z)Oxphad$}b52VT;;|VX@HQ%i#HMCV5w~cKJ0b4*GV~OKA&W4GL*OxkQbNVG{5RaAY z+XMO*a0`cky*J02g=-1>V;*}_yVocU*nDD+s^2hxw}9%7+6sxRd<9Y-1PDoMRi66A z_)ck)ue>IGcx7f0q~qNYy-a9~q7@aVI=#{(WBESHJ}O9Ky&c~nY~XPN;kBy<*H#w;979N}Q-vO&Q$56n4lpmDop ztXU;2d4`1!i8brP`yAPL=Mxy%?B>=6 z_wR!PHL{F#0;6kC^lLDJ>iD|0rQnUBEPo45g^qR}^#?<&m7Cjc_YurBtOu3JFF#8Y zwX$<@g(|dWTAp@ntmU!|Ye^5*VSccb$##Bg@K!}VnZjEM_Enk$g@7aQ+|F(Gtw%2s zno;W-miNpQh%nFjXyWBl*BeS;7(AEBYE8OE;tn+(QsJWak*`7q~+$T1n zF@vYDSL*xYN%r*YT~259sXRQ)l@#;rS(Ug!kL4*LoUQp9B(y~HLVL<`& ztt`olnX=*KitU2M0;AlarDbvYD|+V~+wqz=KI!x4f^`Y<$?FvXLkM@A(&hv-#`2u=PB?F!2V454||G6L?iM?Tqe%hx&SpV5{m2`@NwW(&j!3V_hm;~D)`+m>jyu$K!dhhnS=8icqo!J#KbWMB`IP zh;ENP>yMV^LvN1_k*|!6q}z3trP@#58&VYJ7&xe?Q11`m1faF_Aww2iksK$>(Y^eA zt}BJy9j{A)C&10sk=$)8!Ni661Pr(9iPK2iR<<9{^}&OO^)xwh;C7+ScGIP@S@%ye zwmSrYvHA33mLxaf2x%S}Z1peNkHFSE#!&7YE^wBK7;RS9xlf8GY3+Nk3y;jqHF&!q ze{*A$)rY}+@DM#mXY=$ZP zE&WG>2W|w>;Q>;0AZ!Q87Idj-&7O0!#+uOUIurL~64byUGf$7joS%miUT19{Cgg0N zg9}MQ8jJ;y@)dw~^ne~{$&t78b0(d61T0L>96}Kk=3>HI;yFOU5J(}>GgsMSkM!A-XY4f1=tqDICOOGuMd4YvOfQaWqPe5( zh)kw+Le{ZLSQ-O(FyGjKWDZGErm;jD58>RFJ-2xZN3ktba$SnMN$Z2s-`Ak<=W2gi z^QSTyTdT4ubv=^bOh1;tgXgeF79J}Hkg5Kd`;0Bl(M5gx^Fn7GGwrYOL`@iu0oHPb zd^)r=YFIsKmEr>TF?ZUU%r<_G61}U+4(M%M@9iBQblSBY54P{Vjt9I6qL@2Um{D+@ z)`R5kUxMIv;ys#vKXGxf=K8Z4423S^c=`~$x~k*&v+O-}3h;U=O@O-OKnNqUB3R^^ zUN^&-dRa}FCtOx~P%;4$uB641KUtAbh^K*dJkXNKmzSPimeY(IJ9Ca11IW=a9w%hO ztYZXWV*~7QI}~w2SadVmj(pAxW_}uDXk#*ZBFa!Dl5d8XF>`^YO9a)yyn#$q<>)n| z#KM|hV1eHb68*7AAos@5Z9Eu3q7^Q3o!%6%H8CO(1iN+Tb*|4DA0mT!Iq*Rj86w*SWAU7lt!kq<{i!1!*@x*yJ5}htF@y;&Q zWg5sy?oS@TbDWV`MK1hsD?|~}9<=4-t~D~<9|IhFbvn=tCT`1SggX~$fN$yGWNW-~ zjybu_g0w$&?t$x0r&{Mg(vsV3VvUNQU3M>yhv!(rXL>%I?M~|ZgA2$}SNW6VjSaz& z($zZ(Jc4NGbTXE%`>M~fwux#Q4q9{hmWtX4Ri7OOvtdw*L&aEUIDpxg%p2ZK3AYAc z!E_!duEi^-n-I+0f7l;sXFHF#3u2q0%=+17BLfKZ5AL1MKn#sFNV!x+>?WlOP{ae1 zl-LAuO6Q{)%fLa_Fe8@z0Yw|llL=Vnc&(F3ZN4+i5-!BkgKUkyn0fpM2*oy?XO>d? zdv83R;cvd%eG6(JgNaYff2n5*7-(71ZLJ4v zO$m~Nnw$@T1j{25?BGu~;boBV-8zPozp@iz1ZWq z>8Sm|0w}q%$K!*}+1c;dfK<8ZY<9Lgb%aj3&SJ`Tk}R*X3T_89p(J(~rWedMT%K<#*1hoGUSV1hLR zSR+ySwC5z1k4;u{c*qy-7(WJZI|;$M1*SRMV5F+MglorKJI*emW?hO#^ zL@QZcKo9|Lsq}}j0Y%0HXgi6a!b26kqwS~dWgBM_yMw-SKgNXsYsWzw3CZd)amFSC zb|E;)RhxJ0^!oo|Uy#3lReKb64~*Y1UVhrxcc4?HS40R&f%#QBFxN?WkxnyeI#3IW zjswTzj#tJTBn9z{o~10vgYtet?p4fVB+v$ zaxHR1~%db-Db*$H&Hm z6AZ&uyJ1O8fKEnNB?@+t*rZ66Y1)ut1%zGouxRrcrx$#>EfIyTJ^ge**CY>FGqOSQ zuue|OtK)vVh14Mry_MLFbn4(V7E;1Y^?apZ`Rz1=ap9)(NMPuWaoA~0X2;Wk*vy;7g#t7@W4TXEQnc@%76jR1&=(4pUp_9 z5=A;2$%7#pl$p13Ji>gW3<>H~sxTVZMiTg2dodt(vJ5m}rI3Nv(&%eJ93>ZQfSG$a?A*Rkr{58wCsA)N9E!Y10B$r=cEVsEbax}* zGJ^ssX|QZBW61xa>7K!T|vlCRu};!Gl{ z>M`CoU|#b}(fs8NUDjgFW>>Id$_p=NO8$hS2c1N>fc<53@%Ef;D7Q(>p@0{(kfw-x zm8wboo2fsGX`07R?2gJH$>PN-XSNIt*e%=Nub|Je3GI@k61V>C3Yr!s$L_SWM2iV|NIzqJQS)M7mvd3-SsWkhcl#mgVnP&?LEiw%aFxu7DYI&F!{bcik`@hK0#= zQVd)+i2^>H0el#<_nIqYAkNWB#A(TEM%*OI6_`Ma_Ck`+5z}0>W5UTJ&KBhq*+5FK zT-F=UOfEmTxrm3Z@7_~Vo7Tc`?@BDRHwa2dgp9?raK^a-r=cX)#i}xNGW1(F(iPtMBeq zFNIaGn~&(GLZ@d{cKiMT*R<7a6dh6Zi?NJr%4!OEp{>Xp%qI})Q+GtDZQ5gYE@!8T=vqHG`LsD2B82W~-Y0)hsFuDX%dlh=V+ z&|lsac$SdORWl7)fZ-|<%t*?9FO-{gTZUl)YSH;C7nH*qs&a66Bivc86eytYSy62o zHy*2$|I#vCp1+13htf1F><6ogk>@8dEe50oGp3og!b!B)VkF_jyiHmrBu+cp5xbg6 zJU?(AZa`Zk1Yl<5d~Wh{$%kMcqo=f&F(1g7n5n5D=i zEjh9*u#9__MkwUG(%kw6vKeR)PHalE*()}vOG|qEdGWmH#>Mp);Hz^=Cp}rg;L}gP zoD5pbJWgr3rZ_NeW+*e)iRXdWCe#_VrFL@}fuF^;6|+wkqp^-@rV0E*?EpS062kT_ ziUewVJz_U9r536A433)rHm&^B%<0ChR@Ax2-gr<~#$bdCRy<-+Y=8?V-WsL{>iYHT z@Z{~%5-ATBIeuK6kQ`unqQ}Jm$N{8reMyTwtk=Uc87UCwn^NIqG~hyyi8X;c7IZn` ztBIhZ?}!P)I)<@yYjst1m8&yF9$g=yHnk2JN*+KtK!*V=x=aHL>;W{VCOLzU-3t=Y|VcpO~u?UUm; zM43pnk`;^}35<`bV8%Sn<k3axwA5!OvW$m)wA=-D3wi!tTaj@skKTBdD$6|P6GDA>=r&i*Q!rV z@L9Y^dMKW}3cWTaK$n)cHOcY^=vpy>GtMp6AsOPiIe9re8e_XqZU?eS@nWoIF_V;; z`F1)!Q^Ffh-Rn;W$4BGo3~ci0^4h_Tr;Z=?Cr2}Q$O0a8H_E6r0@CSZ&RU8O!bodd z@5MH@+c`KIjPIS_U)HA5qMP80j$W|UP;ojxfh|;xBOzTM(|c%+7ic21-)TsbD&n6L zu)4yABfFtRw#@8Kipa@ug^v>qURah*KV92{HcWwpK{#pNJMbZ7*f3D?WeTj4^rvx}WOx1bow=wz=R)==J!zp^MPqPt?7 zvBfn_nq=8@82$ z*r1Knd=yE+<*)<59FTQ$P8 z6OVBvBPTxYblMe(pI0GVxuL)u8@pZo+m-ZJMB(jr zWpMr~`fDB3I89qeD_6$?-SU-)S!UkbP0HV|q)~D+WOG0QT?sq5!q}~|RmVTV+?FdgO{NZ=U^EyyiT%3QO}Ch?2UtVamsa{V#gQ zdQBzfJV?W&2V7fF4=%=sW~t$q!y{pR<-tjQGTVZQ4wMRGbUNp=F-Ude1b=68xh(fL)7}hzGlIv!D?5HYsgL2%LiBX^7b7N+EE0_<>G_&ao7fCt=j8Hlxa7&d) z0)nSt02~U}o`3!tP!`Fd>9j!h0@Wdz#}p8PcV~c$jYtQ#>zCj~ad>71pIYFWVH_-6 zXr{FXPss?~7}m3Tjp-7P+L>z&cw-k(VjByaXy_1IIOOHVPwECA0h%cyZ;R#PB{s&k zf&6xYNV(7(!olPj_N#D61?pckmZV9Zcz1>Ri!chL#h$y^t2B%HweO1Vsuh%~c&Hd>KUqrr`pE#+`J6478VD+^N?Ef&m=N*8klq;MF9 z(Jn!QaxB6`jQrM^Jk%o<2A088v*2(Y2uN2^1Mil8fl&x+pOw<*fuIXi6jA9-B(_SZ zNq;oOJ=R2P8U6+bUOkd*VN2O^*PgM;2^d|HLN$j={;HF-Wo z)(2mtUvzDJ4nr)X zwz}T;I@{YUVe(`w)}UIHjTDbQ^1X;QEQ!HJcBKy7a#@5D%7!zBjAq7=o>@;8&;$tA zB7cZu!or*j>PSPdX-w^^r)ifQ@quT-r-sTXH@*P~IB>hyAOWQ!V2iUq=B`zA(!%*P z6+D688rx5(Eqs@8pYbXrqm9nbG<}eF(RHmt>%b=Wc$KA7B|8Fuh?br5U0ARh;$ogk zCZfj3$s$^m3xqsUSL|Of#>8`cSO|pO#yJ_Uf#n}TPVnG(%I&BoA6ua0GN7y>K`Lyt zgcTk0X5g~z`3Rz%ko&whU0sExcGo!AFMQN7ea5d=cChQ?^T~0& zKdH^4Ic#45fptE)_>~wkP9_`Fg#iRv32VK(X7w`FoJiLn6L)$pqXoY#iQryz1R9Kc(`H5|+GWsI#E zqH2qkMQNBEJcD)56k*Oa#~yGq$qGNzUDw+X(5`=uK4O>YJqXv z%{Ge{Ga`AxB+3^ycFXCke_T`94kp4Oo7?Idcz_WGnMQfUgL)fNmQ0~7@4;XnJr$W$ z+Y$tK(7}hz4eN>wCiU|$miR7p4rFsLxB zFd%!*b_U6eDw~SZH15SyUyLn)v5fGg$l@T8kiOF3J}s?7Y~Oth8KC27<028J(xXQ z9iL-t*bt=F9~apzX&M8MlqZd#vqDH0XdK0vRsBlE^>ByZ+GgS=ukEHJQ+4`!E{YfQs2izuk6hq2VV{o#w&%A$gz zIKRbthnRjD_}4XI+p%Y^5~sLqX|<|V?Cep$;G`jM3&!b3F>&0|OX*&`#U zOz#e64-L(Jp@X|%%+ux|)AI@Jp@$GrXD$QsLv3vFv`}E+NH>{mN?0k5ff{iSjfmCs zW967mFO{(U^rD50s2458l6sND=G2Q8w5cJim|>0K2CSCkns8+kIhhqaN= zi0cr-R0>PUh;2X$!3663OzTc>6)t7?!6yI{47Z>`pY(^uWJKM>!(WypzpOnoFE$AX!nktZ6RiU*C#u0M--~_qNaDzb(I-Y zT|8;45B5yA1l&ce@?_5o9=UqdA2MBm&D(O=3nnT>IW%J)?P6P#S&m}bfe5YihPaD; z)eP}55~=w~?40A(cWxhmIrz&e6aq;2~dj%6!t(u`h6LiQ^>ec(KXZ)`9e+MHqB)g}U0V zygaR9Ci+tF<+)lY!{P^zwf*vSJEvvX;zR893DVm|cPL+vu7rckF`Yq@>vVCWnyt{Q zPz9&9E(FeH4|DpzHn=YeJ1kBD;Jm!N_IM2{gbd)~&Xd$7kr%wUE@kVfI=0uB%()a5 zS;$dV;ea)H$S)r!()n8$2QT}i;m3o-ji|YYIM21XLOybIO?o=72g-H}-@$|3=EmCM zW`B+-uA=?islVQz_8^BGcghP~t6%m>x5y#Q73l_M1Ws$7#Q5acG03c3+%(BvBscp| z?qOlV%pFpdgl&fw=d$5Bw&H3y$d&_`39Qt$uz`5l4aGLx*z6Anud91_;bd_g%NpA& z;vsi*;d;(w=H^SyrQ_KXohMPfJOi=lwzCJ|{N9uo1YOt!WAe`mLG`YPiJTdsc<9`B zvg_xGXy$996vj$@AL|7yc3iSVatZG?pTdD8Jf;hIrVC{xhYxn|4C^f|mW8~%%)#ia z4=$ESx?Sj^oH}RuiIP4HkWS^q+C#@pZu}ii4~aKJ#j%Kp6w~d(@n#cxj~}xwh}Pox z&6AUUR*)nQ_h7?+{^kzLV{UF?Qcdag${pPLiF{{vX=bt7a|JxKmQSeuOsB)@i^=mC zQmexFo?2(mfIRhDXY;ghXs0klH8adIuZI%hC~s<}$uXCvN49nyxdr#cO&Lj$cW&2G z#vo-9`AaJ$4avMsct+^iEbX70i53%N-ZmFCewl`NVS}38u4klQx$u$B=j@7xKbsLt zC(vpeX=P>N*rTtyR}4uoc;?(dblrRkh=Q9;XjLno$#W(26Y?zl?b>hXggRoLWiE=Q=bX}$ zGqA8$nPxWy#*E~xMKvPN7iaP^jW#3g`9>Dbf)WaL#u!l`+6FGKXQ=^@L=i9VU& zB;W#n;mmpo;|Unn`{Knr`pGeSI$CYtaKf(@4ASpKKJ3J9;;FyL`xs?XL&8}0-OcM#DXC3#%qTa6P%YA6zU)9FqfWVlT6(@<1g`W%AnB<6{Z~2F_oI_Z`J?B2tJVfJdG8bo_TtC*WzdS zY2bl>I(!X#-V}R&a|~siU&8&?)$4?6t2elZTfE1i8Oq&b-3vQIT$~C6vh%Qd#3{Uu zXWLKRz$Soz(r8o6kh9cS zw&jdbQcM_4C}F3IjE$zV46>@iI1g~zp2&K)+TOsJZ?IDblDJ?g$cC)knoC}lA$SZk z3oj&Kl;P^GddW(I2yk+>Rb#S$0Xhv2`6C>ie69fbxQs$nm=Sh`uwZ}wmE)+ zuJqJE5q4gJ3J3CMRKj}lXaF9Fp$MxT%e4Tl1=|kp1^ibkKx;}&OEG$+u?0S34Y^QP zKfrLy=eVx#n7J+om}5|Bn{V0+3$@J z6bl~1J$T=`$sH?HU5Nsg4UA)rSW1D_bd(=F|lup zDP@o~uNw2NHI?9vh$GN>=v&c+#rGmRzLe1$`K(2Fk7mboY~73L%+dBz2dn|t26%Ge zAv|gab&n^qY*6XhUBdC9;z=5aj-e+++OGpA9F z^G1*uj$ttjy+*UmC(jUGMqXB1F#XAJechDr?%ikL_@q%9Br~(#C+eX zmI)G7?;(4C0CkJF;0=L;8dGckI$K8Op}>Rd^H6wxZXRyWO@Uj4)LtC2fV{olWifHM z0qZ=|CS`%-PB@v1=jSJJdwvqzDI|EE%Q^Himw=;|xda@o%q8F`WiA0nCqo3%R5C~* zNh5<4k`yvXAxR&D6e8-#&M3DaG~Isy4>&{~Ai3Q^_pBFwf5fZ)^PcQ3zNj;@it#Rc zvnVZ(;JB&5nz_be@DX5IAB%`svi8JuFAVXljK{+oQa2g1h8NQ2g+{3$t2NJ=B&lv&k(AJhxvm`Sp>~?l zwj^(|{l`MN-0Z^zDw<;Al*Z{d#1JD*hMcs*KM~t+U25}FOC6tuu{;-{WNycvVak4% zR4P4R>gYkU6*N&5a!96je0Mw@uve04CAB7JBBOibbIkvt4ruJIr}D{T?VI)J0X+Vk zL|Iq+eC%Yt&QH_Wi4lAtYL~CBb@n?wQEWP}&4sA-(KhajB_c$XXK*12Hj+bYze;XE z#i@_PK3Qh*m`!*P0vRC}CfFEzVqOpMbhn90UZ5Kx-V=iDI4TkU2<{4J*$>W>SX^+! zGg<8)KQymiK{KeF29(~K@nIL1Ib(H$JvL=X;Wu$&$~xGJ1_m!t6&VHQwQdgjgXwr= z^4gN6`3Y+Lsq;Y|ENNcz7RP!WQ)Vn*$Ls}2+>lv};`Ur5S?2|BE0e(q>g@->ArEH&+^yKFr{}}j{-myNPWlfZ z=jGzkagk8>MLYyIASbw&+Jan5<-jP*7b3e~UpV(W)5)4fo=rh(eQQf=b$oh?XUz*D z=X>y~Eqjt44$mU_B-hETkv4}!&?Dwnvg()wK^GyJ4=VUQ*nsk4lXLRPnYL1$PZ`;i zM;)Y>%XFp`A>Y(amK~#{@0S+Bnoe**Eb`g5816W&#V{u4*+Mvz#N?!1C{axJS~$VQ z3UM*igh^RQUj?lNF*ceFW|xcMi;;p7^)+M-A1`KH;Z6#$r)Vy+&x@h8J)ZS3(6$f> zN@9y)ja+pW!Y4_2F-+rXwh$hXP&<~+XAj4aA9BezQ|#X4iT!j5Y^AA9liZlY4Tb&j zi?uj$5#kz8*zQkv&Q{?r;@xNJowHT&L&4+ZXMtxEbQZ=V9(G|{x@ObPbH-phy#m{N za3|oEnGMKg>0`pN1**3M$tk;?TY|q#RP>n})M>qO0#4@O{s1B=&3UBZbcV&VG8`Yj zC?X!{fWsw{4qOO>x22&EI@3UAL$d7RAS#IV;xZ5U{PbQu$wI+V$wDx9B3Y@Y8lA9;9Hw@-r)RS~10&hq z#1zB+klTV*ZO_$dT>o0OdNC8cx5B^EAD-7c_gmsl2K{?2CKyYoSh-|vXSe+Sk@v3K zaoxDO=z5qufbFE$>GR7fSxT&KTXs^iHluJ`qos_Do>*C1!=??%ByiM>vm37%; z^ypa9#77VWK@bE%8!t7{pD8e|=N%|Il+%I08@CA{c<Jk5X%G8)>T= zp2PFEXP>G(W{;%OVb-)2{<5MdcbC=oE#9)CY;XfT!XgvkQq;K0E?uRktVmlOWrw<1 zK-%Rkn-Ho&O;YP6kBBRrWJ_D=BU?hWA1y9&fKcZlM~I6ZWS_p?KlbUh39TJ#B)cs4 zj{P?@( z5~mRAJYornXI<^Iv%|s&JtEZ@rS5Q|BiFMYK02IXiKlX3I7VIU3M&BP%r-c5hPK)f zcG}hhS>ub2sau(^^@5$2tDNA|@{i$2fn$i3qrYL6{b(6NEOKn_?Ob^^H?G368W>bR zLH%MSMD&)S85$ir1la2g&oD&I`MQc2vPl}KwB#Gwgp0l4JuQS zIE9Cb9Wpo!@AkKFKtsDlD3kKf;d`hLboBIU!C%t2zJkhpbe?HO)nrDQx)x_2Hv0k3 zsNfU`gLUQ)mygR~r*0kKNRf)DAE6z0=Qj0j9Z|Vqc&y? zh+beiP}~HnZkAlI30N!2#7b&D2};kMeuh}vyXC|{JZ&ZeEXcgd%Zs@~u<3->kK{SS z9V)MJCSa%}%PKGLARDS%83Mei`q_`eiBR1=WT1YQ#1*2OKM}Q`SzL9xc|(wTR<`TY z!$x0e#rea5I%%;65Ae0#Wq{*p>0l>geaT1klla!*`Q<-E0{jLqL5CSc^VvTjh1vXt zth~PP#9I;EXKapK<56uZhr0z_C1CSLo5Jwg7~Ov)2i+2T7pe@Ow2whIlDtcsF;%o9 zp*%Arh9d-|ryC8{=~bH~175y;sKV9vbE{eBR>@Q9c30! zfmudM@Orgbu1~iE+LGQ}&R44UZ*dk?YLmT+#pO`gWGYOWKJ}P>l?(y0W-jwU>8b3a z!9h2qctQ{*nN8-#p%w9HNr#Wx!EP?v7XJ%ND9yDCc!4Kz zHBkx-Bs4{#`5~i7sHYM|bU{6X1re=E%%;w%Ex1!BL-t^^tc-9XPHZ7iDz;Ds(Zz;1 zN<9J+0lQelLGR%R>Dw3xZq*}DUGW2L*S%_;?5|j3>`e-EIk>W#TjZ0;#x=~fiF%uZPn%i^j|oMkrr1yJY$LgEk*_Pg&q56#1=&8SgE+S#VF@*-=2H=1~1?Gh3_` zaM(d@ZGG-+{dVe-crpyDW(0v2s8T|z{-oR{+bTyUJeKj`iEAb4mjf^`Yxh$?b;Muj z4TSziHrXvm5#wD1_5K8}b1m(NaK);yhsGv=O9_wIfudMdQ{4-Zs0#N)Fj75ic%0A`Z?Z0yo?fw6iTY8tV?%7@&AZZtz6cn;*__c(aoy#-jbg zfG3&N(@5+yNWy?5In;5Ie7tcyxjoHSqIA)eu~nV&x-8g<7?c%B80qwbvOLA@_onw_ z5fYR3OI|=9r-Rgns8<5g*0M#Cj57&aEUrL`M&7O%osnj;(Qxn|Y8C~iDFn-`3sE#a z^t6^U8Tn%o7_t$2<}Z$2xTrQc1|>DI%|}jCR_8q}a;&8NqOCK9Cdn|D>Ve815?-!# zH4Jz+P7aQvat2j++HRaAH<|;|Jo*%~f&)qLMAP9a*!dt0N12%ZNA@`NFQ8PP_BzKx z^~5hu5@}J_`!^3?P3c=ukZ=EVIOiPl{{MVXlW!6lZppYPy>43`Gvp-oqk?^2O+F`r?2B{yU9@gtkMjBzE45+0&LGTGRKze!yZ)1&W8oW&x)Ftqq%#o$yquh69v6T;6YI z0$&(hLv;^WgF5Cpgizo;?B7@LluD~ObUdP&{PYE)2zV;fjWD}|+^T+<^8uEqc5|Ul zN+4GPl9Qk!WNWWzt%Qqp?Tmcb?BGpSbe^yvYKyXd!dS*7dP&B7eW^DX0?Kkb3Cw!+ z)%U+jW}v_hl-aHxCjsWT*u0nsX9Ac;FJ{~?it{ak8u4wCel^LsLt@)-vx0Zf9-Z@_ zHijUX1Pt*sbECuU8VkMI0UJZn=4qlnHak-STaUX52GDV3ra)VLy&vE{Z@*%7xj18C zy%`qtV0J%aZ?^R-t-#Or&uQfJcJVlYwBJr*z*~K?v3S&Na!RG?AF=m~+lj{hJ&ant zgEa2mZ;Q?C_F;l?n@=)s^M65>c)y%)f?!VDiUNL{dgHW`Aupl4A`*k42c{L{FzyF5 zl$j`u`+Xj;ECQ3oJS-Qx;T2`9JEz}a)Ym&YCXx@oy*b!;_09J6O(H4p(vsLnY*F$o zpBk0`*u)s8y`13Hp`?Yk*^nmW`3f8reHQ|5?3lV4u9`vk5rNDfiNuBSi-c51{em}= zot}n&`BbJCA(;)YKCX`MHb1ZShvUz1DPm1eepm5pa|~ptJcAB`xu z`d>a4;ie2t4OV`r>|+DW+NAxIz^XbI0@U>A=hb>pnFZlNkURC$3i$JCvpU=lx3rbx z$D}aA8m7bqkY)zG)r;h)A{bW zZIF9r0AfdUSq<)%^A1+v@A6S^>=aK!M> zFBhm!ZhFG?ag%;!t!w~!s&#R~AUt0u0ZSZ5*L4kn`bLZU*N0M^caxa08l#huRQ;YZ z+42#3`gOD>tSS1|hrwlby409K`dAT{oG!jZ#6Bi*3G3ns0s2_b)TIj%WL?8TRK5;X z!jBdroVI89e<`O{IW~4rOzRjEIQ0uWj{_H3KZV?}9_z)|Y^#vn_4yi-pnrys4`

  • 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 M1j0|?zu^h|e?UGHGynhq diff --git a/doc/build/xalan.exe b/doc/build/xalan.exe deleted file mode 100644 index 62deedc5ae6b223e1b1ac6d5186b1fa07c4c8aba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 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

    NFztj}{r9N%d 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

    *+Qh^Y?TZW7UeQqy|GHUR9jn} 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 - -OpenGL Mathematics: Code
    OpenGL Mathematics
    GLSL + Optional features = OpenGL Mathematics (GLM)
    A C++ mathematics library for graphics programming


    Compute a triangle normal:
    • #include <glm/glm.hpp>
    • void computeNormal(triangle & Triangle) -
    • - { -
    • - glm::vec3 const & a = Triangle.Position[0]; -
    • - glm::vec3 const & b = Triangle.Position[1]; -
    • - glm::vec3 const & c = Triangle.Position[2]; -
    • - Triangle.Normal = glm::normalize(glm::cross(c - a, b - a)); -
    • - } -
    Matrix transform:
    • // glm::vec3, glm::vec4, glm::ivec4, glm::mat4
    • #include <glm/glm.hpp>
    • // glm::translate, glm::rotate, glm::scale, glm::perspective
    • #include <glm/gtc/matrix_transform.hpp>
    • // glm::value_ptr
    • #include <glm/gtc/type_ptr.hpp>
    • - { -
    • - glm::mat4 Projection = -
    • - glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.f); -
    • - glm::mat4 ViewTranslate = glm::translate( -
    • - glm::mat4(1.0f), -
    • - glm::vec3(0.0f, 0.0f, -Translate)); -
    • - glm::mat4 ViewRotateX = glm::rotate( -
    • - ViewTranslate, -
    • - Rotate.y, glm::vec3(-1.0f, 0.0f, 0.0f)); -
    • - glm::mat4 View = glm::rotate( -
    • - ViewRotateX, -
    • - Rotate.x, glm::vec3(0.0f, 1.0f, 0.0f)); -
    • - glm::mat4 Model = glm::scale( -
    • - glm::mat4(1.0f), -
    • - glm::vec3(0.5f)); -
    • - glm::mat4 MVP = Projection * View * Model; -
    • - glUniformMatrix4fv( -
    • - LocationMVP, 1, GL_FALSE, glm::value_ptr(MVP)); -
    • - } -
    Vector types:
    • #include <glm/glm.hpp>
    • #include <glm/gtx/type_precision.hpp>
    • - std::size_t const VertexCount = 4; -
    • // Float quad geometry
    • - std::size_t const PositionSizeF32 = VertexCount * sizeof(glm::vec2); -
    • - glm::vec2 const PositionDataF32[VertexCount] = -
    • - { -
    • - glm::vec2(-1.0f,-1.0f), -
    • - glm::vec2( 1.0f,-1.0f), -
    • - glm::vec2( 1.0f, 1.0f), -
    • - glm::vec2(-1.0f, 1.0f) -
    • - }; -
    • // Half-float quad geometry
    • - std::size_t const PositionSizeF16 = VertexCount * sizeof(glm::hvec2); -
    • - glm::hvec2 const PositionDataF16[VertexCount] = -
    • - { -
    • - glm::hvec2(-1.0f, -1.0f), -
    • - glm::hvec2( 1.0f, -1.0f), -
    • - glm::hvec2( 1.0f, 1.0f), -
    • - glm::hvec2(-1.0f, 1.0f) -
    • - }; -
    • // 8 bits signed integer quad geometry
    • - std::size_t const PositionSizeI8 = VertexCount * sizeof(glm::i8vec2); -
    • - glm::i8vec2 const PositionDataI8[VertexCount] = -
    • - { -
    • - glm::i8vec2(-1,-1), -
    • - glm::i8vec2( 1,-1), -
    • - glm::i8vec2( 1, 1), -
    • - glm::i8vec2(-1, 1) -
    • - }; -
    • // 32 bits signed integer quad geometry
    • - std::size_t const PositionSizeI32 = VertexCount * sizeof(glm::i32vec2); -
    • - glm::i32vec2 const PositionDataI32[VertexCount] = -
    • - { -
    • - glm::i32vec2 (-1,-1), -
    • - glm::i32vec2 ( 1,-1), -
    • - glm::i32vec2 ( 1, 1), -
    • - glm::i32vec2 (-1, 1) -
    • - }; -
    Lighting:
    • #include <glm/glm.hpp>
    • #include <glm/gtx/random.hpp>
    • - glm::vec3 lighting -
    • - ( -
    • - intersection const & Intersection, -
    • - material const & Material, -
    • - light const & Light, -
    • - glm::vec3 const & View -
    • - ) -
    • - { -
    • - glm::vec3 Color = glm::vec3(0.0f); -
    • - glm::vec3 LightVertor = glm::normalize( -
    • - Light.position() - Intersection.globalPosition() + -
    • - glm::vecRand3(0.0f, Light.inaccuracy()); -
    • if(!shadow( -
    • - Intersection.globalPosition(), -
    • - Light.position(), -
    • - LightVertor)) -
    • - { -
    • float Diffuse = glm::dot(Intersection.normal(), LightVector); -
    • if(Diffuse <= 0.0f) -
    • return Color; -
    • if(Material.isDiffuse()) -
    • - Color += Light.color() * Material.diffuse() * Diffuse; -
    • if(Material.isSpecular()) -
    • - { -
    • - glm::vec3 Reflect = glm::reflect( -
    • - glm::normalize(-LightVector), -
    • - glm::normalize(Intersection.normal())); -
    • float Dot = glm::dot(Reflect, View); -
    • float Base = Dot > 0.0f ? Dot : 0.0f; -
    • float Specular = glm::pow(Base, Material.exponent()); -
    • - Color += Material.specular() * Specular; -
    • - } -
    • - } -
    Copyright © 2005 - 2012G-Truc Creation
    \ No newline at end of file diff --git a/doc/common/email.png b/doc/common/email.png deleted file mode 100644 index a5c71db13a6b3b0d6b0033d2fba591d9f853a7e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmV;M0%ZM(P)WdLerbuJ(?Fd%PZbS@w=FfceEGBY|fGdeOhAT2O3FfbgMnPC6`00(qQ zO+^RT3LY0T0?Wg_1^@s632;bRa{vGy!2kdr!2!c*R8s%|00d`2O+f$vv5yP)%AhxE^Y-+iYo`57bQ^SLkf%r2JrvtG# znw&WhZ>Oh+1__{RB!F@NC<3%;XveUKglZsu&wwZ*?&DF6toAVwuSep8ikf6J^`Igs z9Ln|w;`0RTz~>fpV9$VBwA}_`W~khAsNKJza_e#U2cQ4Y&BUb+o4?Z;5Jm5OsNeCr z8N?9A;V^8D=7+M?p$>HYNI(l{FVrdVc;W_z6r!1(D))~YX9J1!vLsKzJTT)QrvN0f|sNRKNouRwPz2C?|l5328iP#ECQu8`ufN3xN0p z5N89iJOTBD+(HdKF#qTS@f#}GPmY^V1S*%YWt}+;kW}o?Kt9L?;t(MA0OBJI zsM!>R`;pY*a|;>`><6`QU=0gWn!=zW_6!a`66NN>)b1Wk zZlM`Kub4qS*c$`ws6pr!ngdW97P-~oJ?a+v0svD+ux~=y($oL|002ovPDHLkV1hfc B3cLUS diff --git a/doc/common/g-truc.png b/doc/common/g-truc.png deleted file mode 100644 index 508247b5aeff9994d7cb66e1f26960560952bfd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16744 zcmV({K+?a7P)YU;E-RIorevZ$7 z{a&0G|FsTluPnk!nEA}UuD!o|U)Kx({Xg~t{9ok#`uWp;^S_C|43BpV|2IGUfA?d5 z1|II{8EXGE_^EsFO(%T3A8$T?dGWsc+mBDr-?Tk{`}yt12N!R=dGPGbI|yK05XG>)_bSUwyASJ05(xwEWbi<`Z|fUi@(R+5dU5{sG*6@8S3RFTS68 z*tz@Ok6jPjmS1_l{Nm@cPtPyey)M7HE-7bDbW&MVN?~L|rhjCty;p#-ZJ?>Wx3Oh* zbli;4z?#`Jw=7+9`^3qwSMCpAd#k+q19~{1ywaz0UiIT zI?<;*ISQQ^gAV=0x8+B!XKvmf+ORiu*~taF_s!jMa^-=O>ke$2 zv*O{QE5Dw!58wW*c-{k@=zxxPL5F*x(*w}q9_7A{-)kS=PTzApdGn@##&z!Vw}vb{ zS-R={g~$KK{5SBo*RS7RzWL(tg%8JXeLVHx<=z{QH=cX8>*9^|N6&5AzirX7C8ec{ zii>9_rsT#?i}&%%ijJR?l{YuHuq-<_XL>?;Mn>zhl~*_IzPEJy=her>tYJ*+*HlNC~^S1Q0|NM`@xAwN~Ew5S^o81y!SmQLU%r>^v zE;`RLI6>&{t1ooo=vwHJOxYw6i^63R*)+Tvhh=5Jwd8R`EFFC^$%(8pOX$AOKmT>w z>XF(Ds@1Qcov<^1LkIh(PHRuEYR6Y;X-g z<73If`$My@{?0xBBkSzT%wv0<8|#HdMcl+v;~AyA=u$>tlWxLEoB8e2_K#QIS2edo zTYI6_VQ5F6V)bWn^@E=Umma4cI2XQZpGWm>k2xFc3J+&3|8(V9e|z`;&iuEBZy!Fe zE+>0Qd}38-e7b{YyuC}fjia}TrL&>24UcWY(-0cs1p)$>N7Q4f>u6#%HP8%o6ip4u zz@oTxjWAu)<&FurqZjrT?3XXN1FdU=c6LLp{m||K<&J*&#?F!YC!Iy-zZIVSG3#<~ z@wI`Xi=(AyId@KcZYMYwkMr9<-Mj}KR=fglBe!dit}7R z^4rWxxawH~{-uo-VWEq&vx?%PV!a*xTtzMpJR5VCnMl*nh{P4B=^LWh21phcrNcop zbdh8xh-UzJDxgULO*9Fqdgj|*QeG#n8L7CeSn*!9r5oBg0PX2l?Cg}cd>mi=w7dMq z+pJ^vQ+Gbd-1aDI%fpQIAF{U&%{nA2J+G*_uUh&RYHm|Dy@wXPR?K_wJLlZZpmnPS zGw0G`=Tjq>Ga@!J!Vl;t-f^wz&Nw(yeQUDeIaJ>U)wWBj-t`qd_?~#`ZN#4I?#uTH zX02t-sHO%~=mnl!u;KgD5C0MP@U{(E!ETGna}&c{A_J{`JOxfp`ZiW<6BD|D5nhjv zVi_Q`c_5RA(BvSgECfjl#AyOJI-p5Im}(Mp4IK^#6@Sj%F}d(A)bbhH-UIFEg*J34 zmVX$nzSlSVTIbA5?{ZJvO5JiXq4~;;Wfx~O-bh^bK7G^gg2Upfo2q4Rq1E4@RUOc> zHbu>oU%98R2Ci5mDyY_uuVq9wYld%PMjYfO-f*aRAJx*4b*N|N`JtlgzYA}5yg zI`=+i-|Nt=cf6OMw4Aezn^s2+DAV;lw`$k#j;{X*yl?l$g51dDWY?fzgSdEGFCU(x z3)|9;Wn@O-7^&$P08Ac0=K(YxK;a-rEKpq=#A|_gIzXp_<~kbrBDX_9v)gla$rs*( z*0n?1x}eQJl#Aa&Dnl4x%qb5imU0(7n2+Br?2TKIw-EW z2{pckR(3+GyP&0QlFIwv(hpzoUbxygy;?h}ni{;67PyHSx?eBuyhYx9&zeX6OCJWU zx*xv&X7rXD@!RjlY<(EG_Ico%7eOnZ`Y*lVT)jt>u|OwqdrocFr;h&!eD~hoq$N5yD!VZjcsbL#WyGE2{9}q1k(tl8v#@!kiA($4kzRl%DM=KGrd7*XNmAKFr+mG{5C; z?wUvW8{10{jaOZP7CwcReu0|5sT$r6&bs_6a>Egu;zr%bITXKgg8M?E`x=_}X03p| z{J4|0Ij0WIhuYaR`6LRNQ9+t#19_jlsX*FjB(th4W|J@EgP zhbzl+!^5ot!wr4I^*n-g96af^?ph)T2G4LM9 z^{0pHPIXr7e>HR4XYI>rmxjImDbmZx$!Hy|e_J_3e`|G#UTecQQ1}6nL_<0$42O5a%@kaJ|j-{Hu zDUxf7G_XK%EHO+AG)V{$d7!#3fYSmnS^$a(U^M|U9TaI%W^U`ogo!ZD$ge?~7S@EV}M)QuCMG zt(~O@zLXw$khE#9+uR1@8M)ft(KHKRHI5fj+YO}KAV>l+a;Od|a~ePT|_)GiqD>b8Bp4@(sPC*j5fi9aB76poZgNP%I3{z#%C(kV*vEWOSgm z?h4D0ClU1{MJJ)9uc0kJ0MlPrUg2AAvjGyjzi(o@p$Y7ZKzmU|5?| zU|^ORpl1OZ*rJ5aSfPs=-vOg*g=Ux{NqkUUAHeE@u!pg5+|owibr1w?kjcQ9YEoU< zJb!)jbOX;tMlnaMi(Ut;7)d#(s<;6)zf^7hm#A!hC!Ke8HJN-efu)Yr#ez&6NFg9JNFb2{Fz5&m zw$1`e|LbA%e-<28G`@f~eOK-3g0_8ycE1zvelT+P-G2c~#p3@({+H6~YH#0LUsvYl zSQ_BwX-F|LMC%Fw7?^L56uGLIdf-HEIDxY|+Xhb)p-Bb^7#Pn2u{tmyvME@b6c&S6>A6>0s=iQ229WfwbBkKT@0v%)=p zx{bG=qs6o^>)A=3i&A1&WF)T2Ol?k0s*8=z_wq=vwe~hQ6mcl}Iyfd3WRL)w27*jQ zQ#27IZGfx|T5vUI+IXIfnD;ej?^xAsIh@SbwnHo4DR;gd+HvpqrRM`*x|9mVALj78 zNB4Ksl+TawEe>;c6>12CXgw3yw-})-#?%ulbVKu<(E9djOfxkSA3-!gP64w4919>! zp~8kx*9KrGt7{|F7$A-YGAS4f8Z}9X&;beq zMbXAmv=ACPpau&x&?m+SEjIdOKb_IinSFG$?1rrB{>0qd!y6wBJ^b8$>i&-xAEn}d zl&F7s_|xmBtt)D)Q-ZU?9qi1Ami81wTdcrAP3VF)amN_DW4KNzEh_}Y2qYRH2wWH# zgr~8(9zbAE1u%6Tkfa5`M$iG(w5HM(i416w5!Q6_48Cc-V`yto{+X!xC&L%+4X9b; zSyJJgIL*w%ilfiw;5jA;OJ|H*fQDzNc0d$2B3>9X-7+}T$k9dH%$f`*MVbIXk{V;50d;G3139TREcD=~l{pIB2wyRGk zhDPO+(m!~(?ZfkxON%OIMW!dYTi6gyoydlEIKC~~zz!jBMv1)fJXZ|U3Zxjp5eq@! zpa}Y~fdqYkqz^k81_ns~GNKNE*97o1fItNZG(cMuVXjB;6LM1R>`UGJD?B2LT*4D< zygY;^#`;WMHcpF+U98VvJH_gLoYz zPpHK;($wZ@7@BHRnMj&8g26-xbtn;Bvug8*9S()3U8^qmF1i%jd?K{*`OeEy?Zdp1fa0>Kuo!a_Cz7cfm2Cm)TL3&8q@gp0?}p~Os%ct+6k|YRDq>9m z6FDH+0HpDe8u|#59+Jq0Z)kf{&o^D$;34Oa`Mr-hD#h$`X{ z^w~H~T?9iP)Z_w8Lx5olQY-+nIl!<4bnH<~YXr?4)UW`ErU1bJAQ@r^23Wi{hAUtu zr$$Xr4&z&}iA)Q+P1)|t%21Yx8L->_@b04l;S@D zfBgKas5-K|E-56zmTQgUT3}g50M8T@+JYh{G~W@$byTC9A=LQ*k&jS^rKLVV{ zcm`Tqk4V?TXi(sIffZ`fJhk{Sy4G>J)|t9)%WTqno_!vD|5GJXKnfM?VOiH-EwsPu z;rdnixfPLKQ5L#pYUWPb1}0dp5ae3`hBhGA2B~X>B*UVT2WSXD4I_YT2v7`RS^#ed zsB=KLmLRhcB-p)L0G5r$`s(c*wK9XM|TBql(B zO&f$Y46If0dI%y9Nfe+60tAi=z!QgIMBtk1nAjLPyW3jZ2#p*01`FhNjF0j3$CX#!A90Ci&k$C;YL zMC~bBbtY^eUK4~hHjV+3;UTAo(&r!rT%^blD>PI$Fi_Xl#n3g8R0e{qi6FushP4{} zMHUx9H!NMXq51yH2gS8z6g>)_g2HNm zSPFonfFupX6g&;ZqGCg|`OAzWpG;pZx!w-RRnUkG`riii-@s=tADouqN1H8raDa%M`dC)wA2V%Qxk!r4>GtQgAdS*0GbHU zG(*uuNQx1PYKWrq5$?gFlNWZ+ttqLfEjxPQ=+0C7j2%po1VBv#L}~yS8i=DHP-Fm2 z1GOorAe!D*kF4)a=VZ6PLoyX4hn2_QVe5YikDuSqT{@6IE85XnpKpja;9>RIpgsqo z$49aSNL^!;mN62>*0+QOCX#0l8rT7_>DwcjmS}Ytn2CVr?NkF~%0Rd)fTc|t39gnk zK{!_HYod5`H6E3~r_uB^8B9$oQI@u?f<%%56ct310UQ|#J6T^t zEnJhg%{%W?*&+FpU(kpg8dpM+scHQ0LwftR#=Puc9~Yjz3EiBpZp23L^*|mEaEOLmKkzGDIno$_76YNr z!0;IaBN|Oe)iI>%aOg}!O15(Ql z)U!c42h%NGapl!Bj-J@tyk_~`=Qr=QKZ`F+*U%vwnsU@AQ%=TF5kv}#LPqLQ(ZMXv z=8(LXCA%jd{(#2hkmNrA@87esyf8Y-OXO+BbP|y54T;u@?r7qH;T4?E7 zFgRvZeG9stBh%1V$0U|(n=N#oZSGU;7*y`+o9F5>!_z9jooC}rGjPDM>`(^wC@U{D zTMtyl{AqXYU1{CF=j6r1x7!{^=cO203b;lrG!Ytv;wyc_l0BTwF0*4Guz(zpL z_w+baT=)6FRcZTg(c7%@Vp57BtPRBfyPljI-wqvP*jDgY zfXzXf8ESZnIH5w*Xn}1U&pFL7pwu*Kfmz&U`}EVEMGu23-^SHHh^;;zSg_V}#w>fU z5G!K`du=NZx`8uB)8B^ z4Dn^US&|%0G^|VsFd=MKmN-i*jF~yoM1(XpL>Tc#0q|%bkA~ExA?P$vg9Z>8 za4iAS^$|K;IP#(FOlf}R`cdY>IFaQvzHNc2UyFC}EIHc7L>D*xeS4R`|M;YTxNmGyJUlTvCK>LRj=ucfzU}bd`ArM5 zOLFtd^62^$91W=sA5<5hae$z3>l4RzzkTtzx98_T@9#eYx2~<7ljd6x?~oR09vi|5 z4xk1FlD$31j+O*_Qw>WqqN#~}yL1z3=p(xtes?gSVO+fOQh@z*_RbQqp=}uhJnXu+v z)S`zmb*EzIRJ%qbxp^f_3$<_-B*c4ne}5~P9G#F(jz}bh5ktJ4unLhi4;nIVeLu&Pv2^60+Qd{4fivEN74T-oaaf;x9zyKZ=?2Hm3Gf zNcBUH($ltSOL@LoIu;pruCH%j`TF@~-|r5&Y*Zp1l}w5y^2u@e_^4!fNHWqtG2Hg^ z%juiv3+ENN2D<7BbZELnB0RV>0R{_A(*_(}c!v&eZ*PD9XW)0w?v^FEEhvmBobH+! zW)c>_^718m`l-8lkeuwuww6>gOQOgcE40GE%y120EJO&6Q9=R6kb~suf*dV?qYdim zptP6>G7bDMVD*1ZV~Q?F*9DonAeVy^@@Q59J#TZ97#qt>C;M6-zinZ$r$f@N2j*V& z$Ub77xLz1GPv5E9HR#cS1CU}wp&FJdBr^G=L^3iyF)%3~7Ar;uB?Dv9(ZR8SAN`$g zzrBCb_H0w@22DLGokPNFAz|4=(NWXl5M8~@x9x0s_2%D~i2q7UZ=c?2DodW55|j~Y z6XVbK^`^M{U_JcQUEE+`l7kJ!%7$cOix=78Of9h%7B~|j+Sm|nY=AN5p#>b2fgVDi zjbgD;46T1nU|0rF5%2(mm6nDkNYOqR?y}L1?1sV#$uSH<;yVwJ^|QwSVw7 zkMPY_fel>GN`YIJ!0OJ9ZO}x&QZXo14NWRXWJKxyj}?3{)B5AJ&U?9rb+{Pol8=6PB9;V!8` zHgUm1FCPsjFNBLX*2R_N;y`q*XL54Fk06Sa*_BkDZOA8`g74iW#9QhoHp6=8L53N*pezBKb zv7=pQSlsGH0F!j#8TYm)|zN8!kZf4gnDRW7E;JYS{dQ3O!1cHYQ|=0 zo(SX^0h(}SPXWnfB$W)%DFBTI>o9Pt|Hed6bde0MnvMyIYYzyW09!A-IouvJ1K{*F zGs$&tb57rXq1tK`2%`|fqN?fdd# z*`wSkCmMROrU#ukedG_oU)o-8+t4^OGkSWs zYk07gsV&~pQ{BOzV(y4=a>lv4sJlB89UVzlb|jIBx-k!D#KsC)Sb;Xmh>f%q;%uz& zmaq=70*x&JLo+~^Gv!i>27*q4myQ9=DLIXzX(DJ^D2fh}!bVYzP%L|#l`AbS(X@D; zb5Izmd4caxdn*K8flaBpBv+nMs18EVRtQ?7R4tWGEEW&ekM=c+`}R%#I`jL*4xB*VfBUOfghH9Uhu2Tacdywxjm`l?cE-hXiyuCD@U#0L z>uG;Q>3LPzv9aDR&PIV@c1#gqt z9iz`ga&-ZLAz)^Mv~U2;9RXW+gtITn&XuYUx7SF3HU$BzYX%KqFaWw1lA(vO_v5>S z8429U9Cw_+QO(vCIJDIdnpg%YR?8LZ;a5np5>hRPpe7ZxNTsS*K?|kO0+pf$l9#Gv zGbhI?72Tzy_iVdQ&_`~WNOO)c7&}6=Byih(lS1g$$k*!*>Hda$lJtisg z?t?qOe*gM+rS;_5&D@#MJ^_|O3nnbv=_0_`n_%Wk;aY=6RtSMP2v6@p@X37 zgK!r?*Bq_qg5`Q3P0WDV*?jRxvm9DBsah(BQRT2R7pRo;RH}IpRIOCORwajKtCU5M zs#vL3m@1bRDko>E#6?PRzHBmGF3VLa=1XNe3TJy- zxQZ4mt^d&Wk6jN_9)9=XY0bhMj{rlqDb6uiq-Bi|`4UXLiF`-Uz;bHAg=2%!HN()k z2)MTj4^9#lgn1ZR2pv5@V1}@DL)&@*HeNt*96cw+I5o}AIM5KIjUtl}6bgdIK+v^8 zO+5f^6~PS?z5^OA?nSo9*brjd)7cQzB7;^dRVyI*3YB7sLNQ0BDuk4?AZ58+Q6g96 zD^)Wgm>H^4sj5|qc`9kKY&=Ignyi}0P)!s_hjQhkIVwqxaxz~oNuQiZR>@~cCuS<; zHJ>{dC*}uwg!x>#e);vg*Z=5vy!-H^z9}~*)luL?a*s9Db3vK-<4k>VA`i5&0}?L! zc{V6Lb0plj)i(gydH|CN(CL7V7F-4aCRQjr543|X!qyK6nnBOX5vAohibDBl9fSrM zE}IY(Efif3r7b{mtPt=O6u1FGH_*xf*s|6Kl5bMUm&>7M1=Kt>QRVZM$}&h*1Sv~Y zirGq4kpjw9DGOApnQ}#e3My2{VXADUI9nyjR*4H#VEpeookhV7ed#`OY(0SFUcq@|yl znLFCp8DZjvHgm;Txu{t?Vl1tYu*@>x0I(SwgK)TV@WQwRAnk%c??m#99E0hFR-z~# z(GUeUV&Tp+8NNV92)-TO(uZW}hZp%EOcYb^n^QjdG|-2`yD9>J_Ro2!c_I zRf-aoya?u0LOGBkPbtq*D3cV*>2g`TN|CIPq{_!rZ5Q4MI7GBYjdeBD1x_ z^9(H$Ia=0eEk2-Q3J9D~&LNDDL_v6}C@|5`B~sVH8?k-88>DQ36ibwfg>qGc5?Z8G z)hd-m3VESYHVdAU^2t1fB3GfzgOr6TSq7v`P$(m1(h#{gTsj<~7>`v>B+6m1u`K0S znsg{ZF`A;9$W}_=A&@79f0@XWj?9*fZ5x^J zbt+}8N&yF|T7`11QZW;rfl67SN)88}ER`bvFK;VyA!V{$8ZMpiQ;r8Hhx{jc+!Z6C z(!Qw4zF66C{NzxKd^7xk#QBpGGbcx8PV|>f3@sfOpMCY=>ZaD!{{a5_JjLGy_t_)jB+r_#gHC_%~UfvJS3 z0?oJ*-G~CFR|3H<5O54ac}A&6rqYrMSToA?Qz|*J<+_2hnA3__*=3y4THE;zel-hx zE33R_S9oO4b`DQ7np0^uIk-?MtA~OAm1Aol**ulJR3V+In4G1QWKN2s74qo{*-S{W zKq)U*s7mC@e3d*^F&ZZAb(MBmi#u#(ogUIIA8B`pYG|5tAYM9@s2EOF4X4OQ(-h-* z(t)Dx_t{_G%>VLfS8xC4XD|QOTYm|U8!vVhuCUB)bc!zL_~mJMrQw1zHT;t_ykX$! z8W9=vn0!iTE;b-bEqoR|u1Y(ig5{ozx0wOB%)t32k`oK5>GO0mYdCp}jZ*5lF;&bN z)w%_>ywV2C>ZPugOWZ0JdX`psCssIxr|WOu;0Gz2REj!CJ|B|8Rt-t#sH6pQaT+ug zds1bxD5*SAu9&TmltJS~Qf2OhJXtD^mx^P@h69uXzN%l*6K(cmUwHCg9*UlriS9`G z;B=T-+&4|qpD^AtW3V&1?Pc<(ck6n4U;O&@{@vSu0(bX)zWerY{wk}q2J`UQIspab z&_Zfh4%sh>;1Y{*kB8wYF|(*q#iZbwgwRrQL=7RLQqQ-5=8+9VlwpGNQHd4g+=cAf z%S9FItn*iyBs6dm>hv<}czJb#iltVStDVc5-3sfRVk=DiXAn;uh=kxgB%2z^D(O6E za;|E!7|u5eS+-&<0~$+Eh?B>L%C29EU%%3F_xg|z4^p9#B;|0Zay%9iN6LF`6+dmH zU6zyWmdc^&Dses}&y`DZCwh`62b07<6S`jof4J#+`;`CdM@=1HZ~y3g`~Ka%e;?9U zUhFE~;GVR|G_pd^Cr>@HgdSc%@=nIu$0P0HkX~toup)9~xkkurQcyWDcmXzQfnH>V zPDlwVq8u4ijE<|(C|ssDe}nmg?GAIc+NU%dg;#3ESL&qI=oKtB$ZZxS!aH0lcoLjCsVo%rsptGuR5- z|0o3-jFJz#%le#UKOH6C-Nm1srQgDTeaL%wKkN4GNLhd3#Ltu;??b*l_Pe}I|Li)> zsZEZTkI(+__TsOe&+p&-y{GoCA${Tbmb%vX>=jNCb6M^=K=d3+Xc68k6K$J>u!sj7 zQ_z01)I%$XL37mo=MnP6j2dQe6~%cL-XQ~Po{Vsh243IKhLlTX6Z4dl6-r5&aspO`*|M>8#dx7& zWSV>=Ks=Tc7pJF&RU?pfQFw{~0B$vSDqjak+s)*!O=XWAWiR}PF7b!%*fr%C6r@KO z2&nUN%sXD?KE3Ap=#h?vaEH_VCWbRoA zhF0JMN-(aupmjQEJ_E2$LAVuS0_Wm_D)Ii6>S6V?*d>(ImDJ|*!H)+I?ti*8d#&l* z?S{*bIW!;ls5|7Axn3Aptr1#D3Y|v?n@8|0S96?&cFaUsrvYKZhooP{4u$`#T35kFGRbQ%r2kQL9KMFRgOFb9Lu`XyX02-*h-5 zZJ9;MIv?LsRM0$(S1IT+6R^$(%##7jWWXT@^qYeTsU-wdu7bSof^+h zpI$G@Udt-q$yt2Vrs=p_)jo&RwFV)z8X;BqplY??S~dR~w9g!*Zvi57F1DbK`1-+g zXtG{5F?VvLL_S^$Ny=3dGhv-1?T=Lr#Y+bKr6W^sZwb<$P zxWqgQJ0BxPT~s=;+w7$_kASSJ;$ziOOKiW4xEn;sl^9X5q&Fg92M%1b0w&-QFXccT?&2KfCyTdGb8QZ^7 zEvN<=(SVI=z(v#|1F8VuDs+6k*4%ZptM{Cg<8{j61LSm zGoAS;)GD6F8h5n~L2AuG$hrXJ#!|N{tqs4s{(ZaURM6_|`FiE~-qQ~@Wv{ZyS!o}! zP$RMdAGweiwSW#gDr}*;e25G_L-8K7{FR5^a>wDV=%TUihk$t%2#)ex4rvQi>LGV zmlt1d?7y{W)<%c&t=>s1wGvm8b2jOxt=99Kj|izphc&<>9PL$x@GJvDYEkh`WEePg z9W84UbNVtu+#>a?HSDwvoP=h2N+WH?LYiMGI=BiqeF-tDiR4|2_L-;VTdp2bjZA64 zZakPUH1c9(`0Qx!Tt#2Dv@^T!UHsU$SZVLHv7Zr&UvY}A7|DmQ(F@L!(;lN2ea5c^ zP23ETKa7&z3YK0CP{4L8Wb#gk{ASF^p}@(5Ua|xBl8tuXvW2aNsI7L`H367qp_nE= zwX@B6J>TE`?Ed&4+O(f8ZMslgvCVJh2FvudFfgHD8>e)SX=D@LzZQsS#Kbfa!xpIf z%|is&Amba!Nh@h-Yblv6)M-uFX^RPID|HgrvJ+S7%veN;nn!fY1H4O+aSPQW8r3~& z5uS4qzNLtyI_+aOD|-fCD^-f#{>R@w75{n}`r~#``*qJ>FMRvo_{+QEBtK(Dend*% zhE1GxQ=a!9xe_3~5hc48F1;2cIqf;pYAZY7COzmSKN})D5g^&=BHm~{w#sy(!L&Pt zeb-Cw~C$>iyi-`DE+)%9KXqtTnu(l^WBQBXc&e zXSWK|*K0*JqC)F|xF-CxWfa)GAvIvkBEpPi8fhyDIqS(u%W$d9l-w5XjMcgc&CI05 z^w=u0dp^=32MDcH3txnHtpvR00)fTAmZNz})woJEwT(zD{rUA>&HHO!pD(%(Jqee# z#Yta<4Bqn?`4l$MpEU6}NVeS)+UYQUF<|0Up!B5w#37f_tro+}jD{BqCCx7KjX~mN zjw1_!p_SZbNMiXXpJZN>^*&PLX(9fG_q+{Bf{#8vp1#h7VL#P}vcSREKqhfQfF zXRad5+DuDdp`Ou9E!u39vW7LSk(#+&Cvzz$woca}7wJ)q@TtH!&jvh7fs8sq=dXv5 z0+Pv8Vx@R;vg`B9m5)w(J~=4py6Q1>)9>do^Uj09UzZ%lUxbXFbNOCG7^~8g?s1hL z@{#OyQ66-kTxB{`uJK^L&_p}7J?cqP&eGA{}7oWad5WWDJ(ZbBx%#NxjrmoaUSw+p+ zq?x^5Gqyo(`VxHlDr!svF?9tsXN^YLcFm$qjI?Fs{1#qjiyoYfOEw6S8+2pq*e(TX za3*spRP!vwB{g#QU0Mjq$Dv8tq-=at)+Z5v9qv4J^Pu;G1DwY@IJcKDZd73&HxQoH z6TffL?_0IbVr6X8OQZqSdZ#n0Ko&)lGwx=AZ<6{l>SZsj4Z#1=}{ z8iU+z2B|H2aShsWHSCN=QA&d_x7lIE!OUCF4|nyw6Hg9I?GBT{`@{wy6>Q^5<-nWA zYp-mwxLS?6l8?NcLb#QLeo%mYSE~NAg8DHB*A|T&3nY#t(Z(}bpM5bs0UCXN)Ym4+ z*CPBCE$j&b<`@onk%PHri@s=!KEXvFGR7QmQ`_c_t_%ROiiznhx+Se9mtU`ew*Yhv z{GFWs-qiA<^Tw77^DUc1OZDix zCF&PrFxMi`H^b3)gOQIzu@56~FGKKO+%P}P(cc7^kJ`v@T*41N<&!??wHEOu1@(c9 ze#5}uHzS<%NAHV3?sNlNtbsBQz$YH184nm{Vx}$8-Fdxq_1V;~zn^{T`unEZzdYPC z+#3GV=S;{-uN|}5S%5z^19y8m{%#cUejxUt5B9E)+D%`~eJ|7t z7t~8fwHFrH*GBla`k3c*;Jr4sO^5V^g?gw3JY%V!GgV*XgIpAaT;KteI0H#D(0&zk z{w%!KG{B<>yZKV?nsX^nz8vlN_0K3hCANBBz5aA)=kXcGkB7WG7twn)M)fdTc`I`G zpdEB04th6J{47g#GqLB0_ul!0ffIfm=ba93((d?B-nhfEcDLS%Ygq@+r=59_bL3ju z#)AP{j|J?z5Ov_v^r9t<>>6~-?rE}#@8jJM2EVTC|5zmbSppXf5LB*EmUh37KT<(k z?+ENR2T$4}uUn&TJE3oS<1V|QZ#kguTBGh*fOkxgw+s-s4G=fDz-2b@(31JA-0?`h z$r@+!B12%2J#uykB5^u4rVtxbiH)sige_z^%*4BwQ0k8b+i*Dj zuGO>cYO>^7sPakxbR!C8a>;UK82^@nTd!}k`*c28e%42I&P{bGRC>d6=#XG^kBQ`lU*C0C z=%(-89fDbNfa{xupHJEx-N;+H%V^<#1*o{Q)0FYY|h)q~v4GytF9kbX(t=bw_<6>~UC40xE)I}Ga zD|cxv+Go7rm_zw~Va8^yw2e9?d+e4U&3p0X_T#VT-v0P|S^R%S>A@F+?>BB-WBl}F z3UtfT0x|bg`DLZD>cs_Q^)fKPW zpTFz8cjFzr`25fEP(IN;+_rPuCWniA+?8j8H5$84*QJ69gGE8A{Tu#TO+oHo6QoUz#;Z<|TgUb~ZT z%C7%d+H^3mX@kv$qy8fu1@O9&9LkZa3goKU%F!apo9Rzh>hv9OfgU76_al_IqM=(e zhW2|xmtvudGvp_e`<8^>j1o4HfaL&UIe@K20TpIyc|2qipcae7M_VHsR@klI?7DI_ zY29H$%Xx!s*BqB!wcB*VwfT_Q{MN7!U*A6cbmi=`_5ThGzwdpq;_SZoi)X?HPI!** z6!dOjf3Be3E@rGQ$IY(C%w2#lEJGAFQxXi?X$AszP9ep zm!Cf!{{!%smo2xhH5|Jg{qmImmATAa$*3KXh?Y!hYAz;uf%?3Sdbuk#QdSXDnlv)k zvr2byYmXQ$JZ-w{n%lbD{>#odt-IoU;!W0-&x_7{TDbpR(Y7aX4M(i!?&nq>H=4VT zH*=Nxp)2-dV+D|;02(e*d`XkOPEx$cm*1YIx)tBK&+TrVX8&Oi$t6G8$$-JlUgJlm zPh3crT}~N4>N0xJO@1on*XC&lXLz)h$1h8Ds|mDO5fHR3$mc<0xb*XC)!4z|UpvNL zlqz1NTss@I;gII_vwZQ(Sm?_tY40oPK)ZDC@0$?+R$33AZMykz{r(p@hfl@NPu0x| z0t=&&m6iNCt6Zu!*{(d~zVbvs?OxluJx;ZU{L6NmY`7eI;yHXT_s#=P3XVJ|z1z0x zb??^i;&VUbH@-|>yYp@1rB_QHeBSw{=j_e4Z7oMrwjK&PecbucRgaz*8H!iAP}>64 zn+21P3gq{)CvOyd-W_^nvv23QB*pnO>D?6*ulK9EE=|7KqkP>WyEaGuVw>z~g{?htOH#XdOzWv_&z4u=2dE0TZYv9%Ip|OhkhB|8_Cb(X zDH|RacPkWP_**i`Pszl;Kg0t*t3N-Q=HH6u|IXXqk^lH0o}S^3pS_=Yd;jXB{rc73 z)!E+F@ownX-(L~;|5e2GcDD_8edzD{>&8&{(Bl5D6MbJKgWptxUq^a6es#5d`|+{+ z*VHJLPyAL%dM3xFc5#TsBme6>$NRsG4gUFj{;vW5cP`5RA3pQ{9Ps}D4?N`Sd7B0Y P00000NkvXXu0mjfY003490ssI2$7TwC0000hbVXQnLvm$d zbZKvHAXI5>WdKxYbs#w)Ph)f-GB7YWATlvJGc-CdGaxN6FfcIf1(Tit000McNliru z*a`|1IXAkZ?>+zk010qNS#tmY9>D+r9>D>_X;f1H000DMK}|sb0I`n?{9y$E01n7W zL_t(|+U;ElRF!2Ke(vS6ud>J{s30ofl6x*>PPvej=8|Swwpg9ArfG3Hr zUu*Q{5^->XqX%4l;NlBcUw8(?GlU=S9`KETR~Q`KpwV_D;x+cGCJ~+0dK8{V&N1XB zA@4Nu&Y&aN49+sTwRIWlStcvi@T704AnQ(E>KIL*_$|yxEoRT zARrbxC$$SC3F;9{`BqmTV=q$H;r#a~zN~grSOcFPh@6DjnLN084!7SmTMdFqxTRrw zas^U1qAXYK7O)MTp@^Q2fsgQ-t+hvqRY8I&Ba(Gbt-|roarKni6&DR!ss}GXzX##s zZC3+Y5rQd;YiT(20kd0Kq;{3%1PNsW9>Iv`cn-G@nq?-KRGq8I*uMm+>v{9x7J<$M zv9mCG5&WZ7r&%_FDcORv*!vHhUMr*KYN2utEc!Zo!KXWXd&A9-N0@sce?#AUhP3*_ z(p>0ExJMRcprQz6S6Lk|$wqk|Doc3FObQ&FdB%==4Ze{o(ku_bWqH{57LI+&a{*QdGj}gFAevx9 z6_UQfu2)fhRgvOr;Sq%3q3AIdVPoLmhh-dD@zo@p|L*3;gwGH%6q)<+`ypf=;ElFg zLkqw12*&t#(QlUWlD4?~SdvP|)~9jlN7+kFvtQ^4-f)N*kHCJciK+!B4+Ib9XT4bV4JtO~w@@q)n$$L1|-7AY5UO2xK{~n4-AE5t(ifws{AoxZhwm*mDRk9UQ zgTR3pI1e#1;T@(-yVwdh(wFA&Q(l0S^*FHt*++QxzEOaU^N{f~CcFn{PX!8MGr{?1 zuyzKUdgK7jy-^7mz7XBx>~o*UGDx->`V@vN;LW=upCEZP43#+kALJaz%yn$7k{LEk z6tw7G*p20Jvan0S=a8qc;236YK+kb@#BRM4fwiCsIdmANeu0H&FzOXJd$SF6`DnJ7 z$&9uVOzfs^z&H2dM!x70=`e6Uo=HW*r@WqZFpz{b{vD=y#0$K%t%_$Gnw)!0Z6cTo zl>7}g%t2MT;Npbefk*da%5wOG%U5UhL8{%P_wnR0gpc9{?(7!%IJSQ3qoSPMjLnY< z-k);u!QD$R=y7NrWU8v&p=%80Y-5w!u0?EJj+`imUSK`Jmk%Lv9!m-W(JLPJe5`=P zVRxXlnY6y{cVN%!JgkFm6P|;WQ}p#rtecLiQgQj~5ce0%-h3;v+X(jn#D9pAoSPc6 zI9M}+t1EarrZh)b=1v}%@&#gM2(MN911(HZ@p5e4OD33>-hFQ)bDyxBJwh<;OZ5DM z@G7-q=v>4nDfLBC%nvLPmMtlQ5C6ahpH9dOX$038@ZAf-1S>~(%t};^-P#)V94ftn zDha-uPVNHAS?^xR4*G?hyHWa{@CxOns;T^J(4*uEZ)%!ss!+Rm2EwI_Rr}b|2u@98 zi&uz9}Jy=z+jXzWTwEzWG@eluq~bk62qwKSVkH~j6t z!sDf>ey464GO#Y(eVl!aFa1nV`?OhGKQ_@$o& z)E0I6K+H@rNm+~hGe#f#OyL7$vUW8-^?K3ho4ej_*?&Xlgt32P_oJp5y{Ki!6)JP@ z$%vR>^ku;rn1!W!W*rez=g0|gbQP17wJ_0$yh7TTj&#tRS8KfbdWW|9GD%6E!Nw)* zW-f7)zgp7w%o1#Kr~sOgaLfimRT+n!jqSc-Iol5?oQpv%C;=?Jp*sPFM-^ z1Pfx9;2WuSO>a?{C0NRCt<-$%#%t~tgIR(d9MvvfCv1gTf*sw35EP`TUDI0>W(n50vb9nOem|&oO>a?{C0L{3v$jHTVYhm9G}atVOzt+q9)eJr zg{7UWuu)?2$xBAAN`Y5ge2hL8oU@4)lcTD6DR$1WC4!^kg=KZG4NC;sgyU#i)<~OX{g#Zv^z?@n<`d*RTt;Z-mlS>@kja^UL!ZKGqtrVY~aIe>=S~N^*o^|kKxZE zcD9(LNbsDvl%s;Qh(1$PsGV6zAlS{HkLrp+ExvsWMT&=|)av+b?#P$LMDuXKpUcvg=;?JF0gwBNz=05Q&`<(j6z}bhj{N|5V zS`TpZ!}Qgdw+sE}!Y6`fIQnhhsSQUXH5$`o&BMXj=wxSHl zA|sb+>Mmxi0Qxec69~kySx*YdMjq<;r`I9tknPRONZW?BGx5MWbvUNxYpn&_5H(Hb zWEwk~xOBBR1pw%9G^@iYB<9Gvi>-=T9&P@o_DddNferSnq%BzxOWv_n5Iap3vO6+nb$sf z*84X3f0JB3;~NebDHbJJNSuQerr)wAZtV+_C zd;(?YGaN8W&S<%|#fzr(c;8#t`}dZEB->gv2R`O}`wQ$eZ+lyp~r zR24a%wL#%ymsWwC6FB%T2gWi~@`lu1Z*%Qr*2HWM2wor4aLbdjT~VgtNo>&L==T8c zinm8p6eDdb4u8x?SnEfETUS259Tl&@QE3qo-}!omb4YxM18m9%ColA!!k1n2xU+6I z$L>*6jf{O9^D$+eQST2MgZsbaYa|po2rn+Af7K11u77z)_S;ol{WvmS%nS|?CzD!b z3rOv`{0pnpe4X3xMvH>Z1#y4HsFy4r%NGctcQ#N`*+;SCIfahXljajL6ul-PJdPun zs5q>tbLS>;5V7=~>_6I~tt>1K_xy_^n=2c^LWWycs`VW3dheTxI=j;Z?%#(`#fJ<- zKs5hf)>siVObajZ<)~MZkaLuSh;bCcR$9^{7I+r;^tgSp3$Pa5N;ol{y30Gmw|cK00~{7bsCN z_)eWgyp*VP!-SkSpVdc+IoX)P z@jjQ8t>oy2+a6*?4R7uJJhz`+Z6;ChAH!@V#{-9B1> z^=Q&pIQCh~ab-FHy7tG=r_ui*UJLAi+IlE{f3Ts7wZoGuaAuRy)luyiED)Hf7ccI%(>vYGg9NC^@rZqZm2!I;vL;aPiuZc()Lp>QxXx~2 zrtSYiaE}n?wfDUoX^Y0Lz4F=!wFzzn6~mxsBO1}1v6sWmH6Aum9VBd%hTVNE+m!=i zSe> zNw5h>4JBo?C=*vtvsI(;Lc^Xz+0{CyOk2vYVUJ~xKzN6vO9Z+^!mkhCcHE34xrK5J_o2pv`>ONAsHQE7V3lKx25R*yIoA=(#{PX6_ty8C}PJQd1^Qn8!S2!bN z0EazX++6@MF>&CyXaK@_z)5ua_aQDWdLxpF|0Djj6aOp8f6MScWdD%=+g120067R~ z0>L1$Q-C-`3)b09bLWC`Ud6} zmR8m_woczUySTc!d-%fx0)v7thJ;7lxEUE0eJd$BCG{@iUfP4qtcTe-k8(>&%gQS- zKRvFj#ns{K2|qVHZ+%H_Ywzg%rK_JZF!*NZ?eNIN&2RD@jpF2Rq(dp&Sj;XFWB$hHmFYKmc{zIiy92bk>kgYSkDJ$@6m-obBqwEaX_UC zfj)0XhxcLP&`58ewf@hE8?W^^e-czO%zOMKqngcM#q6uSCterO;U@-DyJDNh2Y$^c zO4Rm~p1uN-3^I9h?FBp}Ai?Z{_ZI0@Dt-9!tC)y{o7S5)Hzk#dNOwJ@BrPlcoOe#{ zep2!pllBz6e*@j;i&S7cU7&S?*`=^?WXdwp?6(ej%Kq>JgcT*ojkr4ZrJ~jFePx+9 z*`wI@yutz3>aJG#A*$MP5MQy8%cSe(F&#b+-1n!n{x&{LT*r{u9ZY<)T2!IT_Sw^T z+B31Com07+mVH9NP5U@fp8*p`RB>~8^XzFxMOMR;bNj5Iyi?;l77bdVmB!T zSxeFPz%}L&w$mCltNz2(AA--tiwz-jE_x7}XKGnh(#?^o`sSVb^W zS5b5CY#bbquAdBfpG@DthPmo8HZNqZ`)zXQ8~1 zhj{ZGwZUGtAGRP&F2z`Ra~djdB#=NtIX>l#28)9`$+GenY07lg=8o6lmi&>`Rp;m* ziw&|)ln!+}BOjm$=A|B})twgKkbfn^4G61=|jqtBcMS6<~%tUfLC zQn++mLkw-a(bl^$IZl?O+x26e$pB+WG0MY42LdlHv(}b-T#JX^M=!*$mIay8&C$g8 zz17}5h3QocUnz{Cm*;4U8m$~fNRO-qaxj!L*T-0vm}j#MB_9X6;!1D)Jj=tLf03ow z_NGBE`;*MZ78CX~ooc%X9xj#KZKw-g(J3@jP1WOJ`3A@89!AW-I(6LpJ`JW^ZAp1? zwA=CAgSJcN%hue~G{PUW$q%=ee=~t687UizyAIeec$RTdgd=^69o=+ldb~#yrHSXJf_+VOXo^)^~{|#L585zjy z;KU20bx~@F_&%tFsM`n(mG3P^;|rh=$CJqOv6d>Fz(z)>+O{Xf5yH-@FHbk=Z1Ikw zBqiN5bcu*L%F5OJlTuOifLs2?yN9YU>$=F}BmVHbYN<8;N@!p5*eyq_BEc%dD|tx22)XBRnP&j@#OP zv{t~{LG<79s47{-Xjez-P*K6JEWQNF8^7bZz7ICKqTC+yV*rM{N=fvXxJ2~8TdDZ! zjmjY!{PR{i>}%&xANTE}pepEF*x5YpSssXiouv$-yVnw>0FYy47*f=!3E5h#E|2`_wgBoL<=?EIu|~w)PaB`diM` zd7hTYR69F)C)pnmw<_1SSVb~yu9REB zQ(}-F-0f{Kx}wj+u$P&{p{#D3eJ=`eJ*}{~0dZsq_AnI9`{wKxDWaX0q8@Q^hBOz* zvJ2B)jb3)EL$F8_y#Q(i-R`<=RM9oIP2te(!m{t4QJ)e507}kN;|Hc}s+_K;rdo{Z zZC@CRYL)N}x3q;^cJku(ngnEz!z9Tg(EVw;Rm=q$So@@T?5PPgbvsyFUW9T5eO)V8 z+jk1=JN(B}n8invch6S@{pEU2>h?xB+a%xTI3Ev_%xWE~PZGB{6Fyb@?00|PbS%v1 zVPOPEi31^hA3QUnbZyLeq)A7gYLHjbbYf$qZo$SMYr7gfd>d_*W`W(V**8Jaubkjf z7-6%`0W1Xe{A)T&-QDWJkZ+;l z?jRPlr6c6yhr%>Ip~vP%2dv9<*MDbvx`AY-_S2}kv`4dYxh)yzqcI^}TaELPu7>~e z+yik diff --git a/doc/common/sourceforge.gif b/doc/common/sourceforge.gif deleted file mode 100644 index f4a98c6d9a38f470ef2b539c46a8c8a364ac42d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1501 zcmeH`{ZA7I7{`xNpq;~2>7Y8fTz1yo6}T)0j*qo6Tmo+g&b~$K%0q-0$}j1VNG{Md?tXP>81Kcs$NH zeGC(47>2duEXyX7NzQ_EHk{))-cR#9FYufo2%;|}ilT&Ik_negK1q^f1d~meY{6uk z4ldjLvYn7+S+Qe^6H{C|q~gXDw_ovu6pT=CQo(6O78FHMJsuVFsJM<#^%1Jyr}}k= zRDx6qMkQI5imMc>(ySWS;Z;RcRaNtOG{0LTTpFPp(@0#SNG(KbaZ+PgjY(=Oqp^aP z1bh{zsgpeC(C(tgS-4J&{T(<`pH!vPxb#P!QNMex0 zA?XJW0}cmH9|+(`;Bnx6!25xxfR6*ug5U>%0D%S}4uSw80U`+^1!4$97Q`foGDsvy z6i6YESde&-M3CbkGaz#y^B@Z#>l+0W78DK?9uxr-5flj&1yli45mX6O4KxWf88ij- zqd@2X{PzQkpElrW7ZB4Eq{=*R?MVMvmno~D;qu6liyvFeV$(9mz@@#ms@%JmYx1%R zjZM4mUk)~gqgDs~Xex+yq|Wij{urs5FyOTZY^~m971j8RnLFkLf`%IdhLUF&HzHg2 zblR633%5@%Sl>~!y;SGE2%(eIiqdc`S7kMq|Mz#XSxC8uw~148Q%|Y z3G^>G@om~(arISq=j8ENvbb^AXhr1aH{CZ^55`i`2|ER5Ty5Rne znPq=En%f+A|GrS$|?foFQ z;rjJ=tj&*Wx6Q6wc6U>Rd|~tRc{|@Mue|CtM_KC|srKEoYcgVOqv^5SulwJ6<=vJC zwJS4C+1-e5?VXK=*ZOj5*7A(GnbxsQv8HHf&*vSr`!KA!@}~{E zoU6u+gXZ!2V4^4(3|K=Eyw0B2GwPjSU#~c1{5?gOZ)o$R25LID-KsQ)dw)By^sjT4 zMNI3@N`EN3-O|>x2y-BNiVLz3dil^)+N(`fXxvzhqP+?9nbEX<%r|9>#PUaxNP6Lo zbi}(KLB`iaJV?TLyI}i~FVoTNMA(2P`l5a9Cy(TuULHwh^Xo0hLi36pl^;!(d%wEX zhY?B6fTG8vE2)}!y9YZiqPJs2^Vw?y4
    &UHbl&7aMFFha*b<11~L00?=g3WzV diff --git a/doc/common/style.css b/doc/common/style.css deleted file mode 100644 index 39633db6..00000000 --- a/doc/common/style.css +++ /dev/null @@ -1,328 +0,0 @@ -body -{ - font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; - font-size: 12px; - background-color:#000000; - margin:0px; - padding:0px; - width:100%; -} - -table -{ - background-color:#ffffff; - width:1000px; - margin-left:auto; - margin-right:auto; -} - -ul -{ - padding:0px; - margin:0px; -} - -table.principale -{ - background-color:#ff8000; - border-style:none; - border-width:0px; - border-spacing:0px; - margin: 0px; - padding: 0px; - width:100%; -} - -tr.principale -{ - background-color:#ff8000; - border-style:none; - border-width:0px; - border-spacing:0px; - margin: 0px; - padding: 0px; -} - -div.title1 -{ - text-align:center; - font-size:48px; - border-style:solid; - border-width:0px; - color:#000000; -} - -div.title2 -{ - text-align:left; - font-size:20px; - font-weight:bold; - color:#000000; -} - -div.title3 -{ - text-align:center; - font-size:16px; - border-style:none; - border-width:1px; -} - -h3 -{ - font-family:Century; - text-align:left; - font-size:16px; - font-weight:bolder; - color:#FF8000; -} - -div.title-date -{ - text-align:right; - font-size:16px; - font-weight:bolder; - color:#FF8000; -} - -div.menu1 -{ - text-align:center; - font-size:12px; - font-weight:bolder; - padding:16px; -} - -div.menu2 -{ - text-align:center; - font-size:12px; -} - -div.news-separator -{ - text-align:center; - color:#FF8000; -} - -div.email -{ - text-align:center; -} - -div.image -{ - text-align:right; -} - -div.post-image-white, -div.post-image-black -{ - width:100%; - padding-top:32px; - padding-bottom:32px; - text-align:center; - margin-left:auto; - margin-right:auto; - /*border-radius:0px;*/ -} - -div.post-image-black -{ - background-color:#000000; -} - -div.post-image-white -{ - background-color:#ffffff; -} - -div.post-image-title -{ - display:block; - font-style:italic; - text-align:center; - padding-bottom:32px; -} - -img.menu-img -{ - text-align:center; - font-size:16px; - border-color:#000000; - border-style:solid; - border-width:0px; -} - -div.paragraph -{ - /*text-indent:32px; */ - text-align:justify; -} - -div.include -{ - color:#0000FF; -} - -spam.key -{ - color:#0000FF; -} - -div.comment -{ - color:#008000; -} - -td.page -{ - vertical-align:top; - padding-right: 32px; - padding-left: 32px; - padding-bottom: 0px; - padding-top: 0px; - width:100%; -} - -td.menu -{ - vertical-align:top; - text-align:right; - border-width:0px; - border-right-style:solid; - border-color:#000000; - width:160px; - padding-right: 0px; - padding-left: 0px; - padding-bottom: 0px; - padding-top: 0px; -} -/* -a.menu -{ - color:#FF8000; - font-weight:bolder; -} -*/ -a.menu -{ - color:#000000; -} - -a -{ - color:#000000; -} - -div.issue-content -{ - text-indent:32px; -} - -div.issue-title -{ - font-weight:bold; -} - -span.progword -{ - color:#000000; - font-family:"Courier New"; - font-size:11px; -} - -span.bold -{ - font-weight:bold; -} - -span.code-title -{ - padding-left:0px; - color:#803300; -} - -span.code-line-content -{ - display:inline; - color:#000000; - border-left-style:solid; - border-left-width:1px; - border-left-color:#ffdac1; - margin-left:0px; - padding-left:8px; -} - -ul.code-list -{ - border-style:solid; - border-width:1px; - border-color:#ffdac1; - color:#803300; - margin-bottom:16px; - margin-left:0px; - margin-right:0px; -} - -li -{ - list-style-position:inside; - padding-left:8px; -} - -li.code-line -{ - color:#008080; - font-family:"Courier New"; - font-size:11px; - clear:both; - width:100%; - list-style-position:inside; - list-style-type:decimal-leading-zero; - margin:0px; - padding:0px; - padding-left:0px; -} - -li.code-line:after -{ - clear:both; -} - -span.code-line-content -{ - display:inline; - color:#000000; - border-left-style:solid; - border-left-width:1px; - border-left-color:#ffdac1; - margin-left:0px; - padding-left:8px; -} - -span.userword -{ - color:#ff8000; -} - -span.keyword -{ - color:#0000ff; -} - -span.comment -{ - color:#008000; -} - -span.string -{ - color:#800000; -} - -span.codeword -{ - color:#000000; - font-family:"Courier New"; -} diff --git a/doc/common/title.png b/doc/common/title.png deleted file mode 100644 index 76129551d2f6f2bfcce2ee06c03c9d376167e344..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6452 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 A5dZ)H diff --git a/doc/download.html b/doc/download.html deleted file mode 100644 index a15c2bfb..00000000 --- a/doc/download.html +++ /dev/null @@ -1,167 +0,0 @@ - - -OpenGL Mathematics: Downloads
    OpenGL Mathematics
    GLSL + Optional features = OpenGL Mathematics (GLM)
    A C++ mathematics library for graphics programming


    Current release
    30/06/2012: - GLM 0.9.3.4 - (3.9 MB) -
    _________________

    GLM - zip files
    30/06/2012: GLM 0.9.3.4 (3.9 MB) -
    10/05/2012: GLM 0.9.3.3 (3.9 MB) -
    15/03/2012: GLM 0.9.3.2 (3.9 MB) -
    25/01/2012: GLM 0.9.3.1 (3.9 MB) -
    09/01/2012: GLM 0.9.3.0 (3.9 MB) -
    12/12/2011: GLM 0.9.3.B (4.3 MB) -
    11/11/2011: GLM 0.9.3.A (4.3 MB) -
    24/10/2011: GLM 0.9.2.7 (3.4 MB) -
    01/10/2011: GLM 0.9.2.6 (3.4 MB) -
    20/09/2011: GLM 0.9.2.5 (3.4 MB) -
    03/09/2011: GLM 0.9.2.4 (3.4 MB) -
    08/06/2011: GLM 0.9.2.3 (3.4 MB) -
    02/06/2011: GLM 0.9.2.2 (3.4 MB) -
    24/05/2011: GLM 0.9.2.1 (3.4 MB) -
    08/05/2011: GLM 0.9.2.0 (3.4 MB) -
    07/05/2011: GLM 0.9.1.3 (3.4 MB) -
    12/04/2011: GLM 0.9.1.2 (3.4 MB) -
    17/03/2011: GLM 0.9.1.1 (3.4 MB) -
    03/03/2011: GLM 0.9.1.0 (3.4 MB) -
    13/02/2011: GLM 0.9.1.B (3.4 MB) -
    13/02/2011: GLM 0.9.0.8 (3.3 MB) -
    31/01/2011: GLM 0.9.1.A (3.0 MB) -
    30/01/2011: GLM 0.9.0.7 (1.4 MB) -
    21/12/2010: GLM 0.9.0.6 (2.2 MB) -
    01/11/2010: GLM 0.9.0.5 (2.2 MB) -
    04/10/2010: GLM 0.9.0.4 (1.5 MB) -
    26/08/2010: GLM 0.9.0.3 (1.5 MB) -
    08/07/2010: GLM 0.9.0.2 (809 KB) -
    21/06/2010: GLM 0.9.0.1 (727 KB) -
    25/05/2010: GLM 0.9.0.0 (1.0 MB) -
    30/04/2010: GLM 0.9.B.2 (1.1 MB) -
    03/04/2010: GLM 0.9.B.1 (964 KB) -
    20/02/2010: GLM 0.9.A.2 (1.3 KB) -
    09/02/2010: GLM 0.9.A.1 (952 KB) -
    25/01/2010: GLM 0.8.4.4 (1.1 MB) -
    14/11/2009: GLM 0.8.4.3 (1.1 MB) -
    19/10/2009: GLM 0.8.4.2 (1.1 MB) -
    03/10/2009: GLM 0.8.4.1 (1.1 MB) -
    16/09/2009: GLM 0.8.4.0 (1.1 MB) -
    11/08/2009: GLM 0.8.3.5 (971 KB) -
    10/08/2009: GLM 0.8.3.4 (971 KB) -
    25/06/2009: GLM 0.8.3.3 (971 KB) -
    04/06/2009: GLM 0.8.3.2 (971 KB) -
    21/05/2009: GLM 0.8.3.1 (945 KB) -
    06/05/2009: GLM 0.8.3.0 (896 KB) -
    01/04/2009: GLM 0.8.2.3 (961 KB) -
    24/02/2009: GLM 0.8.2.2 (961 KB) -
    13/02/2009: GLM 0.8.2.1 (963 KB) -
    21/01/2009: GLM 0.8.2.0 (963 KB) -
    30/10/2008: GLM 0.8.1.0 (938 KB) -
    23/10/2008: GLM 0.8.0.0 (936 KB) -
    08/08/2008: GLM 0.7.6.0 (907 KB) -
    05/07/2008: GLM 0.7.5.0 (852 KB) -
    06/01/2008: GLM 0.7.4.0 (859 KB) -
    05/24/2008: GLM 0.7.3.0 (1.8 MB) -
    04/27/2008: GLM 0.7.2.0 (1.8 MB) -
    03/24/2008: GLM 0.7.1.0 (1.8 MB) -
    03/22/2008: GLM 0.7.0.0 (1.8 MB) -
    12/10/2007: GLM 0.6.4.0 (1.8 MB) -
    11/05/2007: GLM 0.6.3.0 (1.8 MB) -
    10/08/2007: GLM 0.6.2.0 (1.8 MB) -
    10/07/2007: GLM 0.6.1.0 (1.8 MB) -
    09/16/2007: GLM 0.6.0.0 (1.8 MB) -
    02/19/2007: GLM 0.5.1.0 (2.3 MB) -
    01/06/2007: GLM 0.5.0.0 (2.4 MB) -
    05/22/2006: GLM 0.4.1.0 (1.6 MB) -
    05/17/2006: GLM 0.4.0.0 (905 KB) -
    04/22/2006: GLM 0.3.2.0 (955 KB) -
    03/28/2006: GLM 0.3.1.0 (963 KB) -
    02/19/2006: GLM 0.3.0.0 (945 KB) -
    05/05/2005: GLM 0.2.0.0 (194 KB) -
    02/21/2005: GLM 0.1.0.0 (29.2 KB) -
    _________________

    GLM - 7z files
    30/06/2012: GLM 0.9.3.4 (2.7 MB) -
    10/05/2012: GLM 0.9.3.3 (2.7 MB) -
    15/03/2012: GLM 0.9.3.2 (2.7 MB) -
    25/01/2012: GLM 0.9.3.1 (2.7 MB) -
    09/01/2012: GLM 0.9.3.0 (2.7 MB) -
    12/12/2011: GLM 0.9.3.B (2.8 MB) -
    11/11/2011: GLM 0.9.3.A (2.8 MB) -
    24/10/2011: GLM 0.9.2.7 (2.1 MB) -
    01/10/2011: GLM 0.9.2.6 (2.1 MB) -
    20/09/2011: GLM 0.9.2.5 (2.1 MB) -
    03/09/2011: GLM 0.9.2.4 (2.1 MB) -
    08/06/2011: GLM 0.9.2.3 (2.1 MB) -
    02/06/2011: GLM 0.9.2.2 (2.1 MB) -
    24/05/2011: GLM 0.9.2.1 (2.1 MB) -
    08/05/2011: GLM 0.9.2.0 (2.1 MB) -
    07/05/2011: GLM 0.9.1.3 (2.1 MB) -
    12/04/2011: GLM 0.9.1.2 (2.1 MB) -
    17/03/2011: GLM 0.9.1.1 (2.1 MB) -
    03/03/2011: GLM 0.9.1.0 (2.1 MB) -
    13/02/2011: GLM 0.9.1.B (2.1 MB) -
    13/02/2011: GLM 0.9.0.8 (1.9 MB) -
    31/01/2011: GLM 0.9.1.A (2.0 MB) -
    30/01/2011: GLM 0.9.0.7 (832 KB) -
    21/12/2010: GLM 0.9.0.6 (1.6 MB) -
    01/11/2010: GLM 0.9.0.5 (1.6 MB) -
    04/10/2010: GLM 0.9.0.4 (1.5 MB) -
    26/08/2010: GLM 0.9.0.3 (684 KB) -
    08/07/2010: GLM 0.9.0.2 (651 KB) -
    21/06/2010: GLM 0.9.0.1 (569 KB) -
    25/05/2010: GLM 0.9.0.0 (514 KB) -
    30/04/2010: GLM 0.9.B.2 (555 KB) -
    03/04/2010: GLM 0.9.B.1 (414 KB) -
    20/02/2010: GLM 0.9.A.2 (726 KB) -
    09/02/2010: GLM 0.9.A.1 (391 KB) -
    25/01/2010: GLM 0.8.4.4 (479 KB) -
    14/11/2009: GLM 0.8.4.3 (443 KB) -
    19/10/2009: GLM 0.8.4.2 (443 KB) -
    03/10/2009: GLM 0.8.4.1 (443 KB) -
    16/09/2009: GLM 0.8.4.0 (439 KB) -
    11/08/2009: GLM 0.8.3.5 (405 KB) -
    10/08/2009: GLM 0.8.3.4 (405 KB) -
    25/06/2009: GLM 0.8.3.3 (405 KB) -
    04/06/2009: GLM 0.8.3.2 (405 KB) -
    21/05/2009: GLM 0.8.3.1 (399 KB) -
    06/05/2009: GLM 0.8.3.0 (359 KB) -
    01/04/2009: GLM 0.8.2.3 (378 KB) -
    24/02/2009: GLM 0.8.2.2 (378 KB) -
    13/02/2009: GLM 0.8.2.1 (381 KB) -
    21/01/2009: GLM 0.8.2.0 (381 KB) -
    30/10/2008: GLM 0.8.1.0 (372 KB) -
    23/10/2008: GLM 0.8.0.0 (370 KB) -
    08/08/2008: GLM 0.7.6.0 (387 KB) -
    05/07/2008: GLM 0.7.5.0 (366 KB) -
    06/01/2008: GLM 0.7.4.0 (372 KB) -
    05/24/2008: GLM 0.7.3.0 (657 KB) -
    04/27/2008: GLM 0.7.2.0 (646 KB) -
    03/24/2008: GLM 0.7.1.0 (635 KB) -
    03/22/2008: GLM 0.7.0.0 (635 KB) -
    12/10/2007: GLM 0.6.4.0 (612 KB) -
    11/05/2007: GLM 0.6.3.0 (633 KB) -
    10/08/2007: GLM 0.6.2.0 (645 KB) -
    10/07/2007: GLM 0.6.1.0 (645 KB) -
    09/16/2007: GLM 0.6.0.0 (646 KB) -
    02/19/2007: GLM 0.5.1.0 (807 KB) -
    01/06/2007: GLM 0.5.0.0 (862 KB) -
    05/22/2006: GLM 0.4.1.0 (533 KB) -
    05/17/2006: GLM 0.4.0.0 (262 KB) -
    _________________

    Raytrace
    16-09-2007: Raytrace v1.0 (exe) (766 KB) -
    16-09-2007: Raytrace v1.0 (zip) (1.4 MB) -
    06-01-2007: Raytrace b3.0 (exe) (751 KB) -
    06-01-2007: Raytrace b3.0 (zip) (1.1 MB) -
    19-02-2006: Raytrace b2.0 (exe) (1.0 MB) -
    19-02-2006: Raytrace b2.0 (zip) (1.4 MB) -
    05-05-2005: Raytrace b1.0 (zip) (1.3 MB) -
    05-05-2005: Raytrace b1.0 (7z ) (808 KB) -
    _________________

    Humus's Framework
    22-10-2008: AmbientApertureLighting (zip) (2.38 MB) -
    _________________

    Philip Rideout's Catmull-Clark Subdivision
    24-01-2007: CatmullClark (zip) (605 KB) -
    _________________

    _________________

    Copyright © 2005 - 2012G-Truc Creation
    \ No newline at end of file diff --git a/doc/glm-0.9.3.pdf b/doc/glm.pdf similarity index 100% rename from doc/glm-0.9.3.pdf rename to doc/glm.pdf diff --git a/doc/goodies.html b/doc/goodies.html deleted file mode 100644 index 09f8ce5a..00000000 --- a/doc/goodies.html +++ /dev/null @@ -1,15 +0,0 @@ - - -OpenGL Mathematics: Goodies
    OpenGL Mathematics
    GLSL + Optional features = OpenGL Mathematics (GLM)
    A C++ mathematics library for graphics programming


    16/10/2008
    GLM Logo

    Download: 2560x1600
    Download: 1920x1200
    Download: 1600x1000
    Download: 1280x0800
    Download: 1024x0640

    _________________

    16/10/2008
    GLM Font

    Download: Font (.otf)

    _________________

    _________________

    Copyright © 2005 - 2012G-Truc Creation
    \ No newline at end of file diff --git a/doc/goodies/logo1024x0640.png b/doc/goodies/logo1024x0640.png deleted file mode 100644 index 5d059de354a08b2b705645cff53499f1049a1ab2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29221 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 I1B+Mx2Trl1i2wiq diff --git a/doc/goodies/logo1280x0800.png b/doc/goodies/logo1280x0800.png deleted file mode 100644 index 8f2dacde7c8b8d670cea293767a7da6ecf1f542d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41341 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 f_(} diff --git a/doc/goodies/logo1600x1000.png b/doc/goodies/logo1600x1000.png deleted file mode 100644 index 34207cdaafc7067f446f0276b45613338dd830fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55379 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%0D5PiD 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 CSBKdE diff --git a/doc/goodies/logo1920x1200.png b/doc/goodies/logo1920x1200.png deleted file mode 100644 index 3e50912a18862704f430b8cbe8f2978aa346a2be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71455 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
    <6~ozi9&^nn&G`rUkp!4Qs0;YaBoM(^GA}DF5fS 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 W*_%|^?juPAwtqNWuDW>Vum1yoEYT_e diff --git a/doc/goodies/logo2560x1600.png b/doc/goodies/logo2560x1600.png deleted file mode 100644 index a4870c3700fbe2d16b0c623e1b80d19e0651fb06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83668 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 L`DwuugHQh-gn|8M diff --git a/doc/goodies/tenby-five.otf b/doc/goodies/tenby-five.otf deleted file mode 100644 index 454b96581a6e82906dd6237ee6825189fb823eae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16192 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 V46my2bA)E8tZv@Cng8?S{{xxN%tZhI diff --git a/doc/image/0029-mini.jpg b/doc/image/0029-mini.jpg deleted file mode 100644 index 8f062d36adfcc80d986468990af224aa50401a64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10855 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 WCms?-G|l>g1@UZOgN*g>`u_r@L>Tx0 diff --git a/doc/image/0029.jpg b/doc/image/0029.jpg deleted file mode 100644 index c597c62496d48b234b71fafd85085dc13a63f1c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76519 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 z 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

    0=*qfh~XGJl+H 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 Aa{vGU diff --git a/doc/image/font-mini.png b/doc/image/font-mini.png deleted file mode 100644 index 8f350b187963131346cdf502dbc6ef8060091f09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1744 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 Nw~3{3@wIzT{s$SplH>pY diff --git a/doc/image/logo.png b/doc/image/logo.png deleted file mode 100644 index 2886a8e25a0c6162ab94ce49484b8ae617b6a297..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27877 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 - -OpenGL Mathematics
    OpenGL Mathematics
    GLSL + Optional features = OpenGL Mathematics (GLM)
    A C++ mathematics library for graphics programming


    - OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software - based on the OpenGL Shading Language (GLSL) specification. -

    - 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. -

    - 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, - procedural noise functions, etc... -

    - This library works perfectly with OpenGL but it also ensures interoperability with third party libraries and SDKs. - It is a good candidate for software rendering (Raytracing / Rasterisation), image processing, physic simulations and any context that requires a simple and convenient mathematics library. -

    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 officially supports the following compilers:
    • Clang 2.6 and higher
    • CUDA 3.0 and higher -
    • GCC 3.4 and higher
    • LLVM 2.3 through GCC 4.2 front-end and higher
    • Visual C++ 2005 and higher
    • Any conform C++98 or C++11 compiler

    - The source code is licenced under the MIT license. -

    - For more information about GLM, please have a look at the manual and the API reference documentation. -

    - Thanks for contributing to the project by submitting tickets for bug reports and feature requests. (SF.net account required). - Any feedback is welcome at glm@g-truc.net. -


    30/06/2012 - GLM 0.9.3.4 released

    - GLM 0.9.3.4 fixes quite few issues with GCC. -

    Changelog:
    • Fixed incompatibility generated with GCC
    • Fixed C++11 compiler option for GCC
    • Removed MS language extension option for GCC
    • Fixed bitfieldExtract for vector types
    • Fixed warnings
    • Fixed SSE includes

    If you encounter bugs, don't hesitate to report them.

    Download: GLM 0.9.3.4 (zip)
    Download: GLM 0.9.3.4 (7z)
    Link: Submit a bug report
    Link: GLM 0.9.3 Manual
    Link: GLM 0.9.3 API

    10/05/2012 - GLM 0.9.3.3 released

    - Nearly two months since the previous release of a GLM revision gave enough time to fix few things reported. - Most importantly, this revision should provide a better compatibility with Intel C++ compiler. -

    Changelog:
    • Fixed isinf and isnan
    • Improved compatibility with Intel compiler
    • Added CMake test build options: SIMD, C++11, fast math and MS land ext
    • Fixed SIMD mat4 test on GCC
    • Fixed perspectiveFov implementation
    • Fixed matrixCompMult for none-square matrices
    • Fixed namespace issue on stream operators
    • Fixed various warnings
    • Added VC11 support

    If you encounter bugs, don't hesitate to report them.

    Download: GLM 0.9.3.3 (zip)
    Download: GLM 0.9.3.3 (7z)
    Link: Submit a bug report
    Link: GLM 0.9.3 Manual
    Link: GLM 0.9.3 API

    15/03/2012 - GLM 0.9.3.2 released

    - Just a regular revision fixing the only three minor issues reported since last release. -

    Download: GLM 0.9.3.2 (zip)
    Download: GLM 0.9.3.2 (7z)
    Link: Submit a bug report
    Link: GLM 0.9.3 Manual
    Link: GLM 0.9.3 API

    10/03/2012 - GLM on GitHub

    - After years of using SourceForge.net, GLM is moving to GitHub, - as least for its repository. GitHub provides easy ways to clone the repository and submit pull requests which seems a definity advantage for the community contribution. - It also allows to download snapshots of every branches. -

    Link: Browse GLM repository on GitHub
    Download: GLM master branch snapshot
    Download: GLM 0.9.3 branch snapshot
    Download: GLM 0.9.4 branch snapshot

    25/01/2012 - GLM 0.9.3.1 released

    - GLM 0.9.3.1 fixes some platforms detection issues and warnings. -

    Download: GLM 0.9.3.1 (zip)
    Download: GLM 0.9.3.1 (7z)
    Link: Submit a bug report
    Link: GLM 0.9.3 Manual
    Link: GLM 0.9.3 API

    09/01/2012 - GLM 0.9.3.0 released

    - GLM 0.9.3.0 is finally released. Since the branch 0.9.2, the test bench and the Doxygen API documentation has been expended significantly leading to an even more reliable implementation and hopefully an even smoother development experience. -

    - For the feature set, the GLSL noise functions are added, based on the implementation of webgl-noise. - Some users might prefer the promoted GLM_GTC_noise extension also based on webgl-noise but with a different interface and three noise methods: Perlin noise, periodic noise and simplex noise. -

    2D simplex noise with GLM_GTC_noise
    2D simplex noise with GLM_GTC_noise

    - Additionally, the random number generation functions (GLM_GTC_random) which provides various interesting distributions as illustrated below. - Also reaching GLM tool box, the new experimental extension GLM_GTX_constants provides a set of constants. -

    Spherical random distribution with GLM_GTC_random
    Spherical random distribution with GLM_GTC_random

    - Finally, swizzle operators are a challenging task to implement but thanks to the effort of many contributors, GLM 0.9.3.0 provides something interesting, but admittably - not perfect. The new implementation is a great improvement considering the incompatibilities with some external libraries in GLM 0.9.2.7. GLM 0.9.3 provides two implemetanations, one for C++ 98 - compilers and one for C++ 11 compilers providing an implemetnation closer to what GLSL does. Indeed the C++ 98 implementation is compatible with C++ 11 compilers. -

    Implementation for C++ 98 compilers:
    • // To declare before including glm.hpp, to use the swizzle operators
    • #define GLM_SWIZZLE -
    • #include <glm/glm.hpp>
    • void example_cpp98() -
    • - { -
    • - glm::vec4 a = glm::vec4(2, 0, 0, 0); -
    • - glm::vec4 b = glm::vec4(0, 2, 0, 0); -
    • - glm::vec3 c = vec4((a.zyx() + b.xyz()).xyz() * 0.5f, 1.0f); -
    • - glm::vec2 d = glm::normalize(glm::vec2(c.yz())); -
    • - a.xyzw() = d.xyxy(); -
    • - } -
    Implementation for C++ 11 compilers:
    • // To declare before including glm.hpp, to use the swizzle operators
    • #define GLM_SWIZZLE -
    • #include <glm/glm.hpp>
    • void example_cpp11() -
    • - { -
    • - glm::vec4 a = glm::vec4(2, 0, 0, 0); -
    • - glm::vec4 b = glm::vec4(0, 2, 0, 0); -
    • - glm::vec4 c = glm::vec4((a.zyx() + b.xyz()).xyz * 0.5f, 1.0f); -
    • // Before being pasted to a function, a swizzle operator needs to be cast into
    • // a vector either explicitly or with the operator ()
    • - glm::vec2 d = glm::normalize(glm::vec2(c.yz)); -
    • // glm::vec2 d = glm::normalize(c.yz()); // Equivalent code
    • - a.xyzw = d.xyxy; -
    • - } -
    Download: GLM 0.9.3.0 (zip)
    Download: GLM 0.9.3.0 (7z)
    Link: Submit a bug report
    Link: GLM 0.9.3 Manual
    Link: GLM 0.9.3 API

    12/12/2011 - GLM 0.9.3 beta released

    - GLM 0.9.3 beta fixes various bugs and add support for Chrome Native Client

    Download: GLM 0.9.3.B (zip)
    Download: GLM 0.9.3.B (7z)
    Link: Submit a bug report
    Link: GLM 0.9.3 Manual
    Link: GLM 0.9.3 API

    11/11/2011 - GLM 0.9.3 alpha released

    - GLM 0.9.3 is making progress which is illustrated by the release of this first alpha. -

    Changelog:
    • - Improved doxygen documentation -
    • - Added new swizzle operators for C++11 compilers -
    • - Added new swizzle operators declared as functions -
    • - Added GLSL 4.20 length for vector and matrix types -
    • - Added GLSL core noise functions -
    • - 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 -
    • - Fixed half based type contructors -

    Download: GLM 0.9.3.A (zip)
    Download: GLM 0.9.3.A (7z)
    Link: Submit a bug report
    Link: GLM 0.9.3 Manual
    Link: GLM 0.9.3 API


    24/10/2011 - GLM 0.9.2.7 released

    - This revision fixes two problems: First, it adds all matrix products for all possible combinations of none-squared matrices. Thanks to Grant James who has provide the code for that. -

    • #include <glm/glm.hpp>
    • void kueken() -
    • - { -
    • - glm::mat3x2 m1; -
    • - glm::mat2x3 n1; -
    • - ... -
    • - glm::mat2x2 P = m1 * n1; // Valid before GLM 0.9.2.7
    • - glm::mat3x2 m2; -
    • - glm::mat4x3 n2; -
    • - ... -
    • - glm::mat4x2 P2 = m2 * n2; // Fixed in GLM 0.9.2.7
    • - glm::mat4x3 m3; -
    • - glm::mat4x4 n3; -
    • - ... -
    • - glm::mat4x3 P3 = m3 * n3; // Fixed in GLM 0.9.2.7
    • - ... -
    • - } -

    - This support is actually pretty useful as soon as we are interested in optimizing the matrix storage. -

    - It also fixes vector contructors which can take multiple parameters that may be swizzle operands. -

    Download: GLM 0.9.2.7 (zip)
    Download: GLM 0.9.2.7 (7z)
    Link: Submit a bug report

    01/10/2011 - GLM 0.9.2.6 released

    - Half based vector types have been fixed on GCC 4.4 and below, missing l-value swizzle operations added and a couple of other bugs squeezed down. -

    - Finally, all the Visual C++ /W4 warnings should have been removed. However, for this to happen, it is required to build with the Visual C++ language extension disabled (/Za). -

    Download: GLM 0.9.2.6 (zip)
    Download: GLM 0.9.2.6 (7z)
    Link: Submit a bug report

    20/09/2011 - GLM 0.9.2.5 released

    - This update fixes some major core issues including the implementation of round, floatBitToXint, pack and unpack functions. -

    Download: GLM 0.9.2.5 (zip)
    Download: GLM 0.9.2.5 (7z)
    Link: Submit a bug report

    03/09/2011 - GLM 0.9.2.4 released

    - Fixed bugs and warnings reported by GLM users. Thanks! -

    Download: GLM 0.9.2.4 (zip)
    Download: GLM 0.9.2.4 (7z)
    Link: Submit a bug report

    08/06/2011 - GLM 0.9.2.3 released

    - This version only fixes a couple of major bugs introduced in GLM 0.9.2.2. -

    Download: GLM 0.9.2.3 (zip)
    Download: GLM 0.9.2.3 (7z)
    Link: Submit a bug report

    02/06/2011 - GLM 0.9.2.2 released

    - The main improvement of this version comes from the extended number of matrix constructors so that a programmer can used different scalar types for each parameter. -

    • #include <glm/glm.hpp>
    • // Create an identity matrix
    • - glm::mat3 m( -
    • - 1, 0.0, 0, -
    • - 0.0, 1.0, 0.0f, -
    • - 0, 0.0, 1.0f); -

    - The quaternion implementation has been updated as well, fixing the various slerp implementation flavours (mix, shortMix and fastMix) and providing more completeness: Added interaction with GLM_GTX_epsilon and missing lowp_quat, mediump_quat and highp_quat but also none square matrix equivalents. -

    - Finally, some efforts have been put to remove warnings across all supported compilers. -

    Download: GLM 0.9.2.2 (zip)
    Download: GLM 0.9.2.2 (7z)
    Link: Submit a bug report

    24/05/2011 - GLM 0.9.2.1 released

    - GLM 0.9.2.1 significantly improves compiler detection which allows CUDA to be automatically recognized when GLM is used inside a CUDA kernel. - By conscequence, GLM_FORCE_CUDA is no longer required to be declared. -

    - It fixed a couple of bugs, including Visual C++ supprot when Visual C++ extensions are disabled and fixed implementations of GLM_GTX_vector_angle and GLM_GTX_rotate_vector extensions. -

    Download: GLM 0.9.2.1 (zip)
    Download: GLM 0.9.2.1 (7z)
    Link: Submit a bug report

    09/05/2011 - GLM 0.9.2.0 released

    - GLM 0.9.2.0 provides many exciting features which first of all is the CUDA copiler support so that GLM can be used within a CUDA kernel. This is possible only by defining GLM_FORCE_CUDA before including glm/glm.hpp in the CUDA Kernel source code. -

    - New experimental extensions are also available. GLM_GTX_noise is based on the work by Stefan Gustavson and Ashima Arts on WebGL-noise which adds perlin and simplex noise functions in a pure computational way. - If everything goes well, this extension will be promoted to GLM core as implementation of the GLSL noise functions. -

    - GLM_GTX_ulp provides functions to evaluate the number of ULPs between two floating-point values which gives a way to mesure the accuracy of a function compare to a reference function. - In the future, this extension could be used to update the documentation of function and gives the level of accuracy they provide. -

    - Finally, GLM_GTX_matrix_interpolation is an extension developed by Ghenadii Ursachi to extract axis and angle of a 4 by 4 matrix but also directly interpolate between two matrices. - This extension works only on linear transformed matrices. -

    - Last but not least: with the version 0.9.2, GLM supports CTest to manage GLM test suite which makes tests much easier to maintain. - The number of tests have significantly increase, even if a lot more tests are necessary. -

    - GLM 0.9.2 is not backward compatible with GLM 0.9.1 with only one point: Quaternion SLERP interpolation! - In GLM 0.9.1 the function 'mix' always interpolate using the short rotation path but it's no longer the case. - The function 'shortMix' has to be called for short path interpolation. - 'fastMix' will interpolate two quaternions using a normalized linear quaternion interpolation with non-constant rotation speed. -

    Download: GLM 0.9.2.0 (zip)
    Download: GLM 0.9.2.0 (7z)
    Link: Submit a bug report

    07/05/2011 - GLM 0.9.1.3 released

    - Various bugs fixed with GLM 0.9.1.3. -

    Download: GLM 0.9.1.3 (zip)
    Download: GLM 0.9.1.3 (7z)
    Link: Submit a bug report

    15/04/2011 - GLM 0.9.1.2 released

    - Bug fixes Only for GLM 0.9.1.2. -

    Download: GLM 0.9.1.2 (zip)
    Download: GLM 0.9.1.2 (7z)
    Link: Submit a bug report

    17/03/2011 - GLM 0.9.1.1 released

    - GLM 0.9.1.1 fixes some bugs, warnings on Clang C++ and clean up a bit the code. -

    - If you have uncounter any issue with GLM 0.9.1.0, please download this revision. -

    - Finally, the work has started for GLM 0.9.2 so if you have requests don't forget to submit them!

    Download: GLM 0.9.1.1 (zip)
    Download: GLM 0.9.1.1 (7z)
    Link: Submit a bug report

    03/03/2011 - GLM 0.9.1.0 final released

    - Finally, GLM 0.9.1 branch is reaching the status of stable with - GLM 0.9.1.0. -

    - From GLM 0.9.1 beta, mainly bugs has been fixed. GLM has evolved on many sides since GLM 0.9.0: - Improved documentation (manual and doxygen), better test framework, simplified setup/options/configration of GLM and new experimental SIMD API. -

    - GLM 0.9.1.0 is not 100% backward compatile with - GLM 0.9.0.8 - but mainly advanced usages should be affected by the differencies. - Have a look at the GLM manual for more information on how to use GLM 0.9.1. -

    Download: GLM 0.9.1.0 (zip)
    Download: GLM 0.9.1.0 (7z)
    Link: GLM 0.9.1 manual
    Link: Submit a bug report

    13/02/2011 - GLM 0.9.0.8 and GLM 0.9.1 beta released

    - The stable version, GLM 0.9.0.8, adds the operator * for quaternion products and deprecated the cross function previously used for the same purpose. - Also, it clarifies that GLM is a header only library when a user try to build it. Once more, there is nothing to build. -

    - The development version, GLM 0.9.1 beta, provides an improved API documentation by - Alfonse Reinheart, - author of a great OpenGL tutorial which uses GLM. - This version also improves the SIMD extensions and it fixes many bugs. -

    Download: GLM 0.9.1.B (zip)
    Download: GLM 0.9.1.B (7z)
    Link: GLM 0.9.1 manual
    Download: GLM 0.9.0.8 (zip)
    Download: GLM 0.9.0.8 (7z)
    Link: GLM 0.9.0 manual
    Link: Submit a bug report

    31/01/2011 - GLM 0.9.1 alpha released

    - This new version of GLM is bringing a lot of improvements and maybe too many considering the development time it has required: - API exposing SIMD implementation but also some new, safe and feature complet swizzling functions and a new setup API. - All this is described in the largely updated GLM manual. -

    - With the new setup system, GLM detects automatically the compiler settings to adapt its implementation to the flag set at build time. - It will automatically enable C++0x features, SSE optimizations and the display configuration informations at build-time. - The automatic setup can be overdrive by the GLM user. -

    - The SIMD API maintly focus on vec4 and mat4 implementations that are embodied by the types simdVec4 and simdMat4. - The implemention cover most of the common functions, the geometry functions and the matrix functions as described in the GLSL specifications. - Because it is hight inefficient to access individual components of a SIMD register, the simdVec4 doesn't allow it. - To reflect this constraint, the simdVec4 has to be converted to vec4 first which would be effectively handle - by the compiler thank to the function simdCast. - Furthermore, GLM provides some specials functions like simdDot4 that returns a simdVec4 instead of a float - with the duplicated dot product value in each components - and ensure that no unnecessary component manipulations are performed (typically __m128 to float - and float to __m128). - This implementation can probably be improve in many ways so don't hesitate to send me some feedbacks. -

    - GLM 0.9.1 is not 100% backward compatible with GLM 0.9.0 but mostly advanced usages should be concerned by this compatibility issues. -

    Download: GLM 0.9.1.A (zip, 2.7 MB)
    Download: GLM 0.9.1.A (7z, 1.7 MB)
    Link:
    Link:


    21/12/2010 - GLM 0.9.0.6 released

    - GLM 0.9.0.6 is a new update of GLM built over GLM's user bug reports. - It mainly fixes issues regarding non-squared matrices but also provides multiple extensions corrections as well. -

    - I expect to release GLM 0.9.1.0 in Junuary but I might continue to update GLM 0.9.0.X as there are minor incompatibilities. -

    Download: GLM 0.9.0.6 (zip, 2.2 MB)
    Download: GLM 0.9.0.6 (7z, 1.6 MB)
    Link: Submit a bug report

    01/11/2010 - GLM 0.9.0.5 released

    - GLM 0.9.0.5 fixes the usual set of bugs, some allowing a better Clang support. -

    Download: GLM 0.9.0.5 (zip, 2.2 MB)
    Download: GLM 0.9.0.5 (7z, 1.6 MB)
    Link: Submit a bug report

    04/10/2010 - GLM 0.9.0.4 released

    - GLM 0.9.0.4 revision mainly fixes bugs. - It also contains a contribution by Arnaud Masserann, a autoexp.dat file to make GLM looks nicer in Visual Studio debugger. - To take advantage of this file, edit ${VISUALSTUDIO_DIRECTORY}/common7/packages/debugger/autoexp.dat file and add the content of the file util/autoexp.txt - included in GLM 0.9.0.4. -

    Download: GLM 0.9.0.4 (zip, 1.5 MB)
    Download: GLM 0.9.0.4 (7z, 1.2 MB)
    Link: Submit a bug report

    26/08/2010 - GLM 0.9.0.3 released

    - GLM 0.9.0.3 fixes major issues on non-squared matrices. -

    Download: GLM 0.9.0.3 (zip, 1.2 MB)
    Download: GLM 0.9.0.3 (7z, 684 KB)
    Link: Submit a bug report

    08/07/2010 - GLM 0.9.0.2 released

    - Second update of GLM 0.9.0 with more bug fixes. - It also contains a new extension called GLM_GTX_int_10_10_10_2 to use GLM with OpenGL and - GL_ARB_vertex_type_2_10_10_10_rev. -

    Download: GLM 0.9.0.2 (zip, 809 KB)
    Download: GLM 0.9.0.2 (7z, 651 KB)
    Link: Submit a bug report

    21/06/2010 - GLM 0.9.0.1 released

    - This revision only fixes few extensions bugs. -

    Download: GLM 0.9.0.1 (zip, 714 KB)
    Download: GLM 0.9.0.1 (7z, 556 KB)
    Link: Submit a bug report

    25/05/2010 - GLM 0.9.0.0 released

    - GLM 0.9.0.0 is finally available! It brings various API changes from GLM 0.8.4.X branch which makes it not backward compatible. - GLM is now compatible with Objective C++ to be used for MacOS X and iPhone projects. -

    - To continue making GLM a better library, 2 mailing lists have been created for users and developers. -

    Download: GLM 0.9.0.0 (zip, 1.0 MB)
    Download: GLM 0.9.0.0 (7z, 514 KB)
    Mailing list: Register to GLM mailing list for users
    Mailing list: Register to GLM mailing list for developers
    Link: Submit a bug report

    30/04/2010 - GLM 0.9 Beta 2 released

    - GLM 0.9 Beta 2 is available and should be the last development release of GLM 0.9. -

    - The code has been moved from a SVN to Git repository which branching efficiency allowed to remove all the experimental code from this release. -

    - Various bug fixes and manual updates have been done too. -

    Download: GLM 0.9.B.2 (zip, 1.07 MB)
    Download: GLM 0.9.B.2 (7z, 555 KB)

    03/04/2010 - GLM 0.9 Beta 1 released

    - A new development version of GLM 0.9 is available. -

    - This version is based on GLSL 4.0 and supports the new common and integer functions. - Also a long and frequently asked feature has been implemented: inplicit conversions. - However, the rules defining implicit conversions by GLSL 4.0 are quite weaked and can't really be apply in C++. -

    - Reaching the beta status, this new features close the feature list of GLM 0.9. - Further development releases may happen before the final release. -

    Download: GLM 0.9.B.1 (zip, 964 KB)
    Download: GLM 0.9.B.1 (7z, 414 KB)

    20/02/2010 - GLM 0.9 Alpha 2 released

    - This update fixes some problem of Alpha 1 but also brings some improvements in case of errors when using GLM to provide more relevant messages. -

    Download: GLM 0.9.A.2 (zip, 1.3 MB)
    Download: GLM 0.9.A.2 (7z, 726 KB)

    09/02/2010 - GLM 0.9 Alpha 1 released

    - First step until a major release for GLM with this first alpha of GLM 0.9. -

    - This version brings a large internal redesign to improve the library reliability and optimized some parts. - It removed the deprecated features and API which implies that GLM 0.9 isn't backward compatible. -

    - For most users the build issues when upgrading to GLM 0.9 should be reduced especially if they follow the deprecation policy. -

    - This release is still UNSTABLE and not recommanded for commertial products. -

    Download: GLM 0.9.A.1 (zip, 950 KB)
    Download: GLM 0.9.A.1 (7z, 391 KB)
    Link: Full changelog

    25/01/2010 - GLM 0.8.4.4 released

    - This update just removes some warnings -

    - By the way, if you have questions about GLM, a good place for those is the OpenGL.org Toolkits forum. -

    Download: GLM 0.8.4.4 (zip, 1.1 MB)
    Download: GLM 0.8.4.4 (7z, 479 KB)
    Link: Full changelog

    16/11/2009 - GLM 0.8.4.3 released

    - This version fixed half scalars and half vectors arithmetics. - This is a really slow practice that should be avoid. - Half floating point value should be use only to store GPU data. - GPUs have native support for half values, not x86 CPUs. -

    Download: GLM 0.8.4.3 (zip, 1.1 MB)
    Download: GLM 0.8.4.3 (7z, 463 KB)
    Link: Full changelog

    19/10/2009 - GLM 0.8.4.2 released

    - This version is a really minor updates, fixing single issue with half float types. -

    Download: GLM 0.8.4.2 (zip, 1.1 MB)
    Download: GLM 0.8.4.2 (7z, 443 KB)
    Link: Full changelog

    05/10/2009 - GLM 0.8.4.1 released

    - This version fixes few bugs and provides an major update of the manual thanks to Damian Trebilco. -

    Download: GLM 0.8.4.1 (zip, 1.1 MB)
    Download: GLM 0.8.4.1 (7z, 443 KB)
    Link: Full changelog

    16/09/2009 - GLM 0.8.4.0 released

    - This new version mainly adds support for Visual Studio 2010 and GCC 4.4. It also provides various code optimization, bug fixes and an extension. -

    Download: GLM 0.8.4.0 (zip, 1.1 MB)
    Download: GLM 0.8.4.0 (7z, 439 KB)
    Link: Full changelog

    11/08/2009 - GLM 0.8.3.5 released

    - Fixed extension bugs introduced by core update. -

    Download: GLM 0.8.3.5 (zip, 971 KB)
    Download: GLM 0.8.3.5 (7z, 405 KB)
    Link: Full changelog

    10/08/2009 - GLM 0.8.3.4 released

    - Fixed varius bugs. Move determinant fonction to core following GLSL 1.5 specification. -

    Download: GLM 0.8.3.4 (zip, 971 KB)
    Download: GLM 0.8.3.4 (7z, 405 KB)
    Link: Full changelog

    25/06/2009 - GLM 0.8.3.3 released

    - Fixed varius bugs. -

    Download: GLM 0.8.3.3 (zip, 971 KB)
    Download: GLM 0.8.3.3 (7z, 405 KB)
    Link: Full changelog

    04/06/2009 - GLM 0.8.3.2 released

    - Add GLM_GTC_quaternion and GLM_GTC_type_precision extensions both subset of GLM_GTX_quaternion and GLM_GTX_number_precision -

    Download: GLM 0.8.3.2 (zip, 971 KB)
    Download: GLM 0.8.3.2 (7z, 405 KB)
    Link: Full changelog

    21/05/2009 - GLM 0.8.3.1 released

    - The old way to use extensions have been fixed and GLM_GTX_bit extension gets updated with more functions to manipulate bit fields. -

    Download: GLM 0.8.3.1 (zip, 954 KB)
    Download: GLM 0.8.3.1 (7z, 402 KB)
    Link: Full changelog

    06/05/2009 - GLM 0.8.3.0 released

    - This version brings to main changed: Stable extensions and a new extension system. -

    - The first stable GLM extensions are: GLM_GTC_double_float and GLM_GTC_half_float for higher and lower vectors and matrices floating point precision. GLM_GTC_matrix_operation provides determinant and inverse matrix calculation. GLM_GTC_matrix_transform allows to build scale, rotate and translate matrices and GLM_GTC_matrix_projection provides varius functions to build projection matrices. Few stable extensions yet but the number is going to grow with the next release! -

    - Both GLM 0.8.2.x extensions use method are deprecated (but still working) and replace by a new one. If you wnat to use GLM_GTC_half_float just include "glm/gtc/half_float.hpp" and it is going to be included in GLM namespace. -

    - Finally, quite some file have been renamed, using "hpp" instead of ".h". Old file have been deprecated but are still available so that GLM 0.8.3.0 is fully compatible with GLM 0.8.2.x. -

    Download: GLM 0.8.3.0 (zip, 896 KB)
    Download: GLM 0.8.3.0 (7z, 359 KB)
    Link: Code samples page
    Link: Manual
    Link: Full changelog

    01/04/2009 - GLM 0.8.2.3 released


    13/02/2009 - GLM 0.8.2.1 released

    - A new release is available and inogurate a patch number. The goal of this patch number is to release faster fixes from bug reports. -

    Download: GLM 0.8.2.1 (zip, 963 KB)
    Download: GLM 0.8.2.1 (7z, 381 KB)
    Link: Manual
    Link: Full changelog

    21/01/2009 - GLM 0.8.2 released

    - This release only fixes bugs. Left sided swizzle operators, quaternion operators, vectors access operators for the main onces. -

    Download: GLM 0.8.2 (zip, 963 KB)
    Download: GLM 0.8.2 (7z, 381 KB)
    Link: Manual
    Link: Full changelog

    19/11/2008 - GLM current developments

    - Some artifacts have been added to the tracker to give a picture of what you could expect for the next releases. -

    - If you need something else you can add some artifacts to the tracker. Any comment on added entries is welcome. -

    - Furthermore, no more release of GLM 0.7.x will be done. Please upgrade to GLM 0.8.1. -

    - Finally, a pack of programmable oriented OpenGL samples using GLM is under development and planed to be release in December. -

    Link: Tracker

    30/10/2008 - GLM 0.8.1 released

    - GLM 0.8.1 is released. This new version mainly fixes 64 bit integers with GCC and various bugs. -

    Download: GLM 0.8.1 (zip, 938 KB)
    Download: GLM 0.8.1 (7z, 372 KB)
    Link: GLM 0.8.1 Manual
    Link: Full changelog

    23/10/2008 - GLM 0.8.0 final released

    - GLM 0.8.0 is released. This new version is now based on GLSL 1.30 specification which provided new functions and precision qualifiers. -

    - Beyond this, lot of changes have been done to make GLM easier to use, easier to develop, more reliable, more conform to C++ ISO98 standard and GLSL specifications. -

    - It involves that GLM 0.8.x is not backward compatible with GLM 0.7.x... However, an application port from GLM 0.7.x to GLM 0.8.x isn't a huge work and actually for some, it won’t be work at all. -

    - On GLM core side, based on GLSL features, vector types can't be automatically cast to pointer anymore for code safety purposes. Vector constructors require a single scalar parameter of the exact number of components. -

    - On GLM extension side, the mechanism to use them has changed. The old [__]***GTX way doesn't exist anymore. Have a look on the manual for more information. -

    - Have a look on the manual and the changelog for more information. Don't forget to send your feedback and enjoy! -

    Download: GLM 0.8.0 (zip, 936 KB)
    Download: GLM 0.8.0 (7z, 370 KB)
    Link: GLM 0.8.0 Manual
    Link: Full changelog
    Link: Post a comment

    22/10/2008 - A Humus demo to feature GLM 0.8.0

    - Ambient aperture lighting Humus demo have been updated to use GLM as math library. -

    Download: Updated demo + all sources (zip, 2.38 MB)
    Download: Original demo (zip, 1.40 MB)
    Link: Post a comment

    18/10/2008 - Webside updated

    - As you can see the website get a little update to prepare GLM 0.8.0 final release. -

    - GLM 0.8.0 final should be release during the week. -


    10/10/2008 - GLM 0.8.0 beta 3 released

    - This release fixes some bugs and add few features though extensions. The development is now based on CMake to make easier cross platform tests and project management. -

    Download: GLM 0.8.0 Beta 3 (zip, 819 KB)
    Download: GLM 0.8.0 Beta 3 (7z, 345 KB)
    Link: Full changelog
    Link: Post a comment

    04/10/2008 - GLM 0.8.0 beta 2 released

    - This release mainly improves half float vectors support. By default the low precission vectors are based on float numbers not on half numbers -

    - It also provides new setup options. GLM_USE_ONLY_XYZW to disable multiple names to access to a single vector component. GLM_USE_ANONYMOUS_UNION to allow multiple component names on half vectors with Visual C++. -

    - Various bugs and updates of extensions have been done too. Final release is coming... -

    Download: GLM 0.8.0 Beta 2 (zip, 798 KB)
    Download: GLM 0.8.0 Beta 2 (7z, 327 KB)
    Link: Full changelog
    Link: Post a comment

    26/09/2008 - GLM 0.8.0 beta 1 released

    - GLM have been updated to support GLSL 1.30. API documentation had significant improvements to make easier finding of GLSL functions and types. -

    - GLM 0.8.x is NOT backward compatible with GLM 0.7.x. Upgrade to GLM 0.8.x could involve build errors for the following cases: A lot of improvements have been made to increase the conformance with GLSL specification. Lot of GLSL 1.30 features were already exposed in extensions that have been deleted. The extension syntaxe based on ARB convension is no long used. -

    - Due to the number of changes GLM 0.8.0 is release as beta first. The final release is schedule for october. -

    Download: GLM 0.8.0 Beta 1 (zip, 786 KB)
    Download: GLM 0.8.0 Beta 1 (7z, 321 KB)
    Link: Full changelog
    Link: Post a comment

    08/08/2008 - GLM 0.7.6 released

    - GLM 0.7.6 provides a better C++ conformance so that you can build GLM with –pedantic G++ parameter or without Visual Studio extensions. To make GLM more reliable, BOOST_STATIC_ASSERT are used according developer wishes. -

    Download: GLM 0.7.6 (zip, 907 KB)
    Download: GLM 0.7.6 (7z, 387 KB)
    Link: Full changelog
    Link: Manual

    05/07/2008 - GLM 0.7.5 released

    - GLM 0.7.5 is available and introduces a new build messsage system to get information of GLM build configuration with Visual Studio. This mechanism is documented in section 6 of GLM manual. Also, GLM can be built with GCC pedantic options. -

    Download: GLM 0.7.5 (zip, 852 KB)
    Download: GLM 0.7.5 (7z, 366 KB)
    Link: Full changelog
    Link: Manual

    01/06/2008 - GLM 0.7.4 released

    - GLM 0.7.4 introduces a new system to manage external dependencies. -

    - It allows developing extension using external dependencies like GLEW, Boost, etc. without making required those dependencies for GLM programmer that doesn't need those external dependent extensions. -

    - The mechanism is described into the updated manual. -

    Download: GLM 0.7.4 (zip, 859 KB)
    Download: GLM 0.7.4 (7z, 372 KB)
    Link: Full changelog
    Link: Manual

    24/05/2008 - GLM 0.7.3 released

    - GLM 0.7.3 is released. This version fixes few bugs and add few extensions -

    Download: GLM 0.7.3 (zip, 1.8 MB)
    Download: GLM 0.7.3 (7z, 635 KB)
    Link: Full changelog

    27/04/2008 - GLM 0.7.2 released

    - GLM 0.7.2 is released. The documentation have been completed again and several issues handle with precompiler options. -

    - #define GLM_SWIZZLE GLM_SWIZZLE_FUNC allows to use swizzle operators with internal functions. For example, glm::vec3(1, 2, 3).zyx is replaced by glm::vec3(1, 2, 3)._zyx() with this option. -

    - #define GLM_FORCE_NO_HALF allows to include all extensions (#include "glm/glmext.h") without any support of half-precision floating-point numbers. -

    - #define GLM_AUTO_CAST GLM_DISABLE allows to disable automatic cast (eg: glLoadMatrixf(glm::mat4(1.0))) which could involve unfortunate issues in some cases. -

    - More information on these topic are available in GLM manual section 5 "Known issues". -

    Download: GLM 0.7.2 (zip, 1.8 MB)
    Download: GLM 0.7.2 (7z, 635 KB)
    Download: Full changelog

    24/03/2008 - GLM 0.7.1 released

    - GLM 0.7.1 is available under MIT license. It fixes bugs with GCC. -

    Download: GLM 0.7.1 (zip, 1.8 MB)
    Download: GLM 0.7.1 (7z, 635 KB)
    Download: Full changelog

    22/03/2008 - GLM 0.7.0 released

    - GLM 0.7.0 is available under MIT license. LGPL lisence have been discard due to an issue of use for console development. This release contains a lot better documentation based on Doxygen. Lot of bugs have been fixed and the documentation completed. Thanks to all people that has contributed thought bug reports and ideas to make this version a lot better! -

    Download: GLM 0.7.0 (zip, 1.8 MB)
    Download: GLM 0.7.0 (7z, 635 KB)
    Download: Full changelog

    10/12/2007 - GLM 0.6.4 released

    - GLM 0.6.4 is available and fixes some swizzle operator issues. -

    Download: GLM 0.6.4 (zip, 1.7 MB)
    Download: GLM 0.6.4 (7z, 612 KB)
    Download: Full changelog

    05/11/2007 - GLM 0.6.3 released

    - GLM 0.6.3 fixes accesses of matrices and a 3DSMax SDK conflict. -

    Download: GLM 0.6.3 (zip, 1.8 MB)
    Download: GLM 0.6.3 (7z, 633 KB)
    Download: Full changelog

    08/10/2007 - GLM 0.6.2 released

    - GLM 0.6.2 fixes an error on an extension. -

    Download: GLM 0.6.2 (zip, 1.8 MB)
    Download: GLM 0.6.2 (7z, 632 KB)
    Download: Full changelog

    07/10/2007 - GLM 0.6.1 released

    - GLM 0.6.1 is a minor update that fix an issue on extension namespace and add two more extensions. -

    Download: GLM 0.6.1 (zip, 1.8 MB)
    Download: GLM 0.6.1 (7z, 632 KB)
    Download: Full changelog

    16/09/2007 - GLM 0.6.0 released

    - GLM 0.6.0 is available. For this release, work focus on extensions. A new mecanisum allows to integrate GLM extensions as it is actually done for GLSL extension by vendors. Lot of new extensions have been added. -

    Download: GLM 0.6.0 (zip, 1.8 MB)
    Download: GLM 0.6.0 (7z, 666 KB)
    Download: Raytracer v1.0 (exe)
    Download: Raytracer v1.0 (zip)
    Download: Full changelog

    19/02/2007 - GLM 0.5.1 released

    - This release fixes some issues with swizzle operators. -

    Download: GLM 0.5.1 (zip, 2.3 MB)
    Download: GLM 0.5.1 (7z, 789 KB)

    26/01/2007 - Cattmull Clark subdivision sample

    - A new sample is available. It's an update of Philip Rideout's Catmull Clark subdivision program that uses GLM. Released with pleasant permission of Philip Rideout. -

    Download: CatmullClark sample (zip, 605 KB)

    06/01/2007 - GLM 0.5.0 released

    - This release include GLSL 1.2 new feature in the core implementation. Also, it includes swizzle read and write operators and a custom options system to setup GLM. -

    - It includes some new extensions to extend GLSL features but they remain experimental. The next release should provide the first stable extensions. -

    - The GLM 0.5.0 packages contain some basic samples and some documentation. The ray tracer sample has been updated to GLM 0.5.0. Except for specific cases, especially with extensions, GLM 0.5 is backward compatible. -

    - Now, GLM development is taking advantages of SourceForge.net services: a bug tracker system and the development source code is publicly available on SF.net SVN server. -

    Download: GLM 0.5.0 (zip, 2.4 MB)
    Download: GLM 0.5.0 (7z, 843 KB)
    Download: Raytracer b3.0 (exe, 751 KB)
    Download: Raytracer b3.0 (zip, 1.1 MB)

    22/05/2006 - GLM 0.4.1 released

    - A GLM update is available. It simply includes some examples for a sweet start with GLM. -

    - The examples show how to use GLM with OpenGL intermediate mode and OpenGL vertex arrays. Also, they show how to use GLM extensions to replace GLU and OpenGL function witch could slightly increase performances by decreasing the number of OpenGL states changes. -

    Download: GLM 0.4.1 (zip, 1.6 MB)
    Download: GLM 0.4.1 (7z, 521 KB)

    17/05/2006 - GLM 0.4.0 released

    Groove

    - This release introduces first GLSL 1.2 features as planed. Also, various new extensions have been added and updated. Finally, it's not anymore required to include windows.h before glm.h when windows.h is required. -

    - The number of features of GLM, including extensions, start to really increase the compilation time. That's why it's recommended to use precompiled headers. -

    Download: GLM 0.4.0

    23/04/2006 - Roadmap for the years

    - Version 0.4 will complete matrices and vectors operators and will add GLSL 1.2 features. First, conversions simplifications will be integrated. Then, 4 per 3 matrices and outer product will be available from extensions. The transpose function is already available from extension. -

    - Version 0.5 will integrate GLSL 1.2 features to GLM core. -

    - Version 0.6 will add swizzle operators in reading and writing. (eg: vec3 v1(1.0, 2.0, 3.0); vec3 v2 = v1.xxx; v1.zyx = v;). -


    22/04/2006 - GLM 0.3.2 released

    - This release corrects two main bugs. First, a bug of the imat4 and mat4 division operators and other correct the vectors components access from texture coordinate way. -

    Download: GLM 0.3.2

    28/03/2006 - GLM 0.3.1 released

    - This update adds GCC 4.0 support for MacOS X and Linux and GCC 4.1 under Linux. Also, its provides some optimisations. -

    - Further release will prodive GLSL 1.2 compliances. -

    Download: GLM 0.3.1

    19/02/2006 - GLM 0.3 released

    - A new release of GLM is now available. It improves GLSL data type conversion and construction compliance. Also, It's adds extensions like some to manage double-precision and half-precision float numbers. Finally a Doxygen documentation has been added. -

    - This new release have been tested under Visual C++ 7.1, Visual C++ 8.0, GCC 3.2.3 et GCC 3.4.2. -

    Download: GLM 0.3
    Download: Raytrace
    Documentation: Online documentation

    06/05/2005 - GLM 0.2 released

    - A new release of GLM is now available. A few bugs have been fixed, the portability of GLSL into C++ has been improved, and new experimental extensions have been implemented, enhancing GLSL features. -

    - Project now supports quaternions, adds new features to handle colors, vectors and matrices. For example, GLM allows base colors changing, vector projected operations, and 2D/3D transforms. -

    - To demo the features of this new version, a sample program is included. It is a simple Ray Tracer supporting reflected and refracted rays, three lights types (point, directionnal and spot), two objects types (sphere, plan), using all of the GLM possibilities. -


    04/05/2005 - English pages

    - The english section of this site is now available. -


    21/02/2005 - GLM 0.1 is available

    - This is the first public availability of GLM. This library supports part of GLSL specifications : All vectors and matrices types, and all the operators and associated functions. -

    - For now, there isn't detailed documentation, but you can freely have a look on GLSL specifications. Consider any incoherence with GLM as an error. Keep in mind the library is included in the namespace "glm". -

    - This project is multi platform and was successfully tested under Visual C++ 7.1, MinGW 3.4 and GCC 3.4. -

    Download: GLM 0.1 User Release
    Download: GLM 0.1 Contributor Release
    Documentation: GLSL 1.10.59 specifications

    Copyright © 2005 - 2012G-Truc Creation
    \ No newline at end of file diff --git a/doc/src/about.xsl b/doc/src/about.xsl deleted file mode 100644 index 102dac95..00000000 --- a/doc/src/about.xsl +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - OpenGL Mathematics: About - - - - - - - - - - - - - -
    -
    - OpenGL Mathematics -
    - -
    - - - -
    _________________
    -
    - -
    - - -
    - - -

    - - - diff --git a/doc/src/code.xsl b/doc/src/code.xsl deleted file mode 100644 index 74b16226..00000000 --- a/doc/src/code.xsl +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - OpenGL Mathematics: Code - - - - - - - - - - - - - -
    - -
    OpenGL Mathematics
    - -
    - - -
    - - -
    - - -
    diff --git a/doc/src/data.xml b/doc/src/data.xml deleted file mode 100644 index cf91d1c7..00000000 --- a/doc/src/data.xml +++ /dev/null @@ -1,2025 +0,0 @@ - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - -
    -
    - -
    -
    - -
    -
    - - Euler angles operation with specified rotation order - Cast to other toolkit (D3D, some engines) - Arrays - SIMD optimisations - Standard output stream - In place operations - - - RGBE. - row matrices. - fixed numbers - row and column major matrices - - - - - - GLM 0.9.3.4 fixes quite few issues with GCC. - - - - Fixed incompatibility generated with GCC - Fixed C++11 compiler option for GCC - Removed MS language extension option for GCC - Fixed bitfieldExtract for vector types - Fixed warnings - Fixed SSE includes - - - - If you encounter bugs, don't hesitate to report them. - - - GLM 0.9.3.4 (zip) - GLM 0.9.3.4 (7z) - Submit a bug report - GLM 0.9.3 Manual - GLM 0.9.3 API - - - - - Nearly two months since the previous release of a GLM revision gave enough time to fix few things reported. - Most importantly, this revision should provide a better compatibility with Intel C++ compiler. - - - - Fixed isinf and isnan - Improved compatibility with Intel compiler - Added CMake test build options: SIMD, C++11, fast math and MS land ext - Fixed SIMD mat4 test on GCC - Fixed perspectiveFov implementation - Fixed matrixCompMult for none-square matrices - Fixed namespace issue on stream operators - Fixed various warnings - Added VC11 support - - - - If you encounter bugs, don't hesitate to report them. - - - GLM 0.9.3.3 (zip) - GLM 0.9.3.3 (7z) - Submit a bug report - GLM 0.9.3 Manual - GLM 0.9.3 API - - - - - Just a regular revision fixing the only three minor issues reported since last release. - - - GLM 0.9.3.2 (zip) - GLM 0.9.3.2 (7z) - Submit a bug report - GLM 0.9.3 Manual - GLM 0.9.3 API - - - - - After years of using SourceForge.net, GLM is moving to GitHub, - as least for its repository. GitHub provides easy ways to clone the repository and submit pull requests which seems a definity advantage for the community contribution. - It also allows to download snapshots of every branches. - - - Browse GLM repository on GitHub - GLM master branch snapshot - GLM 0.9.3 branch snapshot - GLM 0.9.4 branch snapshot - - - - - GLM 0.9.3.1 fixes some platforms detection issues and warnings. - - - GLM 0.9.3.1 (zip) - GLM 0.9.3.1 (7z) - Submit a bug report - GLM 0.9.3 Manual - GLM 0.9.3 API - - - - - GLM 0.9.3.0 is finally released. Since the branch 0.9.2, the test bench and the Doxygen API documentation has been expended significantly leading to an even more reliable implementation and hopefully an even smoother development experience. - - - For the feature set, the GLSL noise functions are added, based on the implementation of webgl-noise. - Some users might prefer the promoted GLM_GTC_noise extension also based on webgl-noise but with a different interface and three noise methods: Perlin noise, periodic noise and simplex noise. - - - - Additionally, the random number generation functions (GLM_GTC_random) which provides various interesting distributions as illustrated below. - Also reaching GLM tool box, the new experimental extension GLM_GTX_constants provides a set of constants. - - - - - Finally, swizzle operators are a challenging task to implement but thanks to the effort of many contributors, GLM 0.9.3.0 provides something interesting, but admittably - not perfect. The new implementation is a great improvement considering the incompatibilities with some external libraries in GLM 0.9.2.7. GLM 0.9.3 provides two implemetanations, one for C++ 98 - compilers and one for C++ 11 compilers providing an implemetnation closer to what GLSL does. Indeed the C++ 98 implementation is compatible with C++ 11 compilers. - - - - - // To declare before including glm.hpp, to use the swizzle operators - - - #define GLM_SWIZZLE - - - #include - <glm/glm.hpp> - - - - - - void example_cpp98() - - - { - - - glm::vec4 a = glm::vec4(2, 0, 0, 0); - - - glm::vec4 b = glm::vec4(0, 2, 0, 0); - - - glm::vec3 c = vec4((a.zyx() + b.xyz()).xyz() * 0.5f, 1.0f); - - - glm::vec2 d = glm::normalize(glm::vec2(c.yz())); - - - a.xyzw() = d.xyxy(); - - - } - - - - - - // To declare before including glm.hpp, to use the swizzle operators - - - #define GLM_SWIZZLE - - - #include - <glm/glm.hpp> - - - - - - void example_cpp11() - - - { - - - glm::vec4 a = glm::vec4(2, 0, 0, 0); - - - glm::vec4 b = glm::vec4(0, 2, 0, 0); - - // To use a swizzle operator with an operator, it needs to be cast into a vector either explicitly or with the operator () - - glm::vec4 c = glm::vec4((a.zyx() + b.xyz()).xyz * 0.5f, 1.0f); - - - // Before being pasted to a function, a swizzle operator needs to be cast into - - - // a vector either explicitly or with the operator () - - - glm::vec2 d = glm::normalize(glm::vec2(c.yz)); - - - // glm::vec2 d = glm::normalize(c.yz()); // Equivalent code - - - a.xyzw = d.xyxy; - - - } - - - - GLM 0.9.3.0 (zip) - GLM 0.9.3.0 (7z) - Submit a bug report - GLM 0.9.3 Manual - GLM 0.9.3 API - - - - - GLM 0.9.3 beta fixes various bugs and add support for Chrome Native Client - - - GLM 0.9.3.B (zip) - GLM 0.9.3.B (7z) - Submit a bug report - GLM 0.9.3 Manual - GLM 0.9.3 API - - - - - GLM 0.9.3 is making progress which is illustrated by the release of this first alpha. - - - - Improved doxygen documentation - - - Added new swizzle operators for C++11 compilers - - - Added new swizzle operators declared as functions - - - Added GLSL 4.20 length for vector and matrix types - - - Added GLSL core noise functions - - - 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 - - - Fixed half based type contructors - - - - - - - GLM 0.9.3.A (zip) - GLM 0.9.3.A (7z) - Submit a bug report - GLM 0.9.3 Manual - GLM 0.9.3 API - - - - - This revision fixes two problems: First, it adds all matrix products for all possible combinations of none-squared matrices. Thanks to
    Grant James who has provide the code for that. - - - - - #include - <glm/glm.hpp> - - - - - - void kueken() - - - { - - - glm::mat3x2 m1; - - - glm::mat2x3 n1; - - - ... - - - glm::mat2x2 P = m1 * n1; // Valid before GLM 0.9.2.7 - - - - - - glm::mat3x2 m2; - - - glm::mat4x3 n2; - - - ... - - - glm::mat4x2 P2 = m2 * n2; // Fixed in GLM 0.9.2.7 - - - - - - glm::mat4x3 m3; - - - glm::mat4x4 n3; - - - ... - - - glm::mat4x3 P3 = m3 * n3; // Fixed in GLM 0.9.2.7 - - - ... - - - } - - - - This support is actually pretty useful as soon as we are interested in optimizing the matrix storage. - - - - It also fixes vector contructors which can take multiple parameters that may be swizzle operands. - - - GLM 0.9.2.7 (zip) - GLM 0.9.2.7 (7z) - Submit a bug report - - - - - Half based vector types have been fixed on GCC 4.4 and below, missing l-value swizzle operations added and a couple of other bugs squeezed down. - - - Finally, all the Visual C++ /W4 warnings should have been removed. However, for this to happen, it is required to build with the Visual C++ language extension disabled (/Za). - - - GLM 0.9.2.6 (zip) - GLM 0.9.2.6 (7z) - Submit a bug report - - - - - This update fixes some major core issues including the implementation of round, floatBitToXint, pack and unpack functions. - - - GLM 0.9.2.5 (zip) - GLM 0.9.2.5 (7z) - Submit a bug report - - - - - Fixed bugs and warnings reported by GLM users. Thanks! - - - GLM 0.9.2.4 (zip) - GLM 0.9.2.4 (7z) - Submit a bug report - - - - - This version only fixes a couple of major bugs introduced in GLM 0.9.2.2. - - - GLM 0.9.2.3 (zip) - GLM 0.9.2.3 (7z) - Submit a bug report - - - - - The main improvement of this version comes from the extended number of matrix constructors so that a programmer can used different scalar types for each parameter. - - - - #include - <glm/glm.hpp> - - - - - - // Create an identity matrix - - - glm::mat3 m( - - - 1, 0.0, 0, - - - 0.0, 1.0, 0.0f, - - - 0, 0.0, 1.0f); - - - - The quaternion implementation has been updated as well, fixing the various slerp implementation flavours (mix, shortMix and fastMix) and providing more completeness: Added interaction with GLM_GTX_epsilon and missing lowp_quat, mediump_quat and highp_quat but also none square matrix equivalents. - - - Finally, some efforts have been put to remove warnings across all supported compilers. - - - GLM 0.9.2.2 (zip) - GLM 0.9.2.2 (7z) - Submit a bug report - - - - - GLM 0.9.2.1 significantly improves compiler detection which allows CUDA to be automatically recognized when GLM is used inside a CUDA kernel. - By conscequence, GLM_FORCE_CUDA is no longer required to be declared. - - - It fixed a couple of bugs, including Visual C++ supprot when Visual C++ extensions are disabled and fixed implementations of GLM_GTX_vector_angle and GLM_GTX_rotate_vector extensions. - - - GLM 0.9.2.1 (zip) - GLM 0.9.2.1 (7z) - Submit a bug report - - - - - GLM 0.9.2.0 provides many exciting features which first of all is the CUDA copiler support so that GLM can be used within a CUDA kernel. This is possible only by defining GLM_FORCE_CUDA before including glm/glm.hpp in the CUDA Kernel source code. - - - New experimental extensions are also available. GLM_GTX_noise is based on the work by Stefan Gustavson and Ashima Arts on WebGL-noise which adds perlin and simplex noise functions in a pure computational way. - If everything goes well, this extension will be promoted to GLM core as implementation of the GLSL noise functions. - - - GLM_GTX_ulp provides functions to evaluate the number of ULPs between two floating-point values which gives a way to mesure the accuracy of a function compare to a reference function. - In the future, this extension could be used to update the documentation of function and gives the level of accuracy they provide. - - - Finally, GLM_GTX_matrix_interpolation is an extension developed by Ghenadii Ursachi to extract axis and angle of a 4 by 4 matrix but also directly interpolate between two matrices. - This extension works only on linear transformed matrices. - - - Last but not least: with the version 0.9.2, GLM supports CTest to manage GLM test suite which makes tests much easier to maintain. - The number of tests have significantly increase, even if a lot more tests are necessary. - - - GLM 0.9.2 is not backward compatible with GLM 0.9.1 with only one point: Quaternion SLERP interpolation! - In GLM 0.9.1 the function 'mix' always interpolate using the short rotation path but it's no longer the case. - The function 'shortMix' has to be called for short path interpolation. - 'fastMix' will interpolate two quaternions using a normalized linear quaternion interpolation with non-constant rotation speed. - - - GLM 0.9.2.0 (zip) - GLM 0.9.2.0 (7z) - Submit a bug report - - - - - Various bugs fixed with GLM 0.9.1.3. - - - GLM 0.9.1.3 (zip) - GLM 0.9.1.3 (7z) - Submit a bug report - - - - - Bug fixes Only for GLM 0.9.1.2. - - - GLM 0.9.1.2 (zip) - GLM 0.9.1.2 (7z) - Submit a bug report - - - - - GLM 0.9.1.1 fixes some bugs, warnings on Clang C++ and clean up a bit the code. - - - If you have uncounter any issue with GLM 0.9.1.0, please download this revision. - - - Finally, the work has started for GLM 0.9.2 so if you have requests don't forget to submit them! - - - GLM 0.9.1.1 (zip) - GLM 0.9.1.1 (7z) - Submit a bug report - - - - - Finally, GLM 0.9.1 branch is reaching the status of stable with - GLM 0.9.1.0. - - - From GLM 0.9.1 beta, mainly bugs has been fixed. GLM has evolved on many sides since GLM 0.9.0: - Improved documentation (manual and doxygen), better test framework, simplified setup/options/configration of GLM and new experimental SIMD API. - - - GLM 0.9.1.0 is not 100% backward compatile with - GLM 0.9.0.8 - but mainly advanced usages should be affected by the differencies. - Have a look at the GLM manual for more information on how to use GLM 0.9.1. - - - GLM 0.9.1.0 (zip) - GLM 0.9.1.0 (7z) - GLM 0.9.1 manual - Submit a bug report - - - - - The stable version, GLM 0.9.0.8, adds the operator * for quaternion products and deprecated the cross function previously used for the same purpose. - Also, it clarifies that GLM is a header only library when a user try to build it. Once more, there is nothing to build. - - - The development version, GLM 0.9.1 beta, provides an improved API documentation by - Alfonse Reinheart, - author of a great OpenGL tutorial which uses GLM. - This version also improves the SIMD extensions and it fixes many bugs. - - - GLM 0.9.1.B (zip) - GLM 0.9.1.B (7z) - GLM 0.9.1 manual - GLM 0.9.0.8 (zip) - GLM 0.9.0.8 (7z) - GLM 0.9.0 manual - Submit a bug report - - - - - This new version of GLM is bringing a lot of improvements and maybe too many considering the development time it has required: - API exposing SIMD implementation but also some new, safe and feature complet swizzling functions and a new setup API. - All this is described in the largely updated GLM manual. - - - With the new setup system, GLM detects automatically the compiler settings to adapt its implementation to the flag set at build time. - It will automatically enable C++0x features, SSE optimizations and the display configuration informations at build-time. - The automatic setup can be overdrive by the GLM user. - - - The SIMD API maintly focus on vec4 and mat4 implementations that are embodied by the types simdVec4 and simdMat4. - The implemention cover most of the common functions, the geometry functions and the matrix functions as described in the GLSL specifications. - Because it is hight inefficient to access individual components of a SIMD register, the simdVec4 doesn't allow it. - To reflect this constraint, the simdVec4 has to be converted to vec4 first which would be effectively handle - by the compiler thank to the function simdCast. - Furthermore, GLM provides some specials functions like simdDot4 that returns a simdVec4 instead of a float - with the duplicated dot product value in each components - and ensure that no unnecessary component manipulations are performed (typically __m128 to float - and float to __m128). - This implementation can probably be improve in many ways so don't hesitate to send me some feedbacks. - - - - GLM 0.9.1 is not 100% backward compatible with GLM 0.9.0 but mostly advanced usages should be concerned by this compatibility issues. - - - - GLM 0.9.1.A (zip, 2.7 MB) - GLM 0.9.1.A (7z, 1.7 MB) - - - - - - - - GLM 0.9.0.7 provides 2 main changes: GLSL 4.10 packing functions but also == and != operators for every types. - - - GLM 0.9.0.7 (zip, 1.4 MB) - GLM 0.9.0.7 (7z, 832 KB) - Submit a bug report - - - - - GLM 0.9.0.6 is a new update of GLM built over GLM's user bug reports. - It mainly fixes issues regarding non-squared matrices but also provides multiple extensions corrections as well. - - - I expect to release GLM 0.9.1.0 in Junuary but I might continue to update GLM 0.9.0.X as there are minor incompatibilities. - - - GLM 0.9.0.6 (zip, 2.2 MB) - GLM 0.9.0.6 (7z, 1.6 MB) - Submit a bug report - - - - - GLM 0.9.0.5 fixes the usual set of bugs, some allowing a better Clang support. - - - GLM 0.9.0.5 (zip, 2.2 MB) - GLM 0.9.0.5 (7z, 1.6 MB) - Submit a bug report - - - - - GLM 0.9.0.4 revision mainly fixes bugs. - It also contains a contribution by Arnaud Masserann, a autoexp.dat file to make GLM looks nicer in Visual Studio debugger. - To take advantage of this file, edit ${VISUALSTUDIO_DIRECTORY}/common7/packages/debugger/autoexp.dat file and add the content of the file util/autoexp.txt - included in GLM 0.9.0.4. - - - GLM 0.9.0.4 (zip, 1.5 MB) - GLM 0.9.0.4 (7z, 1.2 MB) - Submit a bug report - - - - - GLM 0.9.0.3 fixes major issues on non-squared matrices. - - - GLM 0.9.0.3 (zip, 1.2 MB) - GLM 0.9.0.3 (7z, 684 KB) - Submit a bug report - - - - - Second update of GLM 0.9.0 with more bug fixes. - It also contains a new extension called GLM_GTX_int_10_10_10_2 to use GLM with OpenGL and - GL_ARB_vertex_type_2_10_10_10_rev. - - - GLM 0.9.0.2 (zip, 809 KB) - GLM 0.9.0.2 (7z, 651 KB) - Submit a bug report - - - - - This revision only fixes few extensions bugs. - - - GLM 0.9.0.1 (zip, 714 KB) - GLM 0.9.0.1 (7z, 556 KB) - Submit a bug report - - - - - GLM 0.9.0.0 is finally available! It brings various API changes from GLM 0.8.4.X branch which makes it not backward compatible. - GLM is now compatible with Objective C++ to be used for MacOS X and iPhone projects. - - - To continue making GLM a better library, 2 mailing lists have been created for users and developers. - - - GLM 0.9.0.0 (zip, 1.0 MB) - GLM 0.9.0.0 (7z, 514 KB) - Register to GLM mailing list for users - Register to GLM mailing list for developers - Submit a bug report - - - - - GLM 0.9 Beta 2 is available and should be the last development release of GLM 0.9. - - - The code has been moved from a SVN to Git repository which branching efficiency allowed to remove all the experimental code from this release. - - - Various bug fixes and manual updates have been done too. - - GLM 0.9.B.2 (zip, 1.07 MB) - GLM 0.9.B.2 (7z, 555 KB) - - - - - A new development version of GLM 0.9 is available. - - - This version is based on GLSL 4.0 and supports the new common and integer functions. - Also a long and frequently asked feature has been implemented: inplicit conversions. - However, the rules defining implicit conversions by GLSL 4.0 are quite weaked and can't really be apply in C++. - - - Reaching the beta status, this new features close the feature list of GLM 0.9. - Further development releases may happen before the final release. - - GLM 0.9.B.1 (zip, 964 KB) - GLM 0.9.B.1 (7z, 414 KB) - - - - - This update fixes some problem of Alpha 1 but also brings some improvements in case of errors when using GLM to provide more relevant messages. - - GLM 0.9.A.2 (zip, 1.3 MB) - GLM 0.9.A.2 (7z, 726 KB) - - - - - First step until a major release for GLM with this first alpha of GLM 0.9. - - - This version brings a large internal redesign to improve the library reliability and optimized some parts. - It removed the deprecated features and API which implies that GLM 0.9 isn't backward compatible. - - - For most users the build issues when upgrading to GLM 0.9 should be reduced especially if they follow the deprecation policy. - - - This release is still UNSTABLE and not recommanded for commertial products. - - GLM 0.9.A.1 (zip, 950 KB) - GLM 0.9.A.1 (7z, 391 KB) - Full changelog - - - - - This update just removes some warnings - - - By the way, if you have questions about GLM, a good place for those is the OpenGL.org Toolkits forum. - - GLM 0.8.4.4 (zip, 1.1 MB) - GLM 0.8.4.4 (7z, 479 KB) - Full changelog - - - - - This version fixed half scalars and half vectors arithmetics. - This is a really slow practice that should be avoid. - Half floating point value should be use only to store GPU data. - GPUs have native support for half values, not x86 CPUs. - - GLM 0.8.4.3 (zip, 1.1 MB) - GLM 0.8.4.3 (7z, 463 KB) - Full changelog - - - - - This version is a really minor updates, fixing single issue with half float types. - - GLM 0.8.4.2 (zip, 1.1 MB) - GLM 0.8.4.2 (7z, 443 KB) - Full changelog - - - - - This version fixes few bugs and provides an major update of the manual thanks to Damian Trebilco. - - GLM 0.8.4.1 (zip, 1.1 MB) - GLM 0.8.4.1 (7z, 443 KB) - Full changelog - - - - - This new version mainly adds support for Visual Studio 2010 and GCC 4.4. It also provides various code optimization, bug fixes and an extension. - - GLM 0.8.4.0 (zip, 1.1 MB) - GLM 0.8.4.0 (7z, 439 KB) - Full changelog - - - - - Fixed extension bugs introduced by core update. - - GLM 0.8.3.5 (zip, 971 KB) - GLM 0.8.3.5 (7z, 405 KB) - Full changelog - - - - - Fixed varius bugs. Move determinant fonction to core following GLSL 1.5 specification. - - GLM 0.8.3.4 (zip, 971 KB) - GLM 0.8.3.4 (7z, 405 KB) - Full changelog - - - - - Fixed varius bugs. - - GLM 0.8.3.3 (zip, 971 KB) - GLM 0.8.3.3 (7z, 405 KB) - Full changelog - - - - - Add GLM_GTC_quaternion and GLM_GTC_type_precision extensions both subset of GLM_GTX_quaternion and GLM_GTX_number_precision - - GLM 0.8.3.2 (zip, 971 KB) - GLM 0.8.3.2 (7z, 405 KB) - Full changelog - - - - - The old way to use extensions have been fixed and GLM_GTX_bit extension gets updated with more functions to manipulate bit fields. - - GLM 0.8.3.1 (zip, 954 KB) - GLM 0.8.3.1 (7z, 402 KB) - Full changelog - - - - - This version brings to main changed: Stable extensions and a new extension system. - - - The first stable GLM extensions are: GLM_GTC_double_float and GLM_GTC_half_float for higher and lower vectors and matrices floating point precision. GLM_GTC_matrix_operation provides determinant and inverse matrix calculation. GLM_GTC_matrix_transform allows to build scale, rotate and translate matrices and GLM_GTC_matrix_projection provides varius functions to build projection matrices. Few stable extensions yet but the number is going to grow with the next release! - - - Both GLM 0.8.2.x extensions use method are deprecated (but still working) and replace by a new one. If you wnat to use GLM_GTC_half_float just include "glm/gtc/half_float.hpp" and it is going to be included in GLM namespace. - - - Finally, quite some file have been renamed, using "hpp" instead of ".h". Old file have been deprecated but are still available so that GLM 0.8.3.0 is fully compatible with GLM 0.8.2.x. - - GLM 0.8.3.0 (zip, 896 KB) - GLM 0.8.3.0 (7z, 359 KB) - Code samples page - Manual - Full changelog - - - - GLM 0.8.2.3 (zip, 963 KB) - GLM 0.8.2.3 (7z, 381 KB) - Manual - Full changelog - - - - - A new release is available and inogurate a patch number. The goal of this patch number is to release faster fixes from bug reports. - - GLM 0.8.2.1 (zip, 963 KB) - GLM 0.8.2.1 (7z, 381 KB) - Manual - Full changelog - - - - - This release only fixes bugs. Left sided swizzle operators, quaternion operators, vectors access operators for the main onces. - - GLM 0.8.2 (zip, 963 KB) - GLM 0.8.2 (7z, 381 KB) - Manual - Full changelog - - - - - Some artifacts have been added to the tracker to give a picture of what you could expect for the next releases. - - - If you need something else you can add some artifacts to the tracker. Any comment on added entries is welcome. - - - Furthermore, no more release of GLM 0.7.x will be done. Please upgrade to GLM 0.8.1. - - - Finally, a pack of programmable oriented OpenGL samples using GLM is under development and planed to be release in December. - - Tracker - - - - - GLM 0.8.1 is released. This new version mainly fixes 64 bit integers with GCC and various bugs. - - GLM 0.8.1 (zip, 938 KB) - GLM 0.8.1 (7z, 372 KB) - GLM 0.8.1 Manual - Full changelog - - - - - GLM 0.8.0 is released. This new version is now based on GLSL 1.30 specification which provided new functions and precision qualifiers. - - - Beyond this, lot of changes have been done to make GLM easier to use, easier to develop, more reliable, more conform to C++ ISO98 standard and GLSL specifications. - - - It involves that GLM 0.8.x is not backward compatible with GLM 0.7.x... However, an application port from GLM 0.7.x to GLM 0.8.x isn't a huge work and actually for some, it won’t be work at all. - - - On GLM core side, based on GLSL features, vector types can't be automatically cast to pointer anymore for code safety purposes. Vector constructors require a single scalar parameter of the exact number of components. - - - On GLM extension side, the mechanism to use them has changed. The old [__]***GTX way doesn't exist anymore. Have a look on the manual for more information. - - - Have a look on the manual and the changelog for more information. Don't forget to send your feedback and enjoy! - - GLM 0.8.0 (zip, 936 KB) - GLM 0.8.0 (7z, 370 KB) - GLM 0.8.0 Manual - Full changelog - Post a comment - - - - - Ambient aperture lighting Humus demo have been updated to use GLM as math library. - - Updated demo + all sources (zip, 2.38 MB) - Original demo (zip, 1.40 MB) - Post a comment - - - - - As you can see the website get a little update to prepare GLM 0.8.0 final release. - - - GLM 0.8.0 final should be release during the week. - - - - - - This release fixes some bugs and add few features though extensions. The development is now based on CMake to make easier cross platform tests and project management. - - GLM 0.8.0 Beta 3 (zip, 819 KB) - GLM 0.8.0 Beta 3 (7z, 345 KB) - Full changelog - Post a comment - - - - - This release mainly improves half float vectors support. By default the low precission vectors are based on float numbers not on half numbers - - - It also provides new setup options. GLM_USE_ONLY_XYZW to disable multiple names to access to a single vector component. GLM_USE_ANONYMOUS_UNION to allow multiple component names on half vectors with Visual C++. - - - Various bugs and updates of extensions have been done too. Final release is coming... - - GLM 0.8.0 Beta 2 (zip, 798 KB) - GLM 0.8.0 Beta 2 (7z, 327 KB) - Full changelog - Post a comment - - - - - GLM have been updated to support GLSL 1.30. API documentation had significant improvements to make easier finding of GLSL functions and types. - - - GLM 0.8.x is NOT backward compatible with GLM 0.7.x. Upgrade to GLM 0.8.x could involve build errors for the following cases: A lot of improvements have been made to increase the conformance with GLSL specification. Lot of GLSL 1.30 features were already exposed in extensions that have been deleted. The extension syntaxe based on ARB convension is no long used. - - - Due to the number of changes GLM 0.8.0 is release as beta first. The final release is schedule for october. - - GLM 0.8.0 Beta 1 (zip, 786 KB) - GLM 0.8.0 Beta 1 (7z, 321 KB) - Full changelog - Post a comment - - - - - GLM 0.7.6 provides a better C++ conformance so that you can build GLM with –pedantic G++ parameter or without Visual Studio extensions. To make GLM more reliable, BOOST_STATIC_ASSERT are used according developer wishes. - - GLM 0.7.6 (zip, 907 KB) - GLM 0.7.6 (7z, 387 KB) - Full changelog - Manual - - - - - GLM 0.7.5 is available and introduces a new build messsage system to get information of GLM build configuration with Visual Studio. This mechanism is documented in section 6 of GLM manual. Also, GLM can be built with GCC pedantic options. - - GLM 0.7.5 (zip, 852 KB) - GLM 0.7.5 (7z, 366 KB) - Full changelog - Manual - - - - - GLM 0.7.4 introduces a new system to manage external dependencies. - - - It allows developing extension using external dependencies like GLEW, Boost, etc. without making required those dependencies for GLM programmer that doesn't need those external dependent extensions. - - - The mechanism is described into the updated manual. - - GLM 0.7.4 (zip, 859 KB) - GLM 0.7.4 (7z, 372 KB) - Full changelog - Manual - - - - - GLM 0.7.3 is released. This version fixes few bugs and add few extensions - - GLM 0.7.3 (zip, 1.8 MB) - GLM 0.7.3 (7z, 635 KB) - Full changelog - - - - - GLM 0.7.2 is released. The documentation have been completed again and several issues handle with precompiler options. - - - #define GLM_SWIZZLE GLM_SWIZZLE_FUNC allows to use swizzle operators with internal functions. For example, glm::vec3(1, 2, 3).zyx is replaced by glm::vec3(1, 2, 3)._zyx() with this option. - - - #define GLM_FORCE_NO_HALF allows to include all extensions (#include "glm/glmext.h") without any support of half-precision floating-point numbers. - - - #define GLM_AUTO_CAST GLM_DISABLE allows to disable automatic cast (eg: glLoadMatrixf(glm::mat4(1.0))) which could involve unfortunate issues in some cases. - - - More information on these topic are available in GLM manual section 5 "Known issues". - - GLM 0.7.2 (zip, 1.8 MB) - GLM 0.7.2 (7z, 635 KB) - Full changelog - - - - - GLM 0.7.1 is available under MIT license. It fixes bugs with GCC. - - GLM 0.7.1 (zip, 1.8 MB) - GLM 0.7.1 (7z, 635 KB) - Full changelog - - - - - GLM 0.7.0 is available under MIT license. LGPL lisence have been discard due to an issue of use for console development. This release contains a lot better documentation based on Doxygen. Lot of bugs have been fixed and the documentation completed. Thanks to all people that has contributed thought bug reports and ideas to make this version a lot better! - - GLM 0.7.0 (zip, 1.8 MB) - GLM 0.7.0 (7z, 635 KB) - Full changelog - - - - - GLM 0.6.4 is available and fixes some swizzle operator issues. - - GLM 0.6.4 (zip, 1.7 MB) - GLM 0.6.4 (7z, 612 KB) - Full changelog - - - - - GLM 0.6.3 fixes accesses of matrices and a 3DSMax SDK conflict. - - GLM 0.6.3 (zip, 1.8 MB) - GLM 0.6.3 (7z, 633 KB) - Full changelog - - - - - GLM 0.6.2 fixes an error on an extension. - - GLM 0.6.2 (zip, 1.8 MB) - GLM 0.6.2 (7z, 632 KB) - Full changelog - - - - - GLM 0.6.1 is a minor update that fix an issue on extension namespace and add two more extensions. - - GLM 0.6.1 (zip, 1.8 MB) - GLM 0.6.1 (7z, 632 KB) - Full changelog - - - - - GLM 0.6.0 is available. For this release, work focus on extensions. A new mecanisum allows to integrate GLM extensions as it is actually done for GLSL extension by vendors. Lot of new extensions have been added. - - GLM 0.6.0 (zip, 1.8 MB) - GLM 0.6.0 (7z, 666 KB) - Raytracer v1.0 (exe) - Raytracer v1.0 (zip) - Full changelog - - - - - This release fixes some issues with swizzle operators. - - GLM 0.5.1 (zip, 2.3 MB) - GLM 0.5.1 (7z, 789 KB) - - - - - A new sample is available. It's an update of Philip Rideout's Catmull Clark subdivision program that uses GLM. Released with pleasant permission of Philip Rideout. - - CatmullClark sample (zip, 605 KB) - - - - - This release include GLSL 1.2 new feature in the core implementation. Also, it includes swizzle read and write operators and a custom options system to setup GLM. - - - It includes some new extensions to extend GLSL features but they remain experimental. The next release should provide the first stable extensions. - - - The GLM 0.5.0 packages contain some basic samples and some documentation. The ray tracer sample has been updated to GLM 0.5.0. Except for specific cases, especially with extensions, GLM 0.5 is backward compatible. - - - Now, GLM development is taking advantages of SourceForge.net services: a bug tracker system and the development source code is publicly available on SF.net SVN server. - - GLM 0.5.0 (zip, 2.4 MB) - GLM 0.5.0 (7z, 843 KB) - Raytracer b3.0 (exe, 751 KB) - Raytracer b3.0 (zip, 1.1 MB) - - - - - A GLM update is available. It simply includes some examples for a sweet start with GLM. - - - The examples show how to use GLM with OpenGL intermediate mode and OpenGL vertex arrays. Also, they show how to use GLM extensions to replace GLU and OpenGL function witch could slightly increase performances by decreasing the number of OpenGL states changes. - - GLM 0.4.1 (zip, 1.6 MB) - GLM 0.4.1 (7z, 521 KB) - - - - Groove - - This release introduces first GLSL 1.2 features as planed. Also, various new extensions have been added and updated. Finally, it's not anymore required to include windows.h before glm.h when windows.h is required. - - - The number of features of GLM, including extensions, start to really increase the compilation time. That's why it's recommended to use precompiled headers. - - GLM 0.4.0 - - - - - Version 0.4 will complete matrices and vectors operators and will add GLSL 1.2 features. First, conversions simplifications will be integrated. Then, 4 per 3 matrices and outer product will be available from extensions. The transpose function is already available from extension. - - - Version 0.5 will integrate GLSL 1.2 features to GLM core. - - - Version 0.6 will add swizzle operators in reading and writing. (eg: vec3 v1(1.0, 2.0, 3.0); vec3 v2 = v1.xxx; v1.zyx = v;). - - - - - - This release corrects two main bugs. First, a bug of the imat4 and mat4 division operators and other correct the vectors components access from texture coordinate way. - - GLM 0.3.2 - - - - - This update adds GCC 4.0 support for MacOS X and Linux and GCC 4.1 under Linux. Also, its provides some optimisations. - - - Further release will prodive GLSL 1.2 compliances. - - GLM 0.3.1 - - - - - A new release of GLM is now available. It improves GLSL data type conversion and construction compliance. Also, It's adds extensions like some to manage double-precision and half-precision float numbers. Finally a Doxygen documentation has been added. - - - This new release have been tested under Visual C++ 7.1, Visual C++ 8.0, GCC 3.2.3 et GCC 3.4.2. - - GLM 0.3 - Raytrace - Online documentation - - - - - A new release of GLM is now available. A few bugs have been fixed, the portability of GLSL into C++ has been improved, and new experimental extensions have been implemented, enhancing GLSL features. - - - Project now supports quaternions, adds new features to handle colors, vectors and matrices. For example, GLM allows base colors changing, vector projected operations, and 2D/3D transforms. - - - To demo the features of this new version, a sample program is included. It is a simple Ray Tracer supporting reflected and refracted rays, three lights types (point, directionnal and spot), two objects types (sphere, plan), using all of the GLM possibilities. - - - - - - The english section of this site is now available. - - - - - - This is the first public availability of GLM. This library supports part of GLSL specifications : All vectors and matrices types, and all the operators and associated functions. - - - For now, there isn't detailed documentation, but you can freely have a look on GLSL specifications. Consider any incoherence with GLM as an error. Keep in mind the library is included in the namespace "glm". - - - This project is multi platform and was successfully tested under Visual C++ 7.1, MinGW 3.4 and GCC 3.4. - - GLM 0.1 User Release - GLM 0.1 Contributor Release - GLSL 1.10.59 specifications - - - - - - - #include - <glm/glm.hpp> - - - - - - void computeNormal(triangle & Triangle) - - - { - - - glm::vec3 const & a = Triangle.Position[0]; - - - glm::vec3 const & b = Triangle.Position[1]; - - - glm::vec3 const & c = Triangle.Position[2]; - - - Triangle.Normal = glm::normalize(glm::cross(c - a, b - a)); - - - } - - - - - - // glm::vec3, glm::vec4, glm::ivec4, glm::mat4 - - - #include - <glm/glm.hpp> - - - // glm::translate, glm::rotate, glm::scale, glm::perspective - - - #include - <glm/gtc/matrix_transform.hpp> - - - // glm::value_ptr - - - #include - <glm/gtc/type_ptr.hpp> - - - - - - { - - - - glm::mat4 Projection = - - - glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.f); - - - glm::mat4 ViewTranslate = glm::translate( - - - glm::mat4(1.0f), - - - glm::vec3(0.0f, 0.0f, -Translate)); - - - glm::mat4 ViewRotateX = glm::rotate( - - - ViewTranslate, - - - Rotate.y, glm::vec3(-1.0f, 0.0f, 0.0f)); - - - glm::mat4 View = glm::rotate( - - - ViewRotateX, - - - Rotate.x, glm::vec3(0.0f, 1.0f, 0.0f)); - - - glm::mat4 Model = glm::scale( - - - glm::mat4(1.0f), - - - glm::vec3(0.5f)); - - - glm::mat4 MVP = Projection * View * Model; - - - - - - glUniformMatrix4fv( - - - LocationMVP, 1, GL_FALSE, glm::value_ptr(MVP)); - - - } - - - - - - #include - <glm/glm.hpp> - - - #include - <glm/gtx/type_precision.hpp> - - - - - - std::size_t const VertexCount = 4; - - - - - - // Float quad geometry - - - std::size_t const PositionSizeF32 = VertexCount * sizeof(glm::vec2); - - - glm::vec2 const PositionDataF32[VertexCount] = - - - { - - - glm::vec2(-1.0f,-1.0f), - - - glm::vec2( 1.0f,-1.0f), - - - glm::vec2( 1.0f, 1.0f), - - - glm::vec2(-1.0f, 1.0f) - - - }; - - - - - - // Half-float quad geometry - - - std::size_t const PositionSizeF16 = VertexCount * sizeof(glm::hvec2); - - - glm::hvec2 const PositionDataF16[VertexCount] = - - - { - - - glm::hvec2(-1.0f, -1.0f), - - - glm::hvec2( 1.0f, -1.0f), - - - glm::hvec2( 1.0f, 1.0f), - - - glm::hvec2(-1.0f, 1.0f) - - - }; - - - - - - // 8 bits signed integer quad geometry - - - std::size_t const PositionSizeI8 = VertexCount * sizeof(glm::i8vec2); - - - glm::i8vec2 const PositionDataI8[VertexCount] = - - - { - - - glm::i8vec2(-1,-1), - - - glm::i8vec2( 1,-1), - - - glm::i8vec2( 1, 1), - - - glm::i8vec2(-1, 1) - - - }; - - - - - - // 32 bits signed integer quad geometry - - - std::size_t const PositionSizeI32 = VertexCount * sizeof(glm::i32vec2); - - - glm::i32vec2 const PositionDataI32[VertexCount] = - - - { - - - glm::i32vec2 (-1,-1), - - - glm::i32vec2 ( 1,-1), - - - glm::i32vec2 ( 1, 1), - - - glm::i32vec2 (-1, 1) - - - }; - - - - - - #include - <glm/glm.hpp> - - - #include - <glm/gtx/random.hpp> - - - - - - glm::vec3 lighting - - - ( - - - intersection const & Intersection, - - - material const & Material, - - - light const & Light, - - - glm::vec3 const & View - - - ) - - - { - - - glm::vec3 Color = glm::vec3(0.0f); - - - - - - glm::vec3 LightVertor = glm::normalize( - - - Light.position() - Intersection.globalPosition() + - - - glm::vecRand3(0.0f, Light.inaccuracy()); - - - - - - if(!shadow( - - - Intersection.globalPosition(), - - - Light.position(), - - - LightVertor)) - - - { - - - float Diffuse = glm::dot(Intersection.normal(), LightVector); - - - - - - if(Diffuse <= 0.0f) - - - return Color; - - - if(Material.isDiffuse()) - - - Color += Light.color() * Material.diffuse() * Diffuse; - - - - - - if(Material.isSpecular()) - - - { - - - glm::vec3 Reflect = glm::reflect( - - - glm::normalize(-LightVector), - - - glm::normalize(Intersection.normal())); - - - float Dot = glm::dot(Reflect, View); - - - float Base = Dot > 0.0f ? Dot : 0.0f; - - - float Specular = glm::pow(Base, Material.exponent()); - - - Color += Material.specular() * Specular; - - - } - - - } - - - - - - - - - OpenGL's Official site. You would find OpenGL specifications, news and tons of related informations. - - - This page contains all OpenGL extensions specifications. - - - This page contains OpenGL 2.0 specifications. - - - This page contains OpenGL Shading Language Specification. - - - - This document lists all the conventions for writing GLSL extensions. These rules are the basics of the GLM extensions system. - - - - - GLSL is not the ultimate mathematics library, i.e. for matrices operations, specs are very restricted. There aren't any functions to get the determinant, inverse, or a matrix transpose. Moreover, there are a few vector types and no quaternions. - What about completing the missing features using the extensions ? It will be developed from GLSL conventions and may add for exemple the extension GLM_GTX_quaternion, defining __quatGT type and conjugateGT function. - Extensions may be available through a separate file called glmext.h instead of being directly into the library core file. - It would be interesting to suggest GLM extensions implementations directly in GLSL to increase portability. It may hopefully end by submitting extensions to ARB. - - - The use of a namespace allows to prevenf from any name collision problem with other libraries like STL. GLSL uses a reserved 'namespace' keyword but does not define it. OpenGL uses a C technic for the namespaces management with the 'gl' prefix. What name should we give to this namespace ? 'gl', 'glsl', 'glm' or 'sl' ? What is the best solution ? C-like or C++-like namespaces ? - Bug #3 says that 'not' is a C++ keyword. C-style namespaces use would resolves this bug but GLSL has been built from C upon a C++ logic. - - - The interaction with OpenGL is not the purpose of GLM. However, GLM should be easily usable with OpenGL and some features could be welcome. i.e., using vec3 type with Vertex3fv function should simplify and optimize the program. Eventually, semantically speaking, vec3 is more accurate and stronger than addressing on a potential 3 floats table. - If it is possible to make easy the interoperability between GLM and OpenGL, then this work is recommended if semantic stays correct. GLM must also remain independent towards OpenGL. - - - GLSL specifications include unimplemented reserved keywords list. Their use must return an error. Some of them already exist in C++. - GLM can only allow C++ reserved keywords. The others must be undefined so the compiler returns an error. - - - GLSL defines six variable qualifiers types : const, varying, uniform, attrib, in, out, inout. - 'const' variables are only usable in a local way into a shader. They are available for vertex and fragments shaders. GLSL's 'const' are similar to C++ 'static const', i.e. the variable only exists inside a compilation unit (.o files with GCC). - 'varying' variables offer a communication interface between vertex and fragment sahder. 'uniform' and 'attrib' variables are a way of communication between C/C++ program and shaders, so 'varying' are useless in the C++ program; so this qualifier is not allowed. - Some programmers are already using 'in', 'ou' and 'inout' qualifiers for semantic purpose. They define them as empty '#define'. - It seems difficult to keep the same syntax than GLSL for 'uniform' and 'attrib' variables although this notion seems interesting. Why not keeping it only for their semantic properties ? - - - All integrated variables matches with OpenGL state variables. So there are all accessible from the OpenGL API. - - - smapler* types come from GL_ARB_multitexure extension. Values matches with a texture unit. - A sampler type would offer an additionnal semantic value. - No, this is not the GLM objective. - - - GLSL allows several components to be accessed at the same time. Moreover, GLSL let the possibility to the user to order components as he wants. To implement such a possibility, 4² * 3 * 2 = 96 fuctions should be added for vec4 type, for example (components number : 4, access types : 3, readonly access and write access : 2). - A solution witch reach GLSL conformance have been found. However it need lot of functions. This feature is coming in a futur release. - - - GLSL allows an access to a component with many different names, that explains the component notion. i.e. the first vec3 component is accessible with .x, .r, .s. - A possibility would be creating three functions for each component. - Another would be using the keyword 'union'. - The first solution allows to keep components values in a private classes table, but in this case, the overloaded operator [] must be used to access values and/or functions per component that is not conform to GLSL specifications. The second respect GLSL rules but components are public. In this case, this is not a real problem so this second solution is kept. - - - GLSL specifications tell that 'fragment processing functions' are only available for fragment shaders and function ftransform is only available for vertex shaders. The C/C++ program must be considered as a third program type so this functions are not available. - - - - - 'union' keyword is here to allow access to vector components with several different variables names. Moreover, templates are also used to create two vector type categories : _vec* and _ivec*. Eventually, anonymous structures are not allowed in ISO C++ norm. - Problem might come from the lack of supporting both templates and unions from Visual C++ 7.1. - If -pedantic isn't used with G++, then code compiles correctly. As we are waiting for a better compromise, the code stays that way. As notified for the bug #4, the ultimate solution might be to avoid templates in vector definition. - - - GCC supports all C++ keywords that includes 'not', which is equivalent to '!' operator. So there is a problem with GLM because GLSL defines the 'not' function. - Overloading the '!' operator or the 'not' keyword we can partly resolve the problem but leaving as ignored the GLM namespace concept. If the source code contains 'glm:not' string, then GCC gives an error. - 'not' is a C++ keyword so GLM mustn't define a 'not' function. However, all the compilers don't support this keyword (VC7.1). Does this name has to be changed ? For now, it is recommended to avoid using 'not'. - - - The GLSL specifications grant access to multiple components for vector types. i.e. with GLSL the following lines are correct : vec3 MyVector = vec4(1.0, 1.0, 1.0, 0.0).xyz. - It seems difficult to create an equal feature in C++ because 'x', 'y', and 'z' according to the previous example can be sorted in any order and be repeated from zero to four to a max of four components. - - - - - - OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software - based on the OpenGL Shading Language (GLSL) specification. - - - 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. - - - 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, - procedural noise functions, etc... - - - This library works perfectly with OpenGL but it also ensures interoperability with third party libraries and SDKs. - It is a good candidate for software rendering (Raytracing / Rasterisation), image processing, physic simulations and any context that requires a simple and convenient mathematics library. - - - Clang 2.6 and higher - - CUDA 3.0 and higher - - GCC 3.4 and higher - LLVM 2.3 through GCC 4.2 front-end and higher - Visual C++ 2005 and higher - Any conform C++98 or C++11 compiler - - - The source code is licenced under the MIT license. - - For more information about GLM, please have a look at the manual and the API reference documentation. - - Thanks for contributing to the project by submitting tickets for bug reports and feature requests. (SF.net account required). - Any feedback is welcome at glm@g-truc.net. - - - - - GLSL + Optional features = OpenGL Mathematics (GLM) - A C++ mathematics library for graphics programming - - - - - - - 2560x1600 - 1920x1200 - 1600x1000 - 1280x0800 - 1024x0640 - - - - - Font (.otf) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/src/download.xsl b/doc/src/download.xsl deleted file mode 100644 index 8ad4e6c2..00000000 --- a/doc/src/download.xsl +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - OpenGL Mathematics: Downloads - - - - - - - - - - - - - -
    -
    - OpenGL Mathematics -
    - -
    -
    -
    Current release
    - -
    -
    - : - - - - () -
    -
    _________________
    -
    - - - -
    _________________
    -
    - -
    - - -
    - - -
    -
    - -
    - -
    -
    _________________
    -
    -
    - - -
    - : - - () -
    -
    - -
    diff --git a/doc/src/dummy.cpp b/doc/src/dummy.cpp deleted file mode 100644 index a9226b83..00000000 --- a/doc/src/dummy.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include "../../glm/glm.hpp" // glm::vec3, glm::vec4, glm::ivec4, glm::mat4 -#include - -struct triangle -{ - glm::vec3 Position[3]; - glm::vec3 Normal; -}; - -void computeNormal(triangle & Triangle) -{ - glm::vec3 const & a = Triangle.Position[0]; - glm::vec3 const & b = Triangle.Position[1]; - glm::vec3 const & c = Triangle.Position[2]; - Triangle.Normal = glm::normalize(glm::cross(c - a, b - a)); -} - -#include "../../glm/gtc/matrix_transform.hpp" // glm::translate, glm::rotate, glm::scale -#include "../../glm/gtc/type_ptr.hpp" // glm::value_ptr -#include "../../glm/gtc/quaternion.hpp" // glm::quat -//#include "../../glm/ext.hpp" - -glm::vec4 const ClearColor = glm::vec4(glm::vec3(0.0f), 1.0f); -glm::ivec4 const Viewport = glm::ivec4(0, 0, 640, 480); - -void glUniformMatrix4fv(int location, int count, bool transpose, const float * value); - -void ticket0023() -{ - std::vector vals; - vals.push_back(1); - vals.push_back(2); - vals.push_back(3); - std::vector::iterator it1, it2; - it1 = vals.begin(); - it2 = vals.end(); - it1 != it2; // <-- Here - glm::vec3 c; - glm::quat q; -} - -int main() -{ - //triangle Triangle; - //computeNormal(Triangle); - - float Translate = 1.0f; - glm::vec2 Rotate; - - glm::mat4 Projection = glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.f); - glm::mat4 ViewTranslate = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, -Translate)); - glm::mat4 ViewRotateX = glm::rotate(ViewTranslate, Rotate.y, glm::vec3(-1.0f, 0.0f, 0.0f)); - glm::mat4 View = glm::rotate(ViewRotateX, Rotate.x, glm::vec3(0.0f, 1.0f, 0.0f)); - glm::mat4 Model = glm::scale(glm::mat4(1.0f), glm::vec3(0.5f)); - glm::mat4 MVP = Projection * View * Model; - - //glUniformMatrix4fv(LocationMVP, 1, GL_FALSE, glm::value_ptr(MVP)); - - ticket0023(); -} diff --git a/doc/src/goodies.xsl b/doc/src/goodies.xsl deleted file mode 100644 index d21c7a8a..00000000 --- a/doc/src/goodies.xsl +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - OpenGL Mathematics: Goodies - - - - - - - - - - - - - -
    -
    - OpenGL Mathematics -
    - -
    - - - -
    _________________
    -
    - -
    - - -
    - - -
    -
    - -
    -
    - -
    -
    - - - - - -
    - - - - - - - - - -  - -
    -
    -
    _________________
    -
    -
    -
    - -
    diff --git a/doc/src/link.xsl b/doc/src/link.xsl deleted file mode 100644 index aa192d35..00000000 --- a/doc/src/link.xsl +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - OpenGL Mathematics: Links - - - - - - - - -
    - OpenGL Mathematics -
    - - - - - -
    - -
    - - - -
    - - -
    -
    Links
    -
    - This page lists all the documents that helped to develop OpenGL Mathematics. -
    -
    - -
    -
    - - -
    - - - -
    -
    - -
    -
    -
    - -
    diff --git a/doc/src/news.xsl b/doc/src/news.xsl deleted file mode 100644 index 3ae1682a..00000000 --- a/doc/src/news.xsl +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - OpenGL Mathematics - - - - - - - - - - - - - -
    - -
    - OpenGL Mathematics -
    - -
    - -
    - - -
    - - -
    - - -
    -

    - - - -

    -
    - -
    -
    -
    -
    - -
    diff --git a/doc/src/util.xsl b/doc/src/util.xsl deleted file mode 100644 index 4fa1e689..00000000 --- a/doc/src/util.xsl +++ /dev/null @@ -1,283 +0,0 @@ - - - - - - - - - - - - - - - - -
    - - {./@title} - -
    -
    - -
    - - {./@title} - -
    -
    -
    - -
    - -
    -
    -
    - - -
    - -
    -
    - - - - {./@title} - - - - -
    - - - - - - - - - - - - - - - - -
      - -
    -
    -
    - - -

    5uVnpoJt5Lk+rgsHPzkn*a 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€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

  • - - - - - - - - - - -
  • - - - -
    -
    - - -

    -
    - - -
    - -
    -
    -
    - - - :
    -
    - - - -
    - -
    - -
    - -
    - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - -
      - -
    -
    - - -
  • - - - - - - - - - - - - -
  • -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -