From daf0dfc2a1bd440fabb162d9a96b2f466715c0e2 Mon Sep 17 00:00:00 2001 From: Alexander Borsuk Date: Mon, 1 Mar 2021 19:19:52 +0100 Subject: [PATCH] [3party][glm] Removed glm to add an updated version as a submodule Signed-off-by: Alexander Borsuk --- 3party/glm/CMakeLists.txt | 137 - 3party/glm/CTestConfig.cmake | 13 - 3party/glm/cmake/GNUInstallDirs.cmake | 188 - 3party/glm/copying.txt | 21 - 3party/glm/doc/api/a00002.html | 61 - 3party/glm/doc/api/a00004_source.html | 462 - 3party/glm/doc/api/a00005_source.html | 85 - 3party/glm/doc/api/a00006_source.html | 86 - 3party/glm/doc/api/a00007.html | 82 - 3party/glm/doc/api/a00007_source.html | 166 - 3party/glm/doc/api/a00008_source.html | 876 -- 3party/glm/doc/api/a00009_source.html | 759 -- 3party/glm/doc/api/a00010_source.html | 228 - 3party/glm/doc/api/a00011.html | 107 - 3party/glm/doc/api/a00011_source.html | 119 - 3party/glm/doc/api/a00012.html | 162 - 3party/glm/doc/api/a00012_source.html | 174 - 3party/glm/doc/api/a00013_source.html | 88 - 3party/glm/doc/api/a00014.html | 105 - 3party/glm/doc/api/a00014_source.html | 111 - 3party/glm/doc/api/a00015.html | 99 - 3party/glm/doc/api/a00015_source.html | 102 - 3party/glm/doc/api/a00016.html | 74 - 3party/glm/doc/api/a00016_source.html | 69 - 3party/glm/doc/api/a00017.html | 397 - 3party/glm/doc/api/a00017_source.html | 246 - 3party/glm/doc/api/a00018.html | 99 - 3party/glm/doc/api/a00018_source.html | 101 - 3party/glm/doc/api/a00019.html | 164 - 3party/glm/doc/api/a00019_source.html | 181 - 3party/glm/doc/api/a00020_source.html | 73 - 3party/glm/doc/api/a00021.html | 151 - 3party/glm/doc/api/a00021_source.html | 273 - 3party/glm/doc/api/a00022.html | 103 - 3party/glm/doc/api/a00022_source.html | 109 - 3party/glm/doc/api/a00023_source.html | 69 - 3party/glm/doc/api/a00024.html | 134 - 3party/glm/doc/api/a00024_source.html | 165 - 3party/glm/doc/api/a00025.html | 74 - 3party/glm/doc/api/a00025_source.html | 69 - 3party/glm/doc/api/a00026_source.html | 204 - 3party/glm/doc/api/a00027.html | 90 - 3party/glm/doc/api/a00027_source.html | 88 - 3party/glm/doc/api/a00028.html | 125 - 3party/glm/doc/api/a00028_source.html | 193 - 3party/glm/doc/api/a00029.html | 110 - 3party/glm/doc/api/a00029_source.html | 112 - 3party/glm/doc/api/a00030.html | 102 - 3party/glm/doc/api/a00030_source.html | 101 - 3party/glm/doc/api/a00031.html | 108 - 3party/glm/doc/api/a00031_source.html | 109 - 3party/glm/doc/api/a00032_source.html | 240 - 3party/glm/doc/api/a00033_source.html | 108 - 3party/glm/doc/api/a00034_source.html | 129 - 3party/glm/doc/api/a00035_source.html | 138 - 3party/glm/doc/api/a00036_source.html | 166 - 3party/glm/doc/api/a00037_source.html | 95 - 3party/glm/doc/api/a00038_source.html | 117 - 3party/glm/doc/api/a00039_source.html | 136 - 3party/glm/doc/api/a00040_source.html | 117 - 3party/glm/doc/api/a00041.html | 1137 --- 3party/glm/doc/api/a00041_source.html | 1993 ---- 3party/glm/doc/api/a00042.html | 74 - 3party/glm/doc/api/a00042_source.html | 69 - 3party/glm/doc/api/a00043.html | 80 - 3party/glm/doc/api/a00043_source.html | 123 - 3party/glm/doc/api/a00044.html | 95 - 3party/glm/doc/api/a00044_source.html | 97 - 3party/glm/doc/api/a00045.html | 93 - 3party/glm/doc/api/a00045_source.html | 95 - 3party/glm/doc/api/a00046_source.html | 75 - 3party/glm/doc/api/a00047.html | 85 - 3party/glm/doc/api/a00047_source.html | 122 - 3party/glm/doc/api/a00048_source.html | 86 - 3party/glm/doc/api/a00049.html | 115 - 3party/glm/doc/api/a00049_source.html | 114 - 3party/glm/doc/api/a00050.html | 74 - 3party/glm/doc/api/a00050_source.html | 69 - 3party/glm/doc/api/a00051.html | 107 - 3party/glm/doc/api/a00051_source.html | 124 - 3party/glm/doc/api/a00052_source.html | 124 - 3party/glm/doc/api/a00053_source.html | 114 - 3party/glm/doc/api/a00054_source.html | 111 - 3party/glm/doc/api/a00055_source.html | 86 - 3party/glm/doc/api/a00056_source.html | 104 - 3party/glm/doc/api/a00057_source.html | 83 - 3party/glm/doc/api/a00058_source.html | 83 - 3party/glm/doc/api/a00059.html | 85 - 3party/glm/doc/api/a00059_source.html | 172 - 3party/glm/doc/api/a00060.html | 90 - 3party/glm/doc/api/a00060_source.html | 87 - 3party/glm/doc/api/a00061_source.html | 2373 ----- 3party/glm/doc/api/a00062.html | 82 - 3party/glm/doc/api/a00062_source.html | 91 - 3party/glm/doc/api/a00063.html | 82 - 3party/glm/doc/api/a00063_source.html | 82 - 3party/glm/doc/api/a00064.html | 82 - 3party/glm/doc/api/a00064_source.html | 82 - 3party/glm/doc/api/a00065.html | 82 - 3party/glm/doc/api/a00065_source.html | 82 - 3party/glm/doc/api/a00066.html | 82 - 3party/glm/doc/api/a00066_source.html | 91 - 3party/glm/doc/api/a00067.html | 82 - 3party/glm/doc/api/a00067_source.html | 82 - 3party/glm/doc/api/a00068.html | 82 - 3party/glm/doc/api/a00068_source.html | 82 - 3party/glm/doc/api/a00069_source.html | 82 - 3party/glm/doc/api/a00070.html | 82 - 3party/glm/doc/api/a00070_source.html | 91 - 3party/glm/doc/api/a00071.html | 74 - 3party/glm/doc/api/a00071_source.html | 69 - 3party/glm/doc/api/a00072.html | 99 - 3party/glm/doc/api/a00072_source.html | 105 - 3party/glm/doc/api/a00073.html | 95 - 3party/glm/doc/api/a00073_source.html | 91 - 3party/glm/doc/api/a00074.html | 351 - 3party/glm/doc/api/a00074_source.html | 442 - 3party/glm/doc/api/a00075.html | 99 - 3party/glm/doc/api/a00075_source.html | 108 - 3party/glm/doc/api/a00076.html | 94 - 3party/glm/doc/api/a00076_source.html | 90 - 3party/glm/doc/api/a00077.html | 125 - 3party/glm/doc/api/a00077_source.html | 147 - 3party/glm/doc/api/a00078.html | 114 - 3party/glm/doc/api/a00078_source.html | 126 - 3party/glm/doc/api/a00079.html | 113 - 3party/glm/doc/api/a00079_source.html | 112 - 3party/glm/doc/api/a00080.html | 145 - 3party/glm/doc/api/a00080_source.html | 190 - 3party/glm/doc/api/a00081.html | 91 - 3party/glm/doc/api/a00081_source.html | 88 - 3party/glm/doc/api/a00082.html | 95 - 3party/glm/doc/api/a00082_source.html | 93 - 3party/glm/doc/api/a00083.html | 96 - 3party/glm/doc/api/a00083_source.html | 97 - 3party/glm/doc/api/a00084_source.html | 69 - 3party/glm/doc/api/a00085.html | 119 - 3party/glm/doc/api/a00085_source.html | 134 - 3party/glm/doc/api/a00086.html | 92 - 3party/glm/doc/api/a00086_source.html | 88 - 3party/glm/doc/api/a00087.html | 95 - 3party/glm/doc/api/a00087_source.html | 94 - 3party/glm/doc/api/a00088.html | 121 - 3party/glm/doc/api/a00088_source.html | 119 - 3party/glm/doc/api/a00089.html | 107 - 3party/glm/doc/api/a00089_source.html | 107 - 3party/glm/doc/api/a00090.html | 95 - 3party/glm/doc/api/a00090_source.html | 91 - 3party/glm/doc/api/a00091.html | 147 - 3party/glm/doc/api/a00091_source.html | 182 - 3party/glm/doc/api/a00092.html | 74 - 3party/glm/doc/api/a00092_source.html | 69 - 3party/glm/doc/api/a00093_source.html | 63 - 3party/glm/doc/api/a00094.html | 92 - 3party/glm/doc/api/a00094_source.html | 88 - 3party/glm/doc/api/a00095.html | 93 - 3party/glm/doc/api/a00095_source.html | 91 - 3party/glm/doc/api/a00096_source.html | 78 - 3party/glm/doc/api/a00097.html | 90 - 3party/glm/doc/api/a00097_source.html | 87 - 3party/glm/doc/api/a00098.html | 177 - 3party/glm/doc/api/a00098_source.html | 332 - 3party/glm/doc/api/a00099.html | 143 - 3party/glm/doc/api/a00099_source.html | 193 - 3party/glm/doc/api/a00100.html | 113 - 3party/glm/doc/api/a00100_source.html | 114 - 3party/glm/doc/api/a00101_source.html | 69 - 3party/glm/doc/api/a00102.html | 95 - 3party/glm/doc/api/a00102_source.html | 93 - 3party/glm/doc/api/a00103.html | 123 - 3party/glm/doc/api/a00103_source.html | 130 - 3party/glm/doc/api/a00104_source.html | 66 - 3party/glm/doc/api/a00105.html | 97 - 3party/glm/doc/api/a00105_source.html | 98 - 3party/glm/doc/api/a00106.html | 119 - 3party/glm/doc/api/a00106_source.html | 140 - 3party/glm/doc/api/a00107.html | 83 - 3party/glm/doc/api/a00107_source.html | 83 - 3party/glm/doc/api/a00108_source.html | 813 -- 3party/glm/doc/api/a00109_source.html | 215 - 3party/glm/doc/api/a00110.html | 75 - 3party/glm/doc/api/a00110_source.html | 293 - 3party/glm/doc/api/a00111.html | 75 - 3party/glm/doc/api/a00111_source.html | 406 - 3party/glm/doc/api/a00112.html | 96 - 3party/glm/doc/api/a00112_source.html | 110 - 3party/glm/doc/api/a00113.html | 107 - 3party/glm/doc/api/a00113_source.html | 100 - 3party/glm/doc/api/a00114.html | 96 - 3party/glm/doc/api/a00114_source.html | 88 - 3party/glm/doc/api/a00115.html | 102 - 3party/glm/doc/api/a00115_source.html | 99 - 3party/glm/doc/api/a00116.html | 116 - 3party/glm/doc/api/a00116_source.html | 148 - 3party/glm/doc/api/a00117.html | 74 - 3party/glm/doc/api/a00117_source.html | 69 - 3party/glm/doc/api/a00118_source.html | 116 - 3party/glm/doc/api/a00119_source.html | 252 - 3party/glm/doc/api/a00120_source.html | 85 - 3party/glm/doc/api/a00121_source.html | 212 - 3party/glm/doc/api/a00122_source.html | 471 - 3party/glm/doc/api/a00123_source.html | 285 - 3party/glm/doc/api/a00124_source.html | 251 - 3party/glm/doc/api/a00125_source.html | 253 - 3party/glm/doc/api/a00126_source.html | 257 - 3party/glm/doc/api/a00127_source.html | 292 - 3party/glm/doc/api/a00128_source.html | 257 - 3party/glm/doc/api/a00129_source.html | 263 - 3party/glm/doc/api/a00130_source.html | 263 - 3party/glm/doc/api/a00131_source.html | 302 - 3party/glm/doc/api/a00132.html | 87 - 3party/glm/doc/api/a00132_source.html | 691 -- 3party/glm/doc/api/a00133.html | 159 - 3party/glm/doc/api/a00133_source.html | 164 - 3party/glm/doc/api/a00134_source.html | 342 - 3party/glm/doc/api/a00135_source.html | 307 - 3party/glm/doc/api/a00136_source.html | 343 - 3party/glm/doc/api/a00137_source.html | 360 - 3party/glm/doc/api/a00138_source.html | 400 - 3party/glm/doc/api/a00139.html | 105 - 3party/glm/doc/api/a00139_source.html | 106 - 3party/glm/doc/api/a00140_source.html | 69 - 3party/glm/doc/api/a00141_source.html | 66 - 3party/glm/doc/api/a00142.html | 113 - 3party/glm/doc/api/a00142_source.html | 164 - 3party/glm/doc/api/a00143.html | 74 - 3party/glm/doc/api/a00143_source.html | 69 - 3party/glm/doc/api/a00144.html | 74 - 3party/glm/doc/api/a00144_source.html | 69 - 3party/glm/doc/api/a00145.html | 74 - 3party/glm/doc/api/a00145_source.html | 69 - 3party/glm/doc/api/a00146.html | 101 - 3party/glm/doc/api/a00146_source.html | 102 - 3party/glm/doc/api/a00147.html | 105 - 3party/glm/doc/api/a00147_source.html | 108 - 3party/glm/doc/api/a00148.html | 74 - 3party/glm/doc/api/a00148_source.html | 69 - 3party/glm/doc/api/a00149.html | 96 - 3party/glm/doc/api/a00149_source.html | 93 - 3party/glm/doc/api/a00150.html | 77 - 3party/glm/doc/api/a00150_source.html | 191 - 3party/glm/doc/api/a00151.html | 4075 -------- 3party/glm/doc/api/a00155.html | 1133 --- 3party/glm/doc/api/a00156.html | 327 - 3party/glm/doc/api/a00157.html | 408 - 3party/glm/doc/api/a00158.html | 493 - 3party/glm/doc/api/a00159.html | 55 - 3party/glm/doc/api/a00160.html | 189 - 3party/glm/doc/api/a00161.html | 366 - 3party/glm/doc/api/a00162.html | 534 - 3party/glm/doc/api/a00163.html | 337 - 3party/glm/doc/api/a00164.html | 95 - 3party/glm/doc/api/a00165.html | 163 - 3party/glm/doc/api/a00166.html | 63 - 3party/glm/doc/api/a00167.html | 88 - 3party/glm/doc/api/a00168.html | 810 -- 3party/glm/doc/api/a00169.html | 2934 ------ 3party/glm/doc/api/a00170.html | 55 - 3party/glm/doc/api/a00171.html | 589 -- 3party/glm/doc/api/a00172.html | 219 - 3party/glm/doc/api/a00173.html | 203 - 3party/glm/doc/api/a00174.html | 1959 ---- 3party/glm/doc/api/a00175.html | 132 - 3party/glm/doc/api/a00176.html | 910 -- 3party/glm/doc/api/a00177.html | 138 - 3party/glm/doc/api/a00178.html | 978 -- 3party/glm/doc/api/a00179.html | 897 -- 3party/glm/doc/api/a00180.html | 263 - 3party/glm/doc/api/a00181.html | 330 - 3party/glm/doc/api/a00182.html | 8958 ----------------- 3party/glm/doc/api/a00183.html | 466 - 3party/glm/doc/api/a00184.html | 235 - 3party/glm/doc/api/a00185.html | 399 - 3party/glm/doc/api/a00186.html | 954 -- 3party/glm/doc/api/a00187.html | 101 - 3party/glm/doc/api/a00188.html | 215 - 3party/glm/doc/api/a00189.html | 155 - 3party/glm/doc/api/a00190.html | 410 - 3party/glm/doc/api/a00191.html | 151 - 3party/glm/doc/api/a00192.html | 475 - 3party/glm/doc/api/a00193.html | 485 - 3party/glm/doc/api/a00194.html | 102 - 3party/glm/doc/api/a00195.html | 555 - 3party/glm/doc/api/a00196.html | 237 - 3party/glm/doc/api/a00197.html | 186 - 3party/glm/doc/api/a00198.html | 227 - 3party/glm/doc/api/a00199.html | 145 - 3party/glm/doc/api/a00200.html | 139 - 3party/glm/doc/api/a00201.html | 55 - 3party/glm/doc/api/a00202.html | 338 - 3party/glm/doc/api/a00203.html | 399 - 3party/glm/doc/api/a00204.html | 56 - 3party/glm/doc/api/a00205.html | 96 - 3party/glm/doc/api/a00206.html | 107 - 3party/glm/doc/api/a00207.html | 193 - 3party/glm/doc/api/a00208.html | 423 - 3party/glm/doc/api/a00209.html | 261 - 3party/glm/doc/api/a00210.html | 319 - 3party/glm/doc/api/a00211.html | 66 - 3party/glm/doc/api/a00212.html | 153 - 3party/glm/doc/api/a00213.html | 349 - 3party/glm/doc/api/a00214.html | 101 - 3party/glm/doc/api/a00215.html | 127 - 3party/glm/doc/api/a00216.html | 92 - 3party/glm/doc/api/a00217.html | 216 - 3party/glm/doc/api/a00218.html | 117 - 3party/glm/doc/api/a00219.html | 95 - 3party/glm/doc/api/a00220.html | 107 - 3party/glm/doc/api/a00221.html | 95 - 3party/glm/doc/api/a00222.html | 615 -- 3party/glm/doc/api/a00223.html | 139 - 3party/glm/doc/api/a00224.html | 167 - 3party/glm/doc/api/a00225.html | 395 - 3party/glm/doc/api/a00226.html | 55 - 3party/glm/doc/api/a00227.html | 57 - 3party/glm/doc/api/a00228.html | 213 - 3party/glm/doc/api/a00229.html | 183 - 3party/glm/doc/api/a00230.html | 85 - 3party/glm/doc/api/a00231.html | 148 - 3party/glm/doc/api/a00232.html | 374 - 3party/glm/doc/api/a00233.html | 55 - 3party/glm/doc/api/a00234.html | 167 - 3party/glm/doc/api/a00235.html | 273 - 3party/glm/doc/api/a00236.html | 129 - 3party/glm/doc/api/a00237.html | 55 - 3party/glm/doc/api/a00238.html | 53 - 3party/glm/doc/api/a00240.html | 63 - 3party/glm/doc/api/bc_s.png | Bin 676 -> 0 bytes 3party/glm/doc/api/bdwn.png | Bin 147 -> 0 bytes 3party/glm/doc/api/closed.png | Bin 132 -> 0 bytes .../dir_04e4a28b8d58785d7769817294d623f5.html | 63 - .../dir_4d1ca7e3aefdd5b86b5dba8da1c3d503.html | 151 - .../dir_6e418c18ca640a0404613de005739e2e.html | 63 - .../dir_89daaa151958d75313fcd89dd5f4bdb8.html | 65 - .../dir_8ceffd4ee35c3518d4e8bdc7e638efe8.html | 63 - .../dir_968fb7988749a6351e7b3d0c1783dec4.html | 63 - .../dir_a8d99eddac27b2368ab5252ce80ded11.html | 185 - .../dir_e3ecd7863bd215c92a17f47e2ae3be43.html | 63 - .../dir_e50778361fd4ab4de52181ed9eb2b726.html | 118 - .../dir_edf753475b928be648c1cf1c6443cf63.html | 65 - .../dir_f7324829a002c536307b42a892c06451.html | 89 - 3party/glm/doc/api/doxygen.css | 865 -- 3party/glm/doc/api/doxygen.png | Bin 3779 -> 0 bytes 3party/glm/doc/api/dynsections.js | 104 - 3party/glm/doc/api/files.html | 209 - 3party/glm/doc/api/ftv2blank.png | Bin 86 -> 0 bytes 3party/glm/doc/api/ftv2cl.png | Bin 453 -> 0 bytes 3party/glm/doc/api/ftv2doc.png | Bin 746 -> 0 bytes 3party/glm/doc/api/ftv2folderclosed.png | Bin 616 -> 0 bytes 3party/glm/doc/api/ftv2folderopen.png | Bin 597 -> 0 bytes 3party/glm/doc/api/ftv2lastnode.png | Bin 86 -> 0 bytes 3party/glm/doc/api/ftv2link.png | Bin 746 -> 0 bytes 3party/glm/doc/api/ftv2mlastnode.png | Bin 246 -> 0 bytes 3party/glm/doc/api/ftv2mnode.png | Bin 246 -> 0 bytes 3party/glm/doc/api/ftv2mo.png | Bin 403 -> 0 bytes 3party/glm/doc/api/ftv2node.png | Bin 86 -> 0 bytes 3party/glm/doc/api/ftv2ns.png | Bin 388 -> 0 bytes 3party/glm/doc/api/ftv2plastnode.png | Bin 229 -> 0 bytes 3party/glm/doc/api/ftv2pnode.png | Bin 229 -> 0 bytes 3party/glm/doc/api/ftv2splitbar.png | Bin 314 -> 0 bytes 3party/glm/doc/api/ftv2vertline.png | Bin 86 -> 0 bytes 3party/glm/doc/api/index.html | 71 - 3party/glm/doc/api/jquery.js | 39 - 3party/glm/doc/api/modules.html | 142 - 3party/glm/doc/api/namespacemembers.html | 174 - 3party/glm/doc/api/namespacemembers_0x62.html | 177 - 3party/glm/doc/api/namespacemembers_0x63.html | 159 - 3party/glm/doc/api/namespacemembers_0x64.html | 237 - 3party/glm/doc/api/namespacemembers_0x65.html | 162 - 3party/glm/doc/api/namespacemembers_0x66.html | 411 - 3party/glm/doc/api/namespacemembers_0x67.html | 105 - 3party/glm/doc/api/namespacemembers_0x68.html | 672 -- 3party/glm/doc/api/namespacemembers_0x69.html | 333 - 3party/glm/doc/api/namespacemembers_0x6c.html | 717 -- 3party/glm/doc/api/namespacemembers_0x6d.html | 783 -- 3party/glm/doc/api/namespacemembers_0x6e.html | 123 - 3party/glm/doc/api/namespacemembers_0x6f.html | 123 - 3party/glm/doc/api/namespacemembers_0x70.html | 207 - 3party/glm/doc/api/namespacemembers_0x71.html | 105 - 3party/glm/doc/api/namespacemembers_0x72.html | 180 - 3party/glm/doc/api/namespacemembers_0x73.html | 180 - 3party/glm/doc/api/namespacemembers_0x74.html | 135 - 3party/glm/doc/api/namespacemembers_0x75.html | 309 - 3party/glm/doc/api/namespacemembers_0x76.html | 108 - 3party/glm/doc/api/namespacemembers_0x77.html | 96 - 3party/glm/doc/api/namespacemembers_0x79.html | 105 - 3party/glm/doc/api/namespacemembers_0x7a.html | 96 - 3party/glm/doc/api/namespacemembers_func.html | 173 - .../doc/api/namespacemembers_func_0x62.html | 119 - .../doc/api/namespacemembers_func_0x63.html | 158 - .../doc/api/namespacemembers_func_0x64.html | 137 - .../doc/api/namespacemembers_func_0x65.html | 161 - .../doc/api/namespacemembers_func_0x66.html | 194 - .../doc/api/namespacemembers_func_0x67.html | 104 - .../doc/api/namespacemembers_func_0x68.html | 107 - .../doc/api/namespacemembers_func_0x69.html | 158 - .../doc/api/namespacemembers_func_0x6c.html | 152 - .../doc/api/namespacemembers_func_0x6d.html | 182 - .../doc/api/namespacemembers_func_0x6e.html | 122 - .../doc/api/namespacemembers_func_0x6f.html | 122 - .../doc/api/namespacemembers_func_0x70.html | 206 - .../doc/api/namespacemembers_func_0x71.html | 98 - .../doc/api/namespacemembers_func_0x72.html | 179 - .../doc/api/namespacemembers_func_0x73.html | 158 - .../doc/api/namespacemembers_func_0x74.html | 134 - .../doc/api/namespacemembers_func_0x75.html | 173 - .../doc/api/namespacemembers_func_0x76.html | 95 - .../doc/api/namespacemembers_func_0x79.html | 104 - .../doc/api/namespacemembers_func_0x7a.html | 95 - 3party/glm/doc/api/namespacemembers_type.html | 139 - .../doc/api/namespacemembers_type_0x64.html | 181 - .../doc/api/namespacemembers_type_0x66.html | 298 - .../doc/api/namespacemembers_type_0x68.html | 646 -- .../doc/api/namespacemembers_type_0x69.html | 256 - .../doc/api/namespacemembers_type_0x6c.html | 646 -- .../doc/api/namespacemembers_type_0x6d.html | 682 -- .../doc/api/namespacemembers_type_0x71.html | 88 - .../doc/api/namespacemembers_type_0x73.html | 103 - .../doc/api/namespacemembers_type_0x75.html | 217 - .../doc/api/namespacemembers_type_0x76.html | 94 - .../doc/api/namespacemembers_type_0x77.html | 85 - 3party/glm/doc/api/namespaces.html | 64 - 3party/glm/doc/api/nav_f.png | Bin 153 -> 0 bytes 3party/glm/doc/api/nav_g.png | Bin 95 -> 0 bytes 3party/glm/doc/api/nav_h.png | Bin 98 -> 0 bytes 3party/glm/doc/api/open.png | Bin 123 -> 0 bytes 3party/glm/doc/api/pages.html | 59 - 3party/glm/doc/api/sync_off.png | Bin 853 -> 0 bytes 3party/glm/doc/api/sync_on.png | Bin 845 -> 0 bytes 3party/glm/doc/api/tab_a.png | Bin 142 -> 0 bytes 3party/glm/doc/api/tab_b.png | Bin 169 -> 0 bytes 3party/glm/doc/api/tab_h.png | Bin 177 -> 0 bytes 3party/glm/doc/api/tab_s.png | Bin 184 -> 0 bytes 3party/glm/doc/api/tabs.css | 79 - 3party/glm/doc/glm.docx | Bin 1091062 -> 0 bytes 3party/glm/doc/glm.pdf | Bin 1200201 -> 0 bytes 3party/glm/doc/logo.png | Bin 8453 -> 0 bytes 3party/glm/doc/man.doxy | 2311 ----- 3party/glm/doc/pages.doxy | 55 - 3party/glm/doc/theme/doxygen.css | 865 -- 3party/glm/doc/theme/tabs.css | 79 - 3party/glm/doc/~$glm.docx | Bin 162 -> 0 bytes 3party/glm/glm/CMakeLists.txt | 42 - 3party/glm/glm/common.hpp | 34 - 3party/glm/glm/detail/_features.hpp | 427 - 3party/glm/glm/detail/_fixes.hpp | 55 - 3party/glm/glm/detail/_literals.hpp | 51 - 3party/glm/glm/detail/_noise.hpp | 130 - 3party/glm/glm/detail/_swizzle.hpp | 840 -- 3party/glm/glm/detail/_swizzle_func.hpp | 724 -- 3party/glm/glm/detail/_vectorize.hpp | 217 - 3party/glm/glm/detail/dummy.cpp | 190 - 3party/glm/glm/detail/func_common.hpp | 472 - 3party/glm/glm/detail/func_common.inl | 1036 -- 3party/glm/glm/detail/func_exponential.hpp | 132 - 3party/glm/glm/detail/func_exponential.inl | 247 - 3party/glm/glm/detail/func_geometric.hpp | 151 - 3party/glm/glm/detail/func_geometric.inl | 339 - 3party/glm/glm/detail/func_integer.hpp | 203 - 3party/glm/glm/detail/func_integer.inl | 654 -- 3party/glm/glm/detail/func_matrix.hpp | 179 - 3party/glm/glm/detail/func_matrix.inl | 460 - 3party/glm/glm/detail/func_noise.hpp | 92 - 3party/glm/glm/detail/func_noise.inl | 384 - 3party/glm/glm/detail/func_packing.hpp | 195 - 3party/glm/glm/detail/func_packing.inl | 120 - 3party/glm/glm/detail/func_trigonometric.hpp | 203 - 3party/glm/glm/detail/func_trigonometric.inl | 246 - .../glm/glm/detail/func_vector_relational.hpp | 145 - .../glm/glm/detail/func_vector_relational.inl | 159 - 3party/glm/glm/detail/glm.cpp | 288 - 3party/glm/glm/detail/hint.hpp | 40 - 3party/glm/glm/detail/intrinsic_common.hpp | 89 - 3party/glm/glm/detail/intrinsic_common.inl | 313 - .../glm/glm/detail/intrinsic_exponential.hpp | 79 - .../glm/glm/detail/intrinsic_exponential.inl | 27 - 3party/glm/glm/detail/intrinsic_geometric.hpp | 76 - 3party/glm/glm/detail/intrinsic_geometric.inl | 146 - 3party/glm/glm/detail/intrinsic_integer.hpp | 50 - 3party/glm/glm/detail/intrinsic_integer.inl | 139 - 3party/glm/glm/detail/intrinsic_matrix.hpp | 69 - 3party/glm/glm/detail/intrinsic_matrix.inl | 1070 -- .../glm/detail/intrinsic_trigonometric.hpp | 48 - .../glm/detail/intrinsic_trigonometric.inl | 27 - .../detail/intrinsic_vector_relational.hpp | 48 - .../detail/intrinsic_vector_relational.inl | 366 - 3party/glm/glm/detail/precision.hpp | 43 - 3party/glm/glm/detail/precision.inl | 0 3party/glm/glm/detail/setup.hpp | 784 -- 3party/glm/glm/detail/type_float.hpp | 95 - 3party/glm/glm/detail/type_gentype.hpp | 223 - 3party/glm/glm/detail/type_gentype.inl | 366 - 3party/glm/glm/detail/type_half.hpp | 51 - 3party/glm/glm/detail/type_half.inl | 273 - 3party/glm/glm/detail/type_int.hpp | 191 - 3party/glm/glm/detail/type_mat.hpp | 795 -- 3party/glm/glm/detail/type_mat.inl | 27 - 3party/glm/glm/detail/type_mat2x2.hpp | 249 - 3party/glm/glm/detail/type_mat2x2.inl | 654 -- 3party/glm/glm/detail/type_mat2x3.hpp | 211 - 3party/glm/glm/detail/type_mat2x3.inl | 588 -- 3party/glm/glm/detail/type_mat2x4.hpp | 213 - 3party/glm/glm/detail/type_mat2x4.inl | 607 -- 3party/glm/glm/detail/type_mat3x2.hpp | 216 - 3party/glm/glm/detail/type_mat3x2.inl | 621 -- 3party/glm/glm/detail/type_mat3x3.hpp | 253 - 3party/glm/glm/detail/type_mat3x3.inl | 784 -- 3party/glm/glm/detail/type_mat3x4.hpp | 216 - 3party/glm/glm/detail/type_mat3x4.inl | 653 -- 3party/glm/glm/detail/type_mat4x2.hpp | 222 - 3party/glm/glm/detail/type_mat4x2.inl | 672 -- 3party/glm/glm/detail/type_mat4x3.hpp | 222 - 3party/glm/glm/detail/type_mat4x3.inl | 704 -- 3party/glm/glm/detail/type_mat4x4.hpp | 260 - 3party/glm/glm/detail/type_mat4x4.inl | 902 -- 3party/glm/glm/detail/type_vec.hpp | 516 - 3party/glm/glm/detail/type_vec.inl | 27 - 3party/glm/glm/detail/type_vec1.hpp | 277 - 3party/glm/glm/detail/type_vec1.inl | 811 -- 3party/glm/glm/detail/type_vec2.hpp | 315 - 3party/glm/glm/detail/type_vec2.inl | 831 -- 3party/glm/glm/detail/type_vec3.hpp | 333 - 3party/glm/glm/detail/type_vec3.inl | 881 -- 3party/glm/glm/detail/type_vec4.hpp | 376 - 3party/glm/glm/detail/type_vec4.inl | 992 -- 3party/glm/glm/exponential.hpp | 34 - 3party/glm/glm/ext.hpp | 138 - 3party/glm/glm/fwd.hpp | 2598 ----- 3party/glm/glm/geometric.hpp | 34 - 3party/glm/glm/glm.hpp | 117 - 3party/glm/glm/gtc/constants.hpp | 185 - 3party/glm/glm/gtc/constants.inl | 182 - 3party/glm/glm/gtc/epsilon.hpp | 101 - 3party/glm/glm/gtc/epsilon.inl | 150 - 3party/glm/glm/gtc/matrix_access.hpp | 87 - 3party/glm/glm/gtc/matrix_access.inl | 88 - 3party/glm/glm/gtc/matrix_integer.hpp | 514 - 3party/glm/glm/gtc/matrix_inverse.hpp | 74 - 3party/glm/glm/gtc/matrix_inverse.inl | 163 - 3party/glm/glm/gtc/matrix_transform.hpp | 306 - 3party/glm/glm/gtc/matrix_transform.inl | 442 - 3party/glm/glm/gtc/noise.hpp | 81 - 3party/glm/glm/gtc/noise.inl | 838 -- 3party/glm/glm/gtc/packing.hpp | 478 - 3party/glm/glm/gtc/packing.inl | 496 - 3party/glm/glm/gtc/quaternion.hpp | 404 - 3party/glm/glm/gtc/quaternion.inl | 925 -- 3party/glm/glm/gtc/random.hpp | 114 - 3party/glm/glm/gtc/random.inl | 171 - 3party/glm/glm/gtc/reciprocal.hpp | 133 - 3party/glm/glm/gtc/reciprocal.inl | 202 - 3party/glm/glm/gtc/type_precision.hpp | 874 -- 3party/glm/glm/gtc/type_precision.inl | 32 - 3party/glm/glm/gtc/type_ptr.hpp | 179 - 3party/glm/glm/gtc/type_ptr.inl | 475 - 3party/glm/glm/gtc/ulp.hpp | 92 - 3party/glm/glm/gtc/ulp.inl | 338 - 3party/glm/glm/gtx/associated_min_max.hpp | 106 - 3party/glm/glm/gtx/associated_min_max.inl | 912 -- 3party/glm/glm/gtx/bit.hpp | 234 - 3party/glm/glm/gtx/bit.inl | 782 -- 3party/glm/glm/gtx/closest_point.hpp | 66 - 3party/glm/glm/gtx/closest_point.inl | 36 - 3party/glm/glm/gtx/color_space.hpp | 96 - 3party/glm/glm/gtx/color_space.inl | 149 - 3party/glm/glm/gtx/color_space_YCoCg.hpp | 84 - 3party/glm/glm/gtx/color_space_YCoCg.inl | 64 - 3party/glm/glm/gtx/compatibility.hpp | 160 - 3party/glm/glm/gtx/compatibility.inl | 58 - 3party/glm/glm/gtx/component_wise.hpp | 82 - 3party/glm/glm/gtx/component_wise.inl | 47 - 3party/glm/glm/gtx/constants.hpp | 33 - 3party/glm/glm/gtx/dual_quaternion.hpp | 295 - 3party/glm/glm/gtx/dual_quaternion.inl | 421 - 3party/glm/glm/gtx/epsilon.hpp | 29 - 3party/glm/glm/gtx/euler_angles.hpp | 155 - 3party/glm/glm/gtx/euler_angles.inl | 264 - 3party/glm/glm/gtx/extend.hpp | 66 - 3party/glm/glm/gtx/extend.inl | 55 - 3party/glm/glm/gtx/extented_min_max.hpp | 161 - 3party/glm/glm/gtx/extented_min_max.inl | 146 - 3party/glm/glm/gtx/fast_exponential.hpp | 98 - 3party/glm/glm/gtx/fast_exponential.inl | 148 - 3party/glm/glm/gtx/fast_square_root.hpp | 90 - 3party/glm/glm/gtx/fast_square_root.inl | 180 - 3party/glm/glm/gtx/fast_trigonometry.hpp | 100 - 3party/glm/glm/gtx/fast_trigonometry.inl | 75 - 3party/glm/glm/gtx/gradient_paint.hpp | 76 - 3party/glm/glm/gtx/gradient_paint.inl | 43 - .../glm/glm/gtx/handed_coordinate_space.hpp | 74 - .../glm/glm/gtx/handed_coordinate_space.inl | 33 - 3party/glm/glm/gtx/inertia.hpp | 116 - 3party/glm/glm/gtx/inertia.inl | 116 - 3party/glm/glm/gtx/int_10_10_10_2.hpp | 44 - 3party/glm/glm/gtx/int_10_10_10_2.inl | 33 - 3party/glm/glm/gtx/integer.hpp | 104 - 3party/glm/glm/gtx/integer.inl | 202 - 3party/glm/glm/gtx/intersect.hpp | 111 - 3party/glm/glm/gtx/intersect.inl | 217 - 3party/glm/glm/gtx/io.hpp | 226 - 3party/glm/glm/gtx/io.inl | 598 -- 3party/glm/glm/gtx/log_base.hpp | 65 - 3party/glm/glm/gtx/log_base.inl | 24 - 3party/glm/glm/gtx/matrix_cross_product.hpp | 71 - 3party/glm/glm/gtx/matrix_cross_product.inl | 44 - 3party/glm/glm/gtx/matrix_interpolation.hpp | 88 - 3party/glm/glm/gtx/matrix_interpolation.inl | 140 - 3party/glm/glm/gtx/matrix_major_storage.hpp | 143 - 3party/glm/glm/gtx/matrix_major_storage.inl | 173 - 3party/glm/glm/gtx/matrix_operation.hpp | 112 - 3party/glm/glm/gtx/matrix_operation.inl | 124 - 3party/glm/glm/gtx/matrix_query.hpp | 101 - 3party/glm/glm/gtx/matrix_query.inl | 123 - 3party/glm/glm/gtx/matrix_transform_2d.hpp | 105 - 3party/glm/glm/gtx/matrix_transform_2d.inl | 97 - 3party/glm/glm/gtx/mixed_product.hpp | 65 - 3party/glm/glm/gtx/mixed_product.inl | 22 - 3party/glm/glm/gtx/multiple.hpp | 83 - 3party/glm/glm/gtx/multiple.inl | 152 - 3party/glm/glm/gtx/noise.hpp | 29 - 3party/glm/glm/gtx/norm.hpp | 127 - 3party/glm/glm/gtx/norm.inl | 147 - 3party/glm/glm/gtx/normal.hpp | 67 - 3party/glm/glm/gtx/normal.inl | 22 - 3party/glm/glm/gtx/normalize_dot.hpp | 76 - 3party/glm/glm/gtx/normalize_dot.inl | 115 - 3party/glm/glm/gtx/number_precision.hpp | 85 - 3party/glm/glm/gtx/number_precision.inl | 13 - 3party/glm/glm/gtx/optimum_pow.hpp | 94 - 3party/glm/glm/gtx/optimum_pow.inl | 61 - 3party/glm/glm/gtx/orthonormalize.hpp | 72 - 3party/glm/glm/gtx/orthonormalize.inl | 43 - 3party/glm/glm/gtx/perpendicular.hpp | 67 - 3party/glm/glm/gtx/perpendicular.inl | 21 - 3party/glm/glm/gtx/polar_coordinates.hpp | 72 - 3party/glm/glm/gtx/polar_coordinates.inl | 57 - 3party/glm/glm/gtx/projection.hpp | 65 - 3party/glm/glm/gtx/projection.inl | 21 - 3party/glm/glm/gtx/quaternion.hpp | 213 - 3party/glm/glm/gtx/quaternion.inl | 262 - 3party/glm/glm/gtx/random.hpp | 29 - 3party/glm/glm/gtx/raw_data.hpp | 75 - 3party/glm/glm/gtx/raw_data.inl | 11 - 3party/glm/glm/gtx/reciprocal.hpp | 26 - 3party/glm/glm/gtx/rotate_normalized_axis.hpp | 92 - 3party/glm/glm/gtx/rotate_normalized_axis.inl | 94 - 3party/glm/glm/gtx/rotate_vector.hpp | 132 - 3party/glm/glm/gtx/rotate_vector.inl | 223 - 3party/glm/glm/gtx/scalar_relational.hpp | 60 - 3party/glm/glm/gtx/scalar_relational.inl | 95 - 3party/glm/glm/gtx/simd_mat4.hpp | 205 - 3party/glm/glm/gtx/simd_mat4.inl | 579 -- 3party/glm/glm/gtx/simd_quat.hpp | 341 - 3party/glm/glm/gtx/simd_quat.inl | 629 -- 3party/glm/glm/gtx/simd_vec4.hpp | 574 -- 3party/glm/glm/gtx/simd_vec4.inl | 727 -- 3party/glm/glm/gtx/spline.hpp | 90 - 3party/glm/glm/gtx/spline.inl | 70 - 3party/glm/glm/gtx/std_based_type.hpp | 83 - 3party/glm/glm/gtx/std_based_type.inl | 13 - 3party/glm/glm/gtx/string_cast.hpp | 74 - 3party/glm/glm/gtx/string_cast.inl | 444 - 3party/glm/glm/gtx/transform.hpp | 84 - 3party/glm/glm/gtx/transform.inl | 37 - 3party/glm/glm/gtx/transform2.hpp | 135 - 3party/glm/glm/gtx/transform2.inl | 154 - 3party/glm/glm/gtx/ulp.hpp | 29 - 3party/glm/glm/gtx/unsigned_int.hpp | 26 - 3party/glm/glm/gtx/unsigned_int.inl | 13 - 3party/glm/glm/gtx/vec1.hpp | 166 - 3party/glm/glm/gtx/vec1.inl | 27 - 3party/glm/glm/gtx/vector_angle.hpp | 88 - 3party/glm/glm/gtx/vector_angle.inl | 99 - 3party/glm/glm/gtx/vector_query.hpp | 90 - 3party/glm/glm/gtx/vector_query.inl | 202 - 3party/glm/glm/gtx/wrap.hpp | 73 - 3party/glm/glm/gtx/wrap.inl | 165 - 3party/glm/glm/integer.hpp | 34 - 3party/glm/glm/mat2x2.hpp | 80 - 3party/glm/glm/mat2x3.hpp | 59 - 3party/glm/glm/mat2x4.hpp | 59 - 3party/glm/glm/mat3x2.hpp | 59 - 3party/glm/glm/mat3x3.hpp | 80 - 3party/glm/glm/mat3x4.hpp | 59 - 3party/glm/glm/mat4x2.hpp | 59 - 3party/glm/glm/mat4x3.hpp | 59 - 3party/glm/glm/mat4x4.hpp | 80 - 3party/glm/glm/matrix.hpp | 34 - 3party/glm/glm/packing.hpp | 34 - 3party/glm/glm/trigonometric.hpp | 34 - 3party/glm/glm/vec2.hpp | 34 - 3party/glm/glm/vec3.hpp | 34 - 3party/glm/glm/vec4.hpp | 34 - 3party/glm/glm/vector_relational.hpp | 34 - 3party/glm/glm_config.hpp | 13 - 3party/glm/readme.txt | 723 -- 3party/glm/test/CMakeLists.txt | 17 - 3party/glm/test/bug/CMakeLists.txt | 0 3party/glm/test/core/CMakeLists.txt | 32 - 3party/glm/test/core/core_func_common.cpp | 645 -- .../glm/test/core/core_func_exponential.cpp | 45 - 3party/glm/test/core/core_func_geometric.cpp | 72 - 3party/glm/test/core/core_func_integer.cpp | 251 - 3party/glm/test/core/core_func_matrix.cpp | 251 - 3party/glm/test/core/core_func_noise.cpp | 18 - 3party/glm/test/core/core_func_packing.cpp | 165 - 3party/glm/test/core/core_func_swizzle.cpp | 87 - .../glm/test/core/core_func_trigonometric.cpp | 19 - .../test/core/core_func_vector_relational.cpp | 19 - 3party/glm/test/core/core_setup_message.cpp | 272 - 3party/glm/test/core/core_setup_precision.cpp | 67 - 3party/glm/test/core/core_type_cast.cpp | 154 - 3party/glm/test/core/core_type_float.cpp | 41 - 3party/glm/test/core/core_type_int.cpp | 53 - 3party/glm/test/core/core_type_length.cpp | 89 - 3party/glm/test/core/core_type_mat2x2.cpp | 111 - 3party/glm/test/core/core_type_mat2x3.cpp | 84 - 3party/glm/test/core/core_type_mat2x4.cpp | 87 - 3party/glm/test/core/core_type_mat3x2.cpp | 90 - 3party/glm/test/core/core_type_mat3x3.cpp | 150 - 3party/glm/test/core/core_type_mat3x4.cpp | 89 - 3party/glm/test/core/core_type_mat4x2.cpp | 93 - 3party/glm/test/core/core_type_mat4x3.cpp | 94 - 3party/glm/test/core/core_type_mat4x4.cpp | 257 - 3party/glm/test/core/core_type_vec1.cpp | 58 - 3party/glm/test/core/core_type_vec2.cpp | 289 - 3party/glm/test/core/core_type_vec3.cpp | 455 - 3party/glm/test/core/core_type_vec4.cpp | 390 - 3party/glm/test/external/gli/CMakeLists.txt | 27 - 3party/glm/test/external/gli/core/dummy.cpp | 4 - .../external/gli/core/generate_mipmaps.hpp | 25 - .../external/gli/core/generate_mipmaps.inl | 69 - 3party/glm/test/external/gli/core/image2d.hpp | 169 - 3party/glm/test/external/gli/core/image2d.inl | 229 - .../glm/test/external/gli/core/operation.hpp | 82 - .../glm/test/external/gli/core/operation.inl | 233 - .../glm/test/external/gli/core/operator.hpp | 28 - .../glm/test/external/gli/core/operator.inl | 210 - .../test/external/gli/core/shared_array.hpp | 48 - .../test/external/gli/core/shared_array.inl | 151 - .../glm/test/external/gli/core/shared_ptr.hpp | 41 - .../glm/test/external/gli/core/shared_ptr.inl | 125 - 3party/glm/test/external/gli/core/size.hpp | 31 - 3party/glm/test/external/gli/core/size.inl | 47 - .../glm/test/external/gli/core/texture2d.hpp | 122 - .../glm/test/external/gli/core/texture2d.inl | 304 - .../external/gli/core/texture2d_array.hpp | 59 - .../external/gli/core/texture2d_array.inl | 78 - .../test/external/gli/core/texture_cube.hpp | 65 - .../test/external/gli/core/texture_cube.inl | 70 - .../external/gli/core/texture_cube_array.hpp | 59 - .../external/gli/core/texture_cube_array.inl | 72 - 3party/glm/test/external/gli/gli.hpp | 31 - .../glm/test/external/gli/gtx/compression.hpp | 27 - .../glm/test/external/gli/gtx/compression.inl | 8 - 3party/glm/test/external/gli/gtx/fetch.hpp | 46 - 3party/glm/test/external/gli/gtx/fetch.inl | 91 - .../test/external/gli/gtx/gl_texture2d.hpp | 33 - .../test/external/gli/gtx/gl_texture2d.inl | 210 - 3party/glm/test/external/gli/gtx/gradient.hpp | 38 - 3party/glm/test/external/gli/gtx/gradient.inl | 74 - 3party/glm/test/external/gli/gtx/loader.hpp | 37 - 3party/glm/test/external/gli/gtx/loader.inl | 46 - .../test/external/gli/gtx/loader_dds10.hpp | 35 - .../test/external/gli/gtx/loader_dds10.inl | 595 -- .../glm/test/external/gli/gtx/loader_dds9.hpp | 39 - .../glm/test/external/gli/gtx/loader_dds9.inl | 790 -- .../glm/test/external/gli/gtx/loader_tga.hpp | 36 - .../glm/test/external/gli/gtx/loader_tga.inl | 159 - 3party/glm/test/external/gli/gtx/wavelet.hpp | 27 - 3party/glm/test/external/gli/gtx/wavelet.inl | 8 - 3party/glm/test/glm.cppcheck | 6 - 3party/glm/test/gtc/CMakeLists.txt | 14 - 3party/glm/test/gtc/gtc_constants.cpp | 38 - 3party/glm/test/gtc/gtc_epsilon.cpp | 87 - 3party/glm/test/gtc/gtc_matrix_access.cpp | 391 - 3party/glm/test/gtc/gtc_matrix_integer.cpp | 18 - 3party/glm/test/gtc/gtc_matrix_inverse.cpp | 18 - 3party/glm/test/gtc/gtc_matrix_transform.cpp | 64 - 3party/glm/test/gtc/gtc_noise.cpp | 199 - 3party/glm/test/gtc/gtc_packing.cpp | 267 - 3party/glm/test/gtc/gtc_quaternion.cpp | 308 - 3party/glm/test/gtc/gtc_random.cpp | 197 - 3party/glm/test/gtc/gtc_reciprocal.cpp | 18 - 3party/glm/test/gtc/gtc_type_precision.cpp | 900 -- 3party/glm/test/gtc/gtc_type_ptr.cpp | 262 - 3party/glm/test/gtc/gtc_ulp.cpp | 107 - 3party/glm/test/gtx/CMakeLists.txt | 47 - .../glm/test/gtx/gtx_associated_min_max.cpp | 19 - 3party/glm/test/gtx/gtx_bit.cpp | 515 - 3party/glm/test/gtx/gtx_closest_point.cpp | 19 - 3party/glm/test/gtx/gtx_color_space.cpp | 30 - 3party/glm/test/gtx/gtx_color_space_YCoCg.cpp | 19 - 3party/glm/test/gtx/gtx_compatibility.cpp | 19 - 3party/glm/test/gtx/gtx_component_wise.cpp | 19 - 3party/glm/test/gtx/gtx_dual_quaternion.cpp | 175 - 3party/glm/test/gtx/gtx_euler_angle.cpp | 338 - 3party/glm/test/gtx/gtx_extend.cpp | 19 - 3party/glm/test/gtx/gtx_extented_min_max.cpp | 19 - 3party/glm/test/gtx/gtx_fast_exponential.cpp | 19 - 3party/glm/test/gtx/gtx_fast_square_root.cpp | 55 - 3party/glm/test/gtx/gtx_fast_trigonometry.cpp | 19 - 3party/glm/test/gtx/gtx_gradient_paint.cpp | 43 - .../test/gtx/gtx_handed_coordinate_space.cpp | 19 - 3party/glm/test/gtx/gtx_inertia.cpp | 19 - 3party/glm/test/gtx/gtx_int_10_10_10_2.cpp | 18 - 3party/glm/test/gtx/gtx_integer.cpp | 72 - 3party/glm/test/gtx/gtx_intersect.cpp | 19 - 3party/glm/test/gtx/gtx_io.cpp | 197 - 3party/glm/test/gtx/gtx_log_base.cpp | 19 - .../glm/test/gtx/gtx_matrix_cross_product.cpp | 19 - .../glm/test/gtx/gtx_matrix_interpolation.cpp | 20 - .../glm/test/gtx/gtx_matrix_major_storage.cpp | 19 - 3party/glm/test/gtx/gtx_matrix_operation.cpp | 19 - 3party/glm/test/gtx/gtx_matrix_query.cpp | 75 - .../glm/test/gtx/gtx_matrix_transform_2d.cpp | 18 - 3party/glm/test/gtx/gtx_mixed_product.cpp | 18 - 3party/glm/test/gtx/gtx_multiple.cpp | 116 - 3party/glm/test/gtx/gtx_norm.cpp | 19 - 3party/glm/test/gtx/gtx_normal.cpp | 19 - 3party/glm/test/gtx/gtx_normalize_dot.cpp | 19 - 3party/glm/test/gtx/gtx_number_precision.cpp | 19 - 3party/glm/test/gtx/gtx_optimum_pow.cpp | 20 - 3party/glm/test/gtx/gtx_orthonormalize.cpp | 20 - 3party/glm/test/gtx/gtx_perpendicular.cpp | 20 - 3party/glm/test/gtx/gtx_polar_coordinates.cpp | 20 - 3party/glm/test/gtx/gtx_projection.cpp | 20 - 3party/glm/test/gtx/gtx_quaternion.cpp | 111 - 3party/glm/test/gtx/gtx_random.cpp | 99 - .../test/gtx/gtx_rotate_normalized_axis.cpp | 38 - 3party/glm/test/gtx/gtx_rotate_vector.cpp | 85 - 3party/glm/test/gtx/gtx_scalar_relational.cpp | 180 - 3party/glm/test/gtx/gtx_simd_mat4.cpp | 305 - 3party/glm/test/gtx/gtx_simd_vec4.cpp | 50 - 3party/glm/test/gtx/gtx_spline.cpp | 108 - 3party/glm/test/gtx/gtx_string_cast.cpp | 90 - 3party/glm/test/gtx/gtx_vector_angle.cpp | 69 - 3party/glm/test/gtx/gtx_vector_query.cpp | 89 - 3party/glm/util/CMakeLists.txt | 3 - 3party/glm/util/FindGLM.cmake | 63 - 3party/glm/util/autoexp.txt | 28 - 3party/glm/util/autoexp.vc2010.dat | 3896 ------- 3party/glm/util/glm.natvis | 31 - 3party/glm/util/usertype.dat | 407 - 844 files changed, 174104 deletions(-) delete mode 100755 3party/glm/CMakeLists.txt delete mode 100755 3party/glm/CTestConfig.cmake delete mode 100755 3party/glm/cmake/GNUInstallDirs.cmake delete mode 100755 3party/glm/copying.txt delete mode 100755 3party/glm/doc/api/a00002.html delete mode 100755 3party/glm/doc/api/a00004_source.html delete mode 100755 3party/glm/doc/api/a00005_source.html delete mode 100755 3party/glm/doc/api/a00006_source.html delete mode 100755 3party/glm/doc/api/a00007.html delete mode 100755 3party/glm/doc/api/a00007_source.html delete mode 100755 3party/glm/doc/api/a00008_source.html delete mode 100755 3party/glm/doc/api/a00009_source.html delete mode 100755 3party/glm/doc/api/a00010_source.html delete mode 100755 3party/glm/doc/api/a00011.html delete mode 100755 3party/glm/doc/api/a00011_source.html delete mode 100755 3party/glm/doc/api/a00012.html delete mode 100755 3party/glm/doc/api/a00012_source.html delete mode 100755 3party/glm/doc/api/a00013_source.html delete mode 100755 3party/glm/doc/api/a00014.html delete mode 100755 3party/glm/doc/api/a00014_source.html delete mode 100755 3party/glm/doc/api/a00015.html delete mode 100755 3party/glm/doc/api/a00015_source.html delete mode 100755 3party/glm/doc/api/a00016.html delete mode 100755 3party/glm/doc/api/a00016_source.html delete mode 100755 3party/glm/doc/api/a00017.html delete mode 100755 3party/glm/doc/api/a00017_source.html delete mode 100755 3party/glm/doc/api/a00018.html delete mode 100755 3party/glm/doc/api/a00018_source.html delete mode 100755 3party/glm/doc/api/a00019.html delete mode 100755 3party/glm/doc/api/a00019_source.html delete mode 100755 3party/glm/doc/api/a00020_source.html delete mode 100755 3party/glm/doc/api/a00021.html delete mode 100755 3party/glm/doc/api/a00021_source.html delete mode 100755 3party/glm/doc/api/a00022.html delete mode 100755 3party/glm/doc/api/a00022_source.html delete mode 100755 3party/glm/doc/api/a00023_source.html delete mode 100755 3party/glm/doc/api/a00024.html delete mode 100755 3party/glm/doc/api/a00024_source.html delete mode 100755 3party/glm/doc/api/a00025.html delete mode 100755 3party/glm/doc/api/a00025_source.html delete mode 100755 3party/glm/doc/api/a00026_source.html delete mode 100755 3party/glm/doc/api/a00027.html delete mode 100755 3party/glm/doc/api/a00027_source.html delete mode 100755 3party/glm/doc/api/a00028.html delete mode 100755 3party/glm/doc/api/a00028_source.html delete mode 100755 3party/glm/doc/api/a00029.html delete mode 100755 3party/glm/doc/api/a00029_source.html delete mode 100755 3party/glm/doc/api/a00030.html delete mode 100755 3party/glm/doc/api/a00030_source.html delete mode 100755 3party/glm/doc/api/a00031.html delete mode 100755 3party/glm/doc/api/a00031_source.html delete mode 100755 3party/glm/doc/api/a00032_source.html delete mode 100755 3party/glm/doc/api/a00033_source.html delete mode 100755 3party/glm/doc/api/a00034_source.html delete mode 100755 3party/glm/doc/api/a00035_source.html delete mode 100755 3party/glm/doc/api/a00036_source.html delete mode 100755 3party/glm/doc/api/a00037_source.html delete mode 100755 3party/glm/doc/api/a00038_source.html delete mode 100755 3party/glm/doc/api/a00039_source.html delete mode 100755 3party/glm/doc/api/a00040_source.html delete mode 100755 3party/glm/doc/api/a00041.html delete mode 100755 3party/glm/doc/api/a00041_source.html delete mode 100755 3party/glm/doc/api/a00042.html delete mode 100755 3party/glm/doc/api/a00042_source.html delete mode 100755 3party/glm/doc/api/a00043.html delete mode 100755 3party/glm/doc/api/a00043_source.html delete mode 100755 3party/glm/doc/api/a00044.html delete mode 100755 3party/glm/doc/api/a00044_source.html delete mode 100755 3party/glm/doc/api/a00045.html delete mode 100755 3party/glm/doc/api/a00045_source.html delete mode 100755 3party/glm/doc/api/a00046_source.html delete mode 100755 3party/glm/doc/api/a00047.html delete mode 100755 3party/glm/doc/api/a00047_source.html delete mode 100755 3party/glm/doc/api/a00048_source.html delete mode 100755 3party/glm/doc/api/a00049.html delete mode 100755 3party/glm/doc/api/a00049_source.html delete mode 100755 3party/glm/doc/api/a00050.html delete mode 100755 3party/glm/doc/api/a00050_source.html delete mode 100755 3party/glm/doc/api/a00051.html delete mode 100755 3party/glm/doc/api/a00051_source.html delete mode 100755 3party/glm/doc/api/a00052_source.html delete mode 100755 3party/glm/doc/api/a00053_source.html delete mode 100755 3party/glm/doc/api/a00054_source.html delete mode 100755 3party/glm/doc/api/a00055_source.html delete mode 100755 3party/glm/doc/api/a00056_source.html delete mode 100755 3party/glm/doc/api/a00057_source.html delete mode 100755 3party/glm/doc/api/a00058_source.html delete mode 100755 3party/glm/doc/api/a00059.html delete mode 100755 3party/glm/doc/api/a00059_source.html delete mode 100755 3party/glm/doc/api/a00060.html delete mode 100755 3party/glm/doc/api/a00060_source.html delete mode 100755 3party/glm/doc/api/a00061_source.html delete mode 100755 3party/glm/doc/api/a00062.html delete mode 100755 3party/glm/doc/api/a00062_source.html delete mode 100755 3party/glm/doc/api/a00063.html delete mode 100755 3party/glm/doc/api/a00063_source.html delete mode 100755 3party/glm/doc/api/a00064.html delete mode 100755 3party/glm/doc/api/a00064_source.html delete mode 100755 3party/glm/doc/api/a00065.html delete mode 100755 3party/glm/doc/api/a00065_source.html delete mode 100755 3party/glm/doc/api/a00066.html delete mode 100755 3party/glm/doc/api/a00066_source.html delete mode 100755 3party/glm/doc/api/a00067.html delete mode 100755 3party/glm/doc/api/a00067_source.html delete mode 100755 3party/glm/doc/api/a00068.html delete mode 100755 3party/glm/doc/api/a00068_source.html delete mode 100755 3party/glm/doc/api/a00069_source.html delete mode 100755 3party/glm/doc/api/a00070.html delete mode 100755 3party/glm/doc/api/a00070_source.html delete mode 100755 3party/glm/doc/api/a00071.html delete mode 100755 3party/glm/doc/api/a00071_source.html delete mode 100755 3party/glm/doc/api/a00072.html delete mode 100755 3party/glm/doc/api/a00072_source.html delete mode 100755 3party/glm/doc/api/a00073.html delete mode 100755 3party/glm/doc/api/a00073_source.html delete mode 100755 3party/glm/doc/api/a00074.html delete mode 100755 3party/glm/doc/api/a00074_source.html delete mode 100755 3party/glm/doc/api/a00075.html delete mode 100755 3party/glm/doc/api/a00075_source.html delete mode 100755 3party/glm/doc/api/a00076.html delete mode 100755 3party/glm/doc/api/a00076_source.html delete mode 100755 3party/glm/doc/api/a00077.html delete mode 100755 3party/glm/doc/api/a00077_source.html delete mode 100755 3party/glm/doc/api/a00078.html delete mode 100755 3party/glm/doc/api/a00078_source.html delete mode 100755 3party/glm/doc/api/a00079.html delete mode 100755 3party/glm/doc/api/a00079_source.html delete mode 100755 3party/glm/doc/api/a00080.html delete mode 100755 3party/glm/doc/api/a00080_source.html delete mode 100755 3party/glm/doc/api/a00081.html delete mode 100755 3party/glm/doc/api/a00081_source.html delete mode 100755 3party/glm/doc/api/a00082.html delete mode 100755 3party/glm/doc/api/a00082_source.html delete mode 100755 3party/glm/doc/api/a00083.html delete mode 100755 3party/glm/doc/api/a00083_source.html delete mode 100755 3party/glm/doc/api/a00084_source.html delete mode 100755 3party/glm/doc/api/a00085.html delete mode 100755 3party/glm/doc/api/a00085_source.html delete mode 100755 3party/glm/doc/api/a00086.html delete mode 100755 3party/glm/doc/api/a00086_source.html delete mode 100755 3party/glm/doc/api/a00087.html delete mode 100755 3party/glm/doc/api/a00087_source.html delete mode 100755 3party/glm/doc/api/a00088.html delete mode 100755 3party/glm/doc/api/a00088_source.html delete mode 100755 3party/glm/doc/api/a00089.html delete mode 100755 3party/glm/doc/api/a00089_source.html delete mode 100755 3party/glm/doc/api/a00090.html delete mode 100755 3party/glm/doc/api/a00090_source.html delete mode 100755 3party/glm/doc/api/a00091.html delete mode 100755 3party/glm/doc/api/a00091_source.html delete mode 100755 3party/glm/doc/api/a00092.html delete mode 100755 3party/glm/doc/api/a00092_source.html delete mode 100755 3party/glm/doc/api/a00093_source.html delete mode 100755 3party/glm/doc/api/a00094.html delete mode 100755 3party/glm/doc/api/a00094_source.html delete mode 100755 3party/glm/doc/api/a00095.html delete mode 100755 3party/glm/doc/api/a00095_source.html delete mode 100755 3party/glm/doc/api/a00096_source.html delete mode 100755 3party/glm/doc/api/a00097.html delete mode 100755 3party/glm/doc/api/a00097_source.html delete mode 100755 3party/glm/doc/api/a00098.html delete mode 100755 3party/glm/doc/api/a00098_source.html delete mode 100755 3party/glm/doc/api/a00099.html delete mode 100755 3party/glm/doc/api/a00099_source.html delete mode 100755 3party/glm/doc/api/a00100.html delete mode 100755 3party/glm/doc/api/a00100_source.html delete mode 100755 3party/glm/doc/api/a00101_source.html delete mode 100755 3party/glm/doc/api/a00102.html delete mode 100755 3party/glm/doc/api/a00102_source.html delete mode 100755 3party/glm/doc/api/a00103.html delete mode 100755 3party/glm/doc/api/a00103_source.html delete mode 100755 3party/glm/doc/api/a00104_source.html delete mode 100755 3party/glm/doc/api/a00105.html delete mode 100755 3party/glm/doc/api/a00105_source.html delete mode 100755 3party/glm/doc/api/a00106.html delete mode 100755 3party/glm/doc/api/a00106_source.html delete mode 100755 3party/glm/doc/api/a00107.html delete mode 100755 3party/glm/doc/api/a00107_source.html delete mode 100755 3party/glm/doc/api/a00108_source.html delete mode 100755 3party/glm/doc/api/a00109_source.html delete mode 100755 3party/glm/doc/api/a00110.html delete mode 100755 3party/glm/doc/api/a00110_source.html delete mode 100755 3party/glm/doc/api/a00111.html delete mode 100755 3party/glm/doc/api/a00111_source.html delete mode 100755 3party/glm/doc/api/a00112.html delete mode 100755 3party/glm/doc/api/a00112_source.html delete mode 100755 3party/glm/doc/api/a00113.html delete mode 100755 3party/glm/doc/api/a00113_source.html delete mode 100755 3party/glm/doc/api/a00114.html delete mode 100755 3party/glm/doc/api/a00114_source.html delete mode 100755 3party/glm/doc/api/a00115.html delete mode 100755 3party/glm/doc/api/a00115_source.html delete mode 100755 3party/glm/doc/api/a00116.html delete mode 100755 3party/glm/doc/api/a00116_source.html delete mode 100755 3party/glm/doc/api/a00117.html delete mode 100755 3party/glm/doc/api/a00117_source.html delete mode 100755 3party/glm/doc/api/a00118_source.html delete mode 100755 3party/glm/doc/api/a00119_source.html delete mode 100755 3party/glm/doc/api/a00120_source.html delete mode 100755 3party/glm/doc/api/a00121_source.html delete mode 100755 3party/glm/doc/api/a00122_source.html delete mode 100755 3party/glm/doc/api/a00123_source.html delete mode 100755 3party/glm/doc/api/a00124_source.html delete mode 100755 3party/glm/doc/api/a00125_source.html delete mode 100755 3party/glm/doc/api/a00126_source.html delete mode 100755 3party/glm/doc/api/a00127_source.html delete mode 100755 3party/glm/doc/api/a00128_source.html delete mode 100755 3party/glm/doc/api/a00129_source.html delete mode 100755 3party/glm/doc/api/a00130_source.html delete mode 100755 3party/glm/doc/api/a00131_source.html delete mode 100755 3party/glm/doc/api/a00132.html delete mode 100755 3party/glm/doc/api/a00132_source.html delete mode 100755 3party/glm/doc/api/a00133.html delete mode 100755 3party/glm/doc/api/a00133_source.html delete mode 100755 3party/glm/doc/api/a00134_source.html delete mode 100755 3party/glm/doc/api/a00135_source.html delete mode 100755 3party/glm/doc/api/a00136_source.html delete mode 100755 3party/glm/doc/api/a00137_source.html delete mode 100755 3party/glm/doc/api/a00138_source.html delete mode 100755 3party/glm/doc/api/a00139.html delete mode 100755 3party/glm/doc/api/a00139_source.html delete mode 100755 3party/glm/doc/api/a00140_source.html delete mode 100755 3party/glm/doc/api/a00141_source.html delete mode 100755 3party/glm/doc/api/a00142.html delete mode 100755 3party/glm/doc/api/a00142_source.html delete mode 100755 3party/glm/doc/api/a00143.html delete mode 100755 3party/glm/doc/api/a00143_source.html delete mode 100755 3party/glm/doc/api/a00144.html delete mode 100755 3party/glm/doc/api/a00144_source.html delete mode 100755 3party/glm/doc/api/a00145.html delete mode 100755 3party/glm/doc/api/a00145_source.html delete mode 100755 3party/glm/doc/api/a00146.html delete mode 100755 3party/glm/doc/api/a00146_source.html delete mode 100755 3party/glm/doc/api/a00147.html delete mode 100755 3party/glm/doc/api/a00147_source.html delete mode 100755 3party/glm/doc/api/a00148.html delete mode 100755 3party/glm/doc/api/a00148_source.html delete mode 100755 3party/glm/doc/api/a00149.html delete mode 100755 3party/glm/doc/api/a00149_source.html delete mode 100755 3party/glm/doc/api/a00150.html delete mode 100755 3party/glm/doc/api/a00150_source.html delete mode 100755 3party/glm/doc/api/a00151.html delete mode 100755 3party/glm/doc/api/a00155.html delete mode 100755 3party/glm/doc/api/a00156.html delete mode 100755 3party/glm/doc/api/a00157.html delete mode 100755 3party/glm/doc/api/a00158.html delete mode 100755 3party/glm/doc/api/a00159.html delete mode 100755 3party/glm/doc/api/a00160.html delete mode 100755 3party/glm/doc/api/a00161.html delete mode 100755 3party/glm/doc/api/a00162.html delete mode 100755 3party/glm/doc/api/a00163.html delete mode 100755 3party/glm/doc/api/a00164.html delete mode 100755 3party/glm/doc/api/a00165.html delete mode 100755 3party/glm/doc/api/a00166.html delete mode 100755 3party/glm/doc/api/a00167.html delete mode 100755 3party/glm/doc/api/a00168.html delete mode 100755 3party/glm/doc/api/a00169.html delete mode 100755 3party/glm/doc/api/a00170.html delete mode 100755 3party/glm/doc/api/a00171.html delete mode 100755 3party/glm/doc/api/a00172.html delete mode 100755 3party/glm/doc/api/a00173.html delete mode 100755 3party/glm/doc/api/a00174.html delete mode 100755 3party/glm/doc/api/a00175.html delete mode 100755 3party/glm/doc/api/a00176.html delete mode 100755 3party/glm/doc/api/a00177.html delete mode 100755 3party/glm/doc/api/a00178.html delete mode 100755 3party/glm/doc/api/a00179.html delete mode 100755 3party/glm/doc/api/a00180.html delete mode 100755 3party/glm/doc/api/a00181.html delete mode 100755 3party/glm/doc/api/a00182.html delete mode 100755 3party/glm/doc/api/a00183.html delete mode 100755 3party/glm/doc/api/a00184.html delete mode 100755 3party/glm/doc/api/a00185.html delete mode 100755 3party/glm/doc/api/a00186.html delete mode 100755 3party/glm/doc/api/a00187.html delete mode 100755 3party/glm/doc/api/a00188.html delete mode 100755 3party/glm/doc/api/a00189.html delete mode 100755 3party/glm/doc/api/a00190.html delete mode 100755 3party/glm/doc/api/a00191.html delete mode 100755 3party/glm/doc/api/a00192.html delete mode 100755 3party/glm/doc/api/a00193.html delete mode 100755 3party/glm/doc/api/a00194.html delete mode 100755 3party/glm/doc/api/a00195.html delete mode 100755 3party/glm/doc/api/a00196.html delete mode 100755 3party/glm/doc/api/a00197.html delete mode 100755 3party/glm/doc/api/a00198.html delete mode 100755 3party/glm/doc/api/a00199.html delete mode 100755 3party/glm/doc/api/a00200.html delete mode 100755 3party/glm/doc/api/a00201.html delete mode 100755 3party/glm/doc/api/a00202.html delete mode 100755 3party/glm/doc/api/a00203.html delete mode 100755 3party/glm/doc/api/a00204.html delete mode 100755 3party/glm/doc/api/a00205.html delete mode 100755 3party/glm/doc/api/a00206.html delete mode 100755 3party/glm/doc/api/a00207.html delete mode 100755 3party/glm/doc/api/a00208.html delete mode 100755 3party/glm/doc/api/a00209.html delete mode 100755 3party/glm/doc/api/a00210.html delete mode 100755 3party/glm/doc/api/a00211.html delete mode 100755 3party/glm/doc/api/a00212.html delete mode 100755 3party/glm/doc/api/a00213.html delete mode 100755 3party/glm/doc/api/a00214.html delete mode 100755 3party/glm/doc/api/a00215.html delete mode 100755 3party/glm/doc/api/a00216.html delete mode 100755 3party/glm/doc/api/a00217.html delete mode 100755 3party/glm/doc/api/a00218.html delete mode 100755 3party/glm/doc/api/a00219.html delete mode 100755 3party/glm/doc/api/a00220.html delete mode 100755 3party/glm/doc/api/a00221.html delete mode 100755 3party/glm/doc/api/a00222.html delete mode 100755 3party/glm/doc/api/a00223.html delete mode 100755 3party/glm/doc/api/a00224.html delete mode 100755 3party/glm/doc/api/a00225.html delete mode 100755 3party/glm/doc/api/a00226.html delete mode 100755 3party/glm/doc/api/a00227.html delete mode 100755 3party/glm/doc/api/a00228.html delete mode 100755 3party/glm/doc/api/a00229.html delete mode 100755 3party/glm/doc/api/a00230.html delete mode 100755 3party/glm/doc/api/a00231.html delete mode 100755 3party/glm/doc/api/a00232.html delete mode 100755 3party/glm/doc/api/a00233.html delete mode 100755 3party/glm/doc/api/a00234.html delete mode 100755 3party/glm/doc/api/a00235.html delete mode 100755 3party/glm/doc/api/a00236.html delete mode 100755 3party/glm/doc/api/a00237.html delete mode 100755 3party/glm/doc/api/a00238.html delete mode 100755 3party/glm/doc/api/a00240.html delete mode 100755 3party/glm/doc/api/bc_s.png delete mode 100755 3party/glm/doc/api/bdwn.png delete mode 100755 3party/glm/doc/api/closed.png delete mode 100755 3party/glm/doc/api/dir_04e4a28b8d58785d7769817294d623f5.html delete mode 100755 3party/glm/doc/api/dir_4d1ca7e3aefdd5b86b5dba8da1c3d503.html delete mode 100755 3party/glm/doc/api/dir_6e418c18ca640a0404613de005739e2e.html delete mode 100755 3party/glm/doc/api/dir_89daaa151958d75313fcd89dd5f4bdb8.html delete mode 100755 3party/glm/doc/api/dir_8ceffd4ee35c3518d4e8bdc7e638efe8.html delete mode 100755 3party/glm/doc/api/dir_968fb7988749a6351e7b3d0c1783dec4.html delete mode 100755 3party/glm/doc/api/dir_a8d99eddac27b2368ab5252ce80ded11.html delete mode 100755 3party/glm/doc/api/dir_e3ecd7863bd215c92a17f47e2ae3be43.html delete mode 100755 3party/glm/doc/api/dir_e50778361fd4ab4de52181ed9eb2b726.html delete mode 100755 3party/glm/doc/api/dir_edf753475b928be648c1cf1c6443cf63.html delete mode 100755 3party/glm/doc/api/dir_f7324829a002c536307b42a892c06451.html delete mode 100755 3party/glm/doc/api/doxygen.css delete mode 100755 3party/glm/doc/api/doxygen.png delete mode 100755 3party/glm/doc/api/dynsections.js delete mode 100755 3party/glm/doc/api/files.html delete mode 100755 3party/glm/doc/api/ftv2blank.png delete mode 100755 3party/glm/doc/api/ftv2cl.png delete mode 100755 3party/glm/doc/api/ftv2doc.png delete mode 100755 3party/glm/doc/api/ftv2folderclosed.png delete mode 100755 3party/glm/doc/api/ftv2folderopen.png delete mode 100755 3party/glm/doc/api/ftv2lastnode.png delete mode 100755 3party/glm/doc/api/ftv2link.png delete mode 100755 3party/glm/doc/api/ftv2mlastnode.png delete mode 100755 3party/glm/doc/api/ftv2mnode.png delete mode 100755 3party/glm/doc/api/ftv2mo.png delete mode 100755 3party/glm/doc/api/ftv2node.png delete mode 100755 3party/glm/doc/api/ftv2ns.png delete mode 100755 3party/glm/doc/api/ftv2plastnode.png delete mode 100755 3party/glm/doc/api/ftv2pnode.png delete mode 100755 3party/glm/doc/api/ftv2splitbar.png delete mode 100755 3party/glm/doc/api/ftv2vertline.png delete mode 100755 3party/glm/doc/api/index.html delete mode 100755 3party/glm/doc/api/jquery.js delete mode 100755 3party/glm/doc/api/modules.html delete mode 100755 3party/glm/doc/api/namespacemembers.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x62.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x63.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x64.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x65.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x66.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x67.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x68.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x69.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x6c.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x6d.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x6e.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x6f.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x70.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x71.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x72.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x73.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x74.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x75.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x76.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x77.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x79.html delete mode 100755 3party/glm/doc/api/namespacemembers_0x7a.html delete mode 100755 3party/glm/doc/api/namespacemembers_func.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x62.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x63.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x64.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x65.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x66.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x67.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x68.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x69.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x6c.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x6d.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x6e.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x6f.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x70.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x71.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x72.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x73.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x74.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x75.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x76.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x79.html delete mode 100755 3party/glm/doc/api/namespacemembers_func_0x7a.html delete mode 100755 3party/glm/doc/api/namespacemembers_type.html delete mode 100755 3party/glm/doc/api/namespacemembers_type_0x64.html delete mode 100755 3party/glm/doc/api/namespacemembers_type_0x66.html delete mode 100755 3party/glm/doc/api/namespacemembers_type_0x68.html delete mode 100755 3party/glm/doc/api/namespacemembers_type_0x69.html delete mode 100755 3party/glm/doc/api/namespacemembers_type_0x6c.html delete mode 100755 3party/glm/doc/api/namespacemembers_type_0x6d.html delete mode 100755 3party/glm/doc/api/namespacemembers_type_0x71.html delete mode 100755 3party/glm/doc/api/namespacemembers_type_0x73.html delete mode 100755 3party/glm/doc/api/namespacemembers_type_0x75.html delete mode 100755 3party/glm/doc/api/namespacemembers_type_0x76.html delete mode 100755 3party/glm/doc/api/namespacemembers_type_0x77.html delete mode 100755 3party/glm/doc/api/namespaces.html delete mode 100755 3party/glm/doc/api/nav_f.png delete mode 100755 3party/glm/doc/api/nav_g.png delete mode 100755 3party/glm/doc/api/nav_h.png delete mode 100755 3party/glm/doc/api/open.png delete mode 100755 3party/glm/doc/api/pages.html delete mode 100755 3party/glm/doc/api/sync_off.png delete mode 100755 3party/glm/doc/api/sync_on.png delete mode 100755 3party/glm/doc/api/tab_a.png delete mode 100755 3party/glm/doc/api/tab_b.png delete mode 100755 3party/glm/doc/api/tab_h.png delete mode 100755 3party/glm/doc/api/tab_s.png delete mode 100755 3party/glm/doc/api/tabs.css delete mode 100755 3party/glm/doc/glm.docx delete mode 100755 3party/glm/doc/glm.pdf delete mode 100755 3party/glm/doc/logo.png delete mode 100755 3party/glm/doc/man.doxy delete mode 100755 3party/glm/doc/pages.doxy delete mode 100755 3party/glm/doc/theme/doxygen.css delete mode 100755 3party/glm/doc/theme/tabs.css delete mode 100755 3party/glm/doc/~$glm.docx delete mode 100755 3party/glm/glm/CMakeLists.txt delete mode 100755 3party/glm/glm/common.hpp delete mode 100755 3party/glm/glm/detail/_features.hpp delete mode 100755 3party/glm/glm/detail/_fixes.hpp delete mode 100755 3party/glm/glm/detail/_literals.hpp delete mode 100755 3party/glm/glm/detail/_noise.hpp delete mode 100755 3party/glm/glm/detail/_swizzle.hpp delete mode 100755 3party/glm/glm/detail/_swizzle_func.hpp delete mode 100755 3party/glm/glm/detail/_vectorize.hpp delete mode 100755 3party/glm/glm/detail/dummy.cpp delete mode 100755 3party/glm/glm/detail/func_common.hpp delete mode 100755 3party/glm/glm/detail/func_common.inl delete mode 100755 3party/glm/glm/detail/func_exponential.hpp delete mode 100755 3party/glm/glm/detail/func_exponential.inl delete mode 100755 3party/glm/glm/detail/func_geometric.hpp delete mode 100755 3party/glm/glm/detail/func_geometric.inl delete mode 100755 3party/glm/glm/detail/func_integer.hpp delete mode 100755 3party/glm/glm/detail/func_integer.inl delete mode 100755 3party/glm/glm/detail/func_matrix.hpp delete mode 100755 3party/glm/glm/detail/func_matrix.inl delete mode 100755 3party/glm/glm/detail/func_noise.hpp delete mode 100755 3party/glm/glm/detail/func_noise.inl delete mode 100755 3party/glm/glm/detail/func_packing.hpp delete mode 100755 3party/glm/glm/detail/func_packing.inl delete mode 100755 3party/glm/glm/detail/func_trigonometric.hpp delete mode 100755 3party/glm/glm/detail/func_trigonometric.inl delete mode 100755 3party/glm/glm/detail/func_vector_relational.hpp delete mode 100755 3party/glm/glm/detail/func_vector_relational.inl delete mode 100755 3party/glm/glm/detail/glm.cpp delete mode 100755 3party/glm/glm/detail/hint.hpp delete mode 100755 3party/glm/glm/detail/intrinsic_common.hpp delete mode 100755 3party/glm/glm/detail/intrinsic_common.inl delete mode 100755 3party/glm/glm/detail/intrinsic_exponential.hpp delete mode 100755 3party/glm/glm/detail/intrinsic_exponential.inl delete mode 100755 3party/glm/glm/detail/intrinsic_geometric.hpp delete mode 100755 3party/glm/glm/detail/intrinsic_geometric.inl delete mode 100755 3party/glm/glm/detail/intrinsic_integer.hpp delete mode 100755 3party/glm/glm/detail/intrinsic_integer.inl delete mode 100755 3party/glm/glm/detail/intrinsic_matrix.hpp delete mode 100755 3party/glm/glm/detail/intrinsic_matrix.inl delete mode 100755 3party/glm/glm/detail/intrinsic_trigonometric.hpp delete mode 100755 3party/glm/glm/detail/intrinsic_trigonometric.inl delete mode 100755 3party/glm/glm/detail/intrinsic_vector_relational.hpp delete mode 100755 3party/glm/glm/detail/intrinsic_vector_relational.inl delete mode 100755 3party/glm/glm/detail/precision.hpp delete mode 100755 3party/glm/glm/detail/precision.inl delete mode 100755 3party/glm/glm/detail/setup.hpp delete mode 100755 3party/glm/glm/detail/type_float.hpp delete mode 100755 3party/glm/glm/detail/type_gentype.hpp delete mode 100755 3party/glm/glm/detail/type_gentype.inl delete mode 100755 3party/glm/glm/detail/type_half.hpp delete mode 100755 3party/glm/glm/detail/type_half.inl delete mode 100755 3party/glm/glm/detail/type_int.hpp delete mode 100755 3party/glm/glm/detail/type_mat.hpp delete mode 100755 3party/glm/glm/detail/type_mat.inl delete mode 100755 3party/glm/glm/detail/type_mat2x2.hpp delete mode 100755 3party/glm/glm/detail/type_mat2x2.inl delete mode 100755 3party/glm/glm/detail/type_mat2x3.hpp delete mode 100755 3party/glm/glm/detail/type_mat2x3.inl delete mode 100755 3party/glm/glm/detail/type_mat2x4.hpp delete mode 100755 3party/glm/glm/detail/type_mat2x4.inl delete mode 100755 3party/glm/glm/detail/type_mat3x2.hpp delete mode 100755 3party/glm/glm/detail/type_mat3x2.inl delete mode 100755 3party/glm/glm/detail/type_mat3x3.hpp delete mode 100755 3party/glm/glm/detail/type_mat3x3.inl delete mode 100755 3party/glm/glm/detail/type_mat3x4.hpp delete mode 100755 3party/glm/glm/detail/type_mat3x4.inl delete mode 100755 3party/glm/glm/detail/type_mat4x2.hpp delete mode 100755 3party/glm/glm/detail/type_mat4x2.inl delete mode 100755 3party/glm/glm/detail/type_mat4x3.hpp delete mode 100755 3party/glm/glm/detail/type_mat4x3.inl delete mode 100755 3party/glm/glm/detail/type_mat4x4.hpp delete mode 100755 3party/glm/glm/detail/type_mat4x4.inl delete mode 100755 3party/glm/glm/detail/type_vec.hpp delete mode 100755 3party/glm/glm/detail/type_vec.inl delete mode 100755 3party/glm/glm/detail/type_vec1.hpp delete mode 100755 3party/glm/glm/detail/type_vec1.inl delete mode 100755 3party/glm/glm/detail/type_vec2.hpp delete mode 100755 3party/glm/glm/detail/type_vec2.inl delete mode 100755 3party/glm/glm/detail/type_vec3.hpp delete mode 100755 3party/glm/glm/detail/type_vec3.inl delete mode 100755 3party/glm/glm/detail/type_vec4.hpp delete mode 100755 3party/glm/glm/detail/type_vec4.inl delete mode 100755 3party/glm/glm/exponential.hpp delete mode 100755 3party/glm/glm/ext.hpp delete mode 100755 3party/glm/glm/fwd.hpp delete mode 100755 3party/glm/glm/geometric.hpp delete mode 100755 3party/glm/glm/glm.hpp delete mode 100755 3party/glm/glm/gtc/constants.hpp delete mode 100755 3party/glm/glm/gtc/constants.inl delete mode 100755 3party/glm/glm/gtc/epsilon.hpp delete mode 100755 3party/glm/glm/gtc/epsilon.inl delete mode 100755 3party/glm/glm/gtc/matrix_access.hpp delete mode 100755 3party/glm/glm/gtc/matrix_access.inl delete mode 100755 3party/glm/glm/gtc/matrix_integer.hpp delete mode 100755 3party/glm/glm/gtc/matrix_inverse.hpp delete mode 100755 3party/glm/glm/gtc/matrix_inverse.inl delete mode 100755 3party/glm/glm/gtc/matrix_transform.hpp delete mode 100755 3party/glm/glm/gtc/matrix_transform.inl delete mode 100755 3party/glm/glm/gtc/noise.hpp delete mode 100755 3party/glm/glm/gtc/noise.inl delete mode 100755 3party/glm/glm/gtc/packing.hpp delete mode 100755 3party/glm/glm/gtc/packing.inl delete mode 100755 3party/glm/glm/gtc/quaternion.hpp delete mode 100755 3party/glm/glm/gtc/quaternion.inl delete mode 100755 3party/glm/glm/gtc/random.hpp delete mode 100755 3party/glm/glm/gtc/random.inl delete mode 100755 3party/glm/glm/gtc/reciprocal.hpp delete mode 100755 3party/glm/glm/gtc/reciprocal.inl delete mode 100755 3party/glm/glm/gtc/type_precision.hpp delete mode 100755 3party/glm/glm/gtc/type_precision.inl delete mode 100755 3party/glm/glm/gtc/type_ptr.hpp delete mode 100755 3party/glm/glm/gtc/type_ptr.inl delete mode 100755 3party/glm/glm/gtc/ulp.hpp delete mode 100755 3party/glm/glm/gtc/ulp.inl delete mode 100755 3party/glm/glm/gtx/associated_min_max.hpp delete mode 100755 3party/glm/glm/gtx/associated_min_max.inl delete mode 100755 3party/glm/glm/gtx/bit.hpp delete mode 100755 3party/glm/glm/gtx/bit.inl delete mode 100755 3party/glm/glm/gtx/closest_point.hpp delete mode 100755 3party/glm/glm/gtx/closest_point.inl delete mode 100755 3party/glm/glm/gtx/color_space.hpp delete mode 100755 3party/glm/glm/gtx/color_space.inl delete mode 100755 3party/glm/glm/gtx/color_space_YCoCg.hpp delete mode 100755 3party/glm/glm/gtx/color_space_YCoCg.inl delete mode 100755 3party/glm/glm/gtx/compatibility.hpp delete mode 100755 3party/glm/glm/gtx/compatibility.inl delete mode 100755 3party/glm/glm/gtx/component_wise.hpp delete mode 100755 3party/glm/glm/gtx/component_wise.inl delete mode 100755 3party/glm/glm/gtx/constants.hpp delete mode 100755 3party/glm/glm/gtx/dual_quaternion.hpp delete mode 100755 3party/glm/glm/gtx/dual_quaternion.inl delete mode 100755 3party/glm/glm/gtx/epsilon.hpp delete mode 100755 3party/glm/glm/gtx/euler_angles.hpp delete mode 100755 3party/glm/glm/gtx/euler_angles.inl delete mode 100755 3party/glm/glm/gtx/extend.hpp delete mode 100755 3party/glm/glm/gtx/extend.inl delete mode 100755 3party/glm/glm/gtx/extented_min_max.hpp delete mode 100755 3party/glm/glm/gtx/extented_min_max.inl delete mode 100755 3party/glm/glm/gtx/fast_exponential.hpp delete mode 100755 3party/glm/glm/gtx/fast_exponential.inl delete mode 100755 3party/glm/glm/gtx/fast_square_root.hpp delete mode 100755 3party/glm/glm/gtx/fast_square_root.inl delete mode 100755 3party/glm/glm/gtx/fast_trigonometry.hpp delete mode 100755 3party/glm/glm/gtx/fast_trigonometry.inl delete mode 100755 3party/glm/glm/gtx/gradient_paint.hpp delete mode 100755 3party/glm/glm/gtx/gradient_paint.inl delete mode 100755 3party/glm/glm/gtx/handed_coordinate_space.hpp delete mode 100755 3party/glm/glm/gtx/handed_coordinate_space.inl delete mode 100755 3party/glm/glm/gtx/inertia.hpp delete mode 100755 3party/glm/glm/gtx/inertia.inl delete mode 100755 3party/glm/glm/gtx/int_10_10_10_2.hpp delete mode 100755 3party/glm/glm/gtx/int_10_10_10_2.inl delete mode 100755 3party/glm/glm/gtx/integer.hpp delete mode 100755 3party/glm/glm/gtx/integer.inl delete mode 100755 3party/glm/glm/gtx/intersect.hpp delete mode 100755 3party/glm/glm/gtx/intersect.inl delete mode 100755 3party/glm/glm/gtx/io.hpp delete mode 100755 3party/glm/glm/gtx/io.inl delete mode 100755 3party/glm/glm/gtx/log_base.hpp delete mode 100755 3party/glm/glm/gtx/log_base.inl delete mode 100755 3party/glm/glm/gtx/matrix_cross_product.hpp delete mode 100755 3party/glm/glm/gtx/matrix_cross_product.inl delete mode 100755 3party/glm/glm/gtx/matrix_interpolation.hpp delete mode 100755 3party/glm/glm/gtx/matrix_interpolation.inl delete mode 100755 3party/glm/glm/gtx/matrix_major_storage.hpp delete mode 100755 3party/glm/glm/gtx/matrix_major_storage.inl delete mode 100755 3party/glm/glm/gtx/matrix_operation.hpp delete mode 100755 3party/glm/glm/gtx/matrix_operation.inl delete mode 100755 3party/glm/glm/gtx/matrix_query.hpp delete mode 100755 3party/glm/glm/gtx/matrix_query.inl delete mode 100755 3party/glm/glm/gtx/matrix_transform_2d.hpp delete mode 100755 3party/glm/glm/gtx/matrix_transform_2d.inl delete mode 100755 3party/glm/glm/gtx/mixed_product.hpp delete mode 100755 3party/glm/glm/gtx/mixed_product.inl delete mode 100755 3party/glm/glm/gtx/multiple.hpp delete mode 100755 3party/glm/glm/gtx/multiple.inl delete mode 100755 3party/glm/glm/gtx/noise.hpp delete mode 100755 3party/glm/glm/gtx/norm.hpp delete mode 100755 3party/glm/glm/gtx/norm.inl delete mode 100755 3party/glm/glm/gtx/normal.hpp delete mode 100755 3party/glm/glm/gtx/normal.inl delete mode 100755 3party/glm/glm/gtx/normalize_dot.hpp delete mode 100755 3party/glm/glm/gtx/normalize_dot.inl delete mode 100755 3party/glm/glm/gtx/number_precision.hpp delete mode 100755 3party/glm/glm/gtx/number_precision.inl delete mode 100755 3party/glm/glm/gtx/optimum_pow.hpp delete mode 100755 3party/glm/glm/gtx/optimum_pow.inl delete mode 100755 3party/glm/glm/gtx/orthonormalize.hpp delete mode 100755 3party/glm/glm/gtx/orthonormalize.inl delete mode 100755 3party/glm/glm/gtx/perpendicular.hpp delete mode 100755 3party/glm/glm/gtx/perpendicular.inl delete mode 100755 3party/glm/glm/gtx/polar_coordinates.hpp delete mode 100755 3party/glm/glm/gtx/polar_coordinates.inl delete mode 100755 3party/glm/glm/gtx/projection.hpp delete mode 100755 3party/glm/glm/gtx/projection.inl delete mode 100755 3party/glm/glm/gtx/quaternion.hpp delete mode 100755 3party/glm/glm/gtx/quaternion.inl delete mode 100755 3party/glm/glm/gtx/random.hpp delete mode 100755 3party/glm/glm/gtx/raw_data.hpp delete mode 100755 3party/glm/glm/gtx/raw_data.inl delete mode 100755 3party/glm/glm/gtx/reciprocal.hpp delete mode 100755 3party/glm/glm/gtx/rotate_normalized_axis.hpp delete mode 100755 3party/glm/glm/gtx/rotate_normalized_axis.inl delete mode 100755 3party/glm/glm/gtx/rotate_vector.hpp delete mode 100755 3party/glm/glm/gtx/rotate_vector.inl delete mode 100755 3party/glm/glm/gtx/scalar_relational.hpp delete mode 100755 3party/glm/glm/gtx/scalar_relational.inl delete mode 100755 3party/glm/glm/gtx/simd_mat4.hpp delete mode 100755 3party/glm/glm/gtx/simd_mat4.inl delete mode 100755 3party/glm/glm/gtx/simd_quat.hpp delete mode 100755 3party/glm/glm/gtx/simd_quat.inl delete mode 100755 3party/glm/glm/gtx/simd_vec4.hpp delete mode 100755 3party/glm/glm/gtx/simd_vec4.inl delete mode 100755 3party/glm/glm/gtx/spline.hpp delete mode 100755 3party/glm/glm/gtx/spline.inl delete mode 100755 3party/glm/glm/gtx/std_based_type.hpp delete mode 100755 3party/glm/glm/gtx/std_based_type.inl delete mode 100755 3party/glm/glm/gtx/string_cast.hpp delete mode 100755 3party/glm/glm/gtx/string_cast.inl delete mode 100755 3party/glm/glm/gtx/transform.hpp delete mode 100755 3party/glm/glm/gtx/transform.inl delete mode 100755 3party/glm/glm/gtx/transform2.hpp delete mode 100755 3party/glm/glm/gtx/transform2.inl delete mode 100755 3party/glm/glm/gtx/ulp.hpp delete mode 100755 3party/glm/glm/gtx/unsigned_int.hpp delete mode 100755 3party/glm/glm/gtx/unsigned_int.inl delete mode 100755 3party/glm/glm/gtx/vec1.hpp delete mode 100755 3party/glm/glm/gtx/vec1.inl delete mode 100755 3party/glm/glm/gtx/vector_angle.hpp delete mode 100755 3party/glm/glm/gtx/vector_angle.inl delete mode 100755 3party/glm/glm/gtx/vector_query.hpp delete mode 100755 3party/glm/glm/gtx/vector_query.inl delete mode 100755 3party/glm/glm/gtx/wrap.hpp delete mode 100755 3party/glm/glm/gtx/wrap.inl delete mode 100755 3party/glm/glm/integer.hpp delete mode 100755 3party/glm/glm/mat2x2.hpp delete mode 100755 3party/glm/glm/mat2x3.hpp delete mode 100755 3party/glm/glm/mat2x4.hpp delete mode 100755 3party/glm/glm/mat3x2.hpp delete mode 100755 3party/glm/glm/mat3x3.hpp delete mode 100755 3party/glm/glm/mat3x4.hpp delete mode 100755 3party/glm/glm/mat4x2.hpp delete mode 100755 3party/glm/glm/mat4x3.hpp delete mode 100755 3party/glm/glm/mat4x4.hpp delete mode 100755 3party/glm/glm/matrix.hpp delete mode 100755 3party/glm/glm/packing.hpp delete mode 100755 3party/glm/glm/trigonometric.hpp delete mode 100755 3party/glm/glm/vec2.hpp delete mode 100755 3party/glm/glm/vec3.hpp delete mode 100755 3party/glm/glm/vec4.hpp delete mode 100755 3party/glm/glm/vector_relational.hpp delete mode 100644 3party/glm/glm_config.hpp delete mode 100755 3party/glm/readme.txt delete mode 100755 3party/glm/test/CMakeLists.txt delete mode 100755 3party/glm/test/bug/CMakeLists.txt delete mode 100755 3party/glm/test/core/CMakeLists.txt delete mode 100755 3party/glm/test/core/core_func_common.cpp delete mode 100755 3party/glm/test/core/core_func_exponential.cpp delete mode 100755 3party/glm/test/core/core_func_geometric.cpp delete mode 100755 3party/glm/test/core/core_func_integer.cpp delete mode 100755 3party/glm/test/core/core_func_matrix.cpp delete mode 100755 3party/glm/test/core/core_func_noise.cpp delete mode 100755 3party/glm/test/core/core_func_packing.cpp delete mode 100755 3party/glm/test/core/core_func_swizzle.cpp delete mode 100755 3party/glm/test/core/core_func_trigonometric.cpp delete mode 100755 3party/glm/test/core/core_func_vector_relational.cpp delete mode 100755 3party/glm/test/core/core_setup_message.cpp delete mode 100755 3party/glm/test/core/core_setup_precision.cpp delete mode 100755 3party/glm/test/core/core_type_cast.cpp delete mode 100755 3party/glm/test/core/core_type_float.cpp delete mode 100755 3party/glm/test/core/core_type_int.cpp delete mode 100755 3party/glm/test/core/core_type_length.cpp delete mode 100755 3party/glm/test/core/core_type_mat2x2.cpp delete mode 100755 3party/glm/test/core/core_type_mat2x3.cpp delete mode 100755 3party/glm/test/core/core_type_mat2x4.cpp delete mode 100755 3party/glm/test/core/core_type_mat3x2.cpp delete mode 100755 3party/glm/test/core/core_type_mat3x3.cpp delete mode 100755 3party/glm/test/core/core_type_mat3x4.cpp delete mode 100755 3party/glm/test/core/core_type_mat4x2.cpp delete mode 100755 3party/glm/test/core/core_type_mat4x3.cpp delete mode 100755 3party/glm/test/core/core_type_mat4x4.cpp delete mode 100755 3party/glm/test/core/core_type_vec1.cpp delete mode 100755 3party/glm/test/core/core_type_vec2.cpp delete mode 100755 3party/glm/test/core/core_type_vec3.cpp delete mode 100755 3party/glm/test/core/core_type_vec4.cpp delete mode 100755 3party/glm/test/external/gli/CMakeLists.txt delete mode 100755 3party/glm/test/external/gli/core/dummy.cpp delete mode 100755 3party/glm/test/external/gli/core/generate_mipmaps.hpp delete mode 100755 3party/glm/test/external/gli/core/generate_mipmaps.inl delete mode 100755 3party/glm/test/external/gli/core/image2d.hpp delete mode 100755 3party/glm/test/external/gli/core/image2d.inl delete mode 100755 3party/glm/test/external/gli/core/operation.hpp delete mode 100755 3party/glm/test/external/gli/core/operation.inl delete mode 100755 3party/glm/test/external/gli/core/operator.hpp delete mode 100755 3party/glm/test/external/gli/core/operator.inl delete mode 100755 3party/glm/test/external/gli/core/shared_array.hpp delete mode 100755 3party/glm/test/external/gli/core/shared_array.inl delete mode 100755 3party/glm/test/external/gli/core/shared_ptr.hpp delete mode 100755 3party/glm/test/external/gli/core/shared_ptr.inl delete mode 100755 3party/glm/test/external/gli/core/size.hpp delete mode 100755 3party/glm/test/external/gli/core/size.inl delete mode 100755 3party/glm/test/external/gli/core/texture2d.hpp delete mode 100755 3party/glm/test/external/gli/core/texture2d.inl delete mode 100755 3party/glm/test/external/gli/core/texture2d_array.hpp delete mode 100755 3party/glm/test/external/gli/core/texture2d_array.inl delete mode 100755 3party/glm/test/external/gli/core/texture_cube.hpp delete mode 100755 3party/glm/test/external/gli/core/texture_cube.inl delete mode 100755 3party/glm/test/external/gli/core/texture_cube_array.hpp delete mode 100755 3party/glm/test/external/gli/core/texture_cube_array.inl delete mode 100755 3party/glm/test/external/gli/gli.hpp delete mode 100755 3party/glm/test/external/gli/gtx/compression.hpp delete mode 100755 3party/glm/test/external/gli/gtx/compression.inl delete mode 100755 3party/glm/test/external/gli/gtx/fetch.hpp delete mode 100755 3party/glm/test/external/gli/gtx/fetch.inl delete mode 100755 3party/glm/test/external/gli/gtx/gl_texture2d.hpp delete mode 100755 3party/glm/test/external/gli/gtx/gl_texture2d.inl delete mode 100755 3party/glm/test/external/gli/gtx/gradient.hpp delete mode 100755 3party/glm/test/external/gli/gtx/gradient.inl delete mode 100755 3party/glm/test/external/gli/gtx/loader.hpp delete mode 100755 3party/glm/test/external/gli/gtx/loader.inl delete mode 100755 3party/glm/test/external/gli/gtx/loader_dds10.hpp delete mode 100755 3party/glm/test/external/gli/gtx/loader_dds10.inl delete mode 100755 3party/glm/test/external/gli/gtx/loader_dds9.hpp delete mode 100755 3party/glm/test/external/gli/gtx/loader_dds9.inl delete mode 100755 3party/glm/test/external/gli/gtx/loader_tga.hpp delete mode 100755 3party/glm/test/external/gli/gtx/loader_tga.inl delete mode 100755 3party/glm/test/external/gli/gtx/wavelet.hpp delete mode 100755 3party/glm/test/external/gli/gtx/wavelet.inl delete mode 100755 3party/glm/test/glm.cppcheck delete mode 100755 3party/glm/test/gtc/CMakeLists.txt delete mode 100755 3party/glm/test/gtc/gtc_constants.cpp delete mode 100755 3party/glm/test/gtc/gtc_epsilon.cpp delete mode 100755 3party/glm/test/gtc/gtc_matrix_access.cpp delete mode 100755 3party/glm/test/gtc/gtc_matrix_integer.cpp delete mode 100755 3party/glm/test/gtc/gtc_matrix_inverse.cpp delete mode 100755 3party/glm/test/gtc/gtc_matrix_transform.cpp delete mode 100755 3party/glm/test/gtc/gtc_noise.cpp delete mode 100755 3party/glm/test/gtc/gtc_packing.cpp delete mode 100755 3party/glm/test/gtc/gtc_quaternion.cpp delete mode 100755 3party/glm/test/gtc/gtc_random.cpp delete mode 100755 3party/glm/test/gtc/gtc_reciprocal.cpp delete mode 100755 3party/glm/test/gtc/gtc_type_precision.cpp delete mode 100755 3party/glm/test/gtc/gtc_type_ptr.cpp delete mode 100755 3party/glm/test/gtc/gtc_ulp.cpp delete mode 100755 3party/glm/test/gtx/CMakeLists.txt delete mode 100755 3party/glm/test/gtx/gtx_associated_min_max.cpp delete mode 100755 3party/glm/test/gtx/gtx_bit.cpp delete mode 100755 3party/glm/test/gtx/gtx_closest_point.cpp delete mode 100755 3party/glm/test/gtx/gtx_color_space.cpp delete mode 100755 3party/glm/test/gtx/gtx_color_space_YCoCg.cpp delete mode 100755 3party/glm/test/gtx/gtx_compatibility.cpp delete mode 100755 3party/glm/test/gtx/gtx_component_wise.cpp delete mode 100755 3party/glm/test/gtx/gtx_dual_quaternion.cpp delete mode 100755 3party/glm/test/gtx/gtx_euler_angle.cpp delete mode 100755 3party/glm/test/gtx/gtx_extend.cpp delete mode 100755 3party/glm/test/gtx/gtx_extented_min_max.cpp delete mode 100755 3party/glm/test/gtx/gtx_fast_exponential.cpp delete mode 100755 3party/glm/test/gtx/gtx_fast_square_root.cpp delete mode 100755 3party/glm/test/gtx/gtx_fast_trigonometry.cpp delete mode 100755 3party/glm/test/gtx/gtx_gradient_paint.cpp delete mode 100755 3party/glm/test/gtx/gtx_handed_coordinate_space.cpp delete mode 100755 3party/glm/test/gtx/gtx_inertia.cpp delete mode 100755 3party/glm/test/gtx/gtx_int_10_10_10_2.cpp delete mode 100755 3party/glm/test/gtx/gtx_integer.cpp delete mode 100755 3party/glm/test/gtx/gtx_intersect.cpp delete mode 100755 3party/glm/test/gtx/gtx_io.cpp delete mode 100755 3party/glm/test/gtx/gtx_log_base.cpp delete mode 100755 3party/glm/test/gtx/gtx_matrix_cross_product.cpp delete mode 100755 3party/glm/test/gtx/gtx_matrix_interpolation.cpp delete mode 100755 3party/glm/test/gtx/gtx_matrix_major_storage.cpp delete mode 100755 3party/glm/test/gtx/gtx_matrix_operation.cpp delete mode 100755 3party/glm/test/gtx/gtx_matrix_query.cpp delete mode 100755 3party/glm/test/gtx/gtx_matrix_transform_2d.cpp delete mode 100755 3party/glm/test/gtx/gtx_mixed_product.cpp delete mode 100755 3party/glm/test/gtx/gtx_multiple.cpp delete mode 100755 3party/glm/test/gtx/gtx_norm.cpp delete mode 100755 3party/glm/test/gtx/gtx_normal.cpp delete mode 100755 3party/glm/test/gtx/gtx_normalize_dot.cpp delete mode 100755 3party/glm/test/gtx/gtx_number_precision.cpp delete mode 100755 3party/glm/test/gtx/gtx_optimum_pow.cpp delete mode 100755 3party/glm/test/gtx/gtx_orthonormalize.cpp delete mode 100755 3party/glm/test/gtx/gtx_perpendicular.cpp delete mode 100755 3party/glm/test/gtx/gtx_polar_coordinates.cpp delete mode 100755 3party/glm/test/gtx/gtx_projection.cpp delete mode 100755 3party/glm/test/gtx/gtx_quaternion.cpp delete mode 100755 3party/glm/test/gtx/gtx_random.cpp delete mode 100755 3party/glm/test/gtx/gtx_rotate_normalized_axis.cpp delete mode 100755 3party/glm/test/gtx/gtx_rotate_vector.cpp delete mode 100755 3party/glm/test/gtx/gtx_scalar_relational.cpp delete mode 100755 3party/glm/test/gtx/gtx_simd_mat4.cpp delete mode 100755 3party/glm/test/gtx/gtx_simd_vec4.cpp delete mode 100755 3party/glm/test/gtx/gtx_spline.cpp delete mode 100755 3party/glm/test/gtx/gtx_string_cast.cpp delete mode 100755 3party/glm/test/gtx/gtx_vector_angle.cpp delete mode 100755 3party/glm/test/gtx/gtx_vector_query.cpp delete mode 100755 3party/glm/util/CMakeLists.txt delete mode 100755 3party/glm/util/FindGLM.cmake delete mode 100755 3party/glm/util/autoexp.txt delete mode 100755 3party/glm/util/autoexp.vc2010.dat delete mode 100755 3party/glm/util/glm.natvis delete mode 100755 3party/glm/util/usertype.dat diff --git a/3party/glm/CMakeLists.txt b/3party/glm/CMakeLists.txt deleted file mode 100755 index 685710f570..0000000000 --- a/3party/glm/CMakeLists.txt +++ /dev/null @@ -1,137 +0,0 @@ -cmake_minimum_required(VERSION 2.6 FATAL_ERROR) -cmake_policy(VERSION 2.6) - -project(glm) -enable_testing() - -list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") -include(GNUInstallDirs) - -add_definitions(-D_CRT_SECURE_NO_WARNINGS) - -option(GLM_TEST_ENABLE "GLM test" OFF) -if(NOT GLM_TEST_ENABLE) - message(STATUS "GLM is a header only library, no need to build it. Set the option GLM_TEST_ENABLE with ON to build and run the test bench") -endif() - -if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") AND UNIX)) - option(GLM_TEST_ENABLE_CXX_98 "Enable C++ 98" OFF) - option(GLM_TEST_ENABLE_CXX_0X "Enable C++ 0x" OFF) - option(GLM_TEST_ENABLE_CXX_11 "Enable C++ 11" OFF) - option(GLM_TEST_ENABLE_CXX_1Y "Enable C++ 1y" OFF) - option(GLM_TEST_ENABLE_CXX_PEDANTIC "Pedantic" ON) - - if(GLM_TEST_ENABLE_CXX_PEDANTIC) - add_definitions(-pedantic) - endif() - - if(GLM_TEST_ENABLE_CXX_1Y) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++1y") - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") - set(CMAKE_CXX_FLAGS "-std=c++1y") - elseif(GLM_TEST_ENABLE_CXX_11) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11") - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") - set(CMAKE_CXX_FLAGS "-std=c++11") - elseif(GLM_TEST_ENABLE_CXX_0X) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++0x") - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") - set(CMAKE_CXX_FLAGS "-std=c++0x") - elseif(GLM_TEST_ENABLE_CXX_98) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++98") - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") - set(CMAKE_CXX_FLAGS "-std=c++98") - endif() -endif() - -if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") OR (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") AND WIN32)) - option(GLM_TEST_ENABLE_MS_EXTENSIONS "Enable MS extensions" OFF) - - if(NOT GLM_TEST_ENABLE_MS_EXTENSIONS) - add_definitions(/Za) - endif() -endif() - -option(GLM_TEST_ENABLE_SIMD_SSE2 "Enable SSE2 optimizations" OFF) -option(GLM_TEST_ENABLE_SIMD_SSE3 "Enable SSE3 optimizations" OFF) -option(GLM_TEST_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF) -option(GLM_TEST_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF) -option(GLM_TEST_FORCE_PURE "Force 'pure' instructions" OFF) - -if(GLM_TEST_FORCE_PURE) - add_definitions(-DGLM_FORCE_PURE) - - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-mfpmath=387) - elseif(MSVC) - add_definitions(/arch:IA32) - endif() -elseif(GLM_TEST_ENABLE_AVX2) - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-mavx2) - elseif(GLM_USE_INTEL) - add_definitions(/QxAVX2) - elseif(MSVC) - add_definitions(/arch:AVX2) - endif() -elseif(GLM_TEST_ENABLE_AVX) - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-mavx) - elseif(GLM_USE_INTEL) - add_definitions(/QxAVX) - elseif(MSVC) - add_definitions(/arch:AVX) - endif() -elseif(GLM_TEST_ENABLE_SSE3) - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-msse3) - elseif(GLM_USE_INTEL) - add_definitions(/QxSSE3) - elseif(MSVC) - add_definitions(/arch:SSE2) # VC doesn't support /arch:SSE3 - endif() -elseif(GLM_TEST_ENABLE_SSE2) - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-msse2) - elseif(GLM_USE_INTEL) - add_definitions(/QxSSE2) - elseif(MSVC) - if(NOT CMAKE_CL_64) - add_definitions(/arch:SSE2) - endif() - endif() -endif() - -option(GLM_TEST_ENABLE_FAST_MATH "Enable fast math optimizations" OFF) -if(GLM_TEST_ENABLE_FAST_MATH) - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-ffast-math) - endif() - - if(MSVC) - add_definitions(/fp:fast) - endif() -elseif(NOT GLM_TEST_ENABLE_FAST_MATH) - if(MSVC) - add_definitions(/fp:precise) - endif() -endif() - -if(CMAKE_COMPILER_IS_GNUCXX) - #add_definitions(-S) - #add_definitions(-s) - #add_definitions(-m32) - #add_definitions(-O3) - - #add_definitions(-fprofile-arcs -ftest-coverage) gcov - #ctest_enable_coverage() -endif() - -include_directories("${PROJECT_SOURCE_DIR}") -include_directories("${PROJECT_SOURCE_DIR}/test/external") - -add_subdirectory(glm) -add_subdirectory(test) -add_subdirectory(util) - -install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}) diff --git a/3party/glm/CTestConfig.cmake b/3party/glm/CTestConfig.cmake deleted file mode 100755 index d338835882..0000000000 --- a/3party/glm/CTestConfig.cmake +++ /dev/null @@ -1,13 +0,0 @@ -## This file should be placed in the root directory of your project. -## Then modify the CMakeLists.txt file in the root directory of your -## project to incorporate the testing dashboard. -## # The following are required to uses Dart and the Cdash dashboard -## ENABLE_TESTING() -## INCLUDE(CTest) -set(CTEST_PROJECT_NAME "GLM") -set(CTEST_NIGHTLY_START_TIME "00:00:00 EST") - -set(CTEST_DROP_METHOD "http") -set(CTEST_DROP_SITE "my.cdash.org") -set(CTEST_DROP_LOCATION "/submit.php?project=GLM") -set(CTEST_DROP_SITE_CDASH TRUE) diff --git a/3party/glm/cmake/GNUInstallDirs.cmake b/3party/glm/cmake/GNUInstallDirs.cmake deleted file mode 100755 index 4dc2d68a4a..0000000000 --- a/3party/glm/cmake/GNUInstallDirs.cmake +++ /dev/null @@ -1,188 +0,0 @@ -# - Define GNU standard installation directories -# Provides install directory variables as defined for GNU software: -# http://www.gnu.org/prep/standards/html_node/Directory-Variables.html -# Inclusion of this module defines the following variables: -# CMAKE_INSTALL_ - destination for files of a given type -# CMAKE_INSTALL_FULL_ - corresponding absolute path -# where is one of: -# BINDIR - user executables (bin) -# SBINDIR - system admin executables (sbin) -# LIBEXECDIR - program executables (libexec) -# SYSCONFDIR - read-only single-machine data (etc) -# SHAREDSTATEDIR - modifiable architecture-independent data (com) -# LOCALSTATEDIR - modifiable single-machine data (var) -# LIBDIR - object code libraries (lib or lib64 or lib/ on Debian) -# INCLUDEDIR - C header files (include) -# OLDINCLUDEDIR - C header files for non-gcc (/usr/include) -# DATAROOTDIR - read-only architecture-independent data root (share) -# DATADIR - read-only architecture-independent data (DATAROOTDIR) -# INFODIR - info documentation (DATAROOTDIR/info) -# LOCALEDIR - locale-dependent data (DATAROOTDIR/locale) -# MANDIR - man documentation (DATAROOTDIR/man) -# DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME) -# Each CMAKE_INSTALL_ value may be passed to the DESTINATION options of -# install() commands for the corresponding file type. If the includer does -# not define a value the above-shown default will be used and the value will -# appear in the cache for editing by the user. -# Each CMAKE_INSTALL_FULL_ value contains an absolute path constructed -# from the corresponding destination by prepending (if necessary) the value -# of CMAKE_INSTALL_PREFIX. - -#============================================================================= -# Copyright 2011 Nikita Krupen'ko -# Copyright 2011 Kitware, Inc. -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of CMake, substitute the full -# License text for the above reference.) - -# Installation directories -# -if(NOT DEFINED CMAKE_INSTALL_BINDIR) - set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_SBINDIR) - set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR) - set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR) - set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR) - set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR) - set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_LIBDIR) - set(_LIBDIR_DEFAULT "lib") - # Override this default 'lib' with 'lib64' iff: - # - we are on Linux system but NOT cross-compiling - # - we are NOT on debian - # - we are on a 64 bits system - # reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf - # For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if - # CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu" - # See http://wiki.debian.org/Multiarch - if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU") - AND NOT CMAKE_CROSSCOMPILING) - if (EXISTS "/etc/debian_version") # is this a debian system ? - if(CMAKE_LIBRARY_ARCHITECTURE) - set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}") - endif() - else() # not debian, rely on CMAKE_SIZEOF_VOID_P: - if(NOT DEFINED CMAKE_SIZEOF_VOID_P) - message(AUTHOR_WARNING - "Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. " - "Please enable at least one language before including GNUInstallDirs.") - else() - if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - set(_LIBDIR_DEFAULT "lib64") - endif() - endif() - endif() - endif() - set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})") -endif() - -if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR) - set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR) - set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR) - set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)") -endif() - -#----------------------------------------------------------------------------- -# Values whose defaults are relative to DATAROOTDIR. Store empty values in -# the cache and store the defaults in local variables if the cache values are -# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes. - -if(NOT CMAKE_INSTALL_DATADIR) - set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)") - set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}") -endif() - -if(NOT CMAKE_INSTALL_INFODIR) - set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)") - set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info") -endif() - -if(NOT CMAKE_INSTALL_LOCALEDIR) - set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)") - set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale") -endif() - -if(NOT CMAKE_INSTALL_MANDIR) - set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)") - set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man") -endif() - -if(NOT CMAKE_INSTALL_DOCDIR) - set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)") - set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}") -endif() - -#----------------------------------------------------------------------------- - -mark_as_advanced( - CMAKE_INSTALL_BINDIR - CMAKE_INSTALL_SBINDIR - CMAKE_INSTALL_LIBEXECDIR - CMAKE_INSTALL_SYSCONFDIR - CMAKE_INSTALL_SHAREDSTATEDIR - CMAKE_INSTALL_LOCALSTATEDIR - CMAKE_INSTALL_LIBDIR - CMAKE_INSTALL_INCLUDEDIR - CMAKE_INSTALL_OLDINCLUDEDIR - CMAKE_INSTALL_DATAROOTDIR - CMAKE_INSTALL_DATADIR - CMAKE_INSTALL_INFODIR - CMAKE_INSTALL_LOCALEDIR - CMAKE_INSTALL_MANDIR - CMAKE_INSTALL_DOCDIR - ) - -# Result directories -# -foreach(dir - BINDIR - SBINDIR - LIBEXECDIR - SYSCONFDIR - SHAREDSTATEDIR - LOCALSTATEDIR - LIBDIR - INCLUDEDIR - OLDINCLUDEDIR - DATAROOTDIR - DATADIR - INFODIR - LOCALEDIR - MANDIR - DOCDIR - ) - if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}}) - set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}") - else() - set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}") - endif() -endforeach() diff --git a/3party/glm/copying.txt b/3party/glm/copying.txt deleted file mode 100755 index efd93bab90..0000000000 --- a/3party/glm/copying.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) 2005 - 2013 G-Truc Creation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject 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. diff --git a/3party/glm/doc/api/a00002.html b/3party/glm/doc/api/a00002.html deleted file mode 100755 index cad062fdbd..0000000000 --- a/3party/glm/doc/api/a00002.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -GLM: Differences between GLSL and GLM core - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
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/3party/glm/doc/api/a00004_source.html b/3party/glm/doc/api/a00004_source.html deleted file mode 100755 index 3710764acd..0000000000 --- a/3party/glm/doc/api/a00004_source.html +++ /dev/null @@ -1,462 +0,0 @@ - - - - - - -GLM: _features.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
_features.hpp
-
-
-
1 
-
29 #ifndef glm_core_features
-
30 #define glm_core_features
-
31 
-
32 // #define GLM_CXX98_EXCEPTIONS
-
33 // #define GLM_CXX98_RTTI
-
34 
-
35 // #define GLM_CXX11_RVALUE_REFERENCES
-
36 // Rvalue references - GCC 4.3
-
37 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html
-
38 
-
39 // GLM_CXX11_TRAILING_RETURN
-
40 // Rvalue references for *this - GCC not supported
-
41 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm
-
42 
-
43 // GLM_CXX11_NONSTATIC_MEMBER_INIT
-
44 // Initialization of class objects by rvalues - GCC any
-
45 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html
-
46 
-
47 // GLM_CXX11_NONSTATIC_MEMBER_INIT
-
48 // Non-static data member initializers - GCC 4.7
-
49 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm
-
50 
-
51 // #define GLM_CXX11_VARIADIC_TEMPLATE
-
52 // Variadic templates - GCC 4.3
-
53 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf
-
54 
-
55 //
-
56 // Extending variadic template template parameters - GCC 4.4
-
57 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf
-
58 
-
59 // #define GLM_CXX11_GENERALIZED_INITIALIZERS
-
60 // Initializer lists - GCC 4.4
-
61 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
-
62 
-
63 // #define GLM_CXX11_STATIC_ASSERT
-
64 // Static assertions - GCC 4.3
-
65 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html
-
66 
-
67 // #define GLM_CXX11_AUTO_TYPE
-
68 // auto-typed variables - GCC 4.4
-
69 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf
-
70 
-
71 // #define GLM_CXX11_AUTO_TYPE
-
72 // Multi-declarator auto - GCC 4.4
-
73 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf
-
74 
-
75 // #define GLM_CXX11_AUTO_TYPE
-
76 // Removal of auto as a storage-class specifier - GCC 4.4
-
77 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm
-
78 
-
79 // #define GLM_CXX11_AUTO_TYPE
-
80 // New function declarator syntax - GCC 4.4
-
81 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm
-
82 
-
83 // #define GLM_CXX11_LAMBDAS
-
84 // New wording for C++0x lambdas - GCC 4.5
-
85 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf
-
86 
-
87 // #define GLM_CXX11_DECLTYPE
-
88 // Declared type of an expression - GCC 4.3
-
89 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf
-
90 
-
91 //
-
92 // Right angle brackets - GCC 4.3
-
93 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html
-
94 
-
95 //
-
96 // Default template arguments for function templates DR226 GCC 4.3
-
97 // http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226
-
98 
-
99 //
-
100 // Solving the SFINAE problem for expressions DR339 GCC 4.4
-
101 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html
-
102 
-
103 // #define GLM_CXX11_ALIAS_TEMPLATE
-
104 // Template aliases N2258 GCC 4.7
-
105 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
-
106 
-
107 //
-
108 // Extern templates N1987 Yes
-
109 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm
-
110 
-
111 // #define GLM_CXX11_NULLPTR
-
112 // Null pointer constant N2431 GCC 4.6
-
113 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf
-
114 
-
115 // #define GLM_CXX11_STRONG_ENUMS
-
116 // Strongly-typed enums N2347 GCC 4.4
-
117 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf
-
118 
-
119 //
-
120 // Forward declarations for enums N2764 GCC 4.6
-
121 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf
-
122 
-
123 //
-
124 // Generalized attributes N2761 GCC 4.8
-
125 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf
-
126 
-
127 //
-
128 // Generalized constant expressions N2235 GCC 4.6
-
129 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
-
130 
-
131 //
-
132 // Alignment support N2341 GCC 4.8
-
133 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
-
134 
-
135 // #define GLM_CXX11_DELEGATING_CONSTRUCTORS
-
136 // Delegating constructors N1986 GCC 4.7
-
137 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf
-
138 
-
139 //
-
140 // Inheriting constructors N2540 GCC 4.8
-
141 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm
-
142 
-
143 // #define GLM_CXX11_EXPLICIT_CONVERSIONS
-
144 // Explicit conversion operators N2437 GCC 4.5
-
145 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
-
146 
-
147 //
-
148 // New character types N2249 GCC 4.4
-
149 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html
-
150 
-
151 //
-
152 // Unicode string literals N2442 GCC 4.5
-
153 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
-
154 
-
155 //
-
156 // Raw string literals N2442 GCC 4.5
-
157 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
-
158 
-
159 //
-
160 // Universal character name literals N2170 GCC 4.5
-
161 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html
-
162 
-
163 // #define GLM_CXX11_USER_LITERALS
-
164 // User-defined literals N2765 GCC 4.7
-
165 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf
-
166 
-
167 //
-
168 // Standard Layout Types N2342 GCC 4.5
-
169 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm
-
170 
-
171 // #define GLM_CXX11_DEFAULTED_FUNCTIONS
-
172 // #define GLM_CXX11_DELETED_FUNCTIONS
-
173 // Defaulted and deleted functions N2346 GCC 4.4
-
174 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
-
175 
-
176 //
-
177 // Extended friend declarations N1791 GCC 4.7
-
178 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf
-
179 
-
180 //
-
181 // Extending sizeof N2253 GCC 4.4
-
182 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html
-
183 
-
184 // #define GLM_CXX11_INLINE_NAMESPACES
-
185 // Inline namespaces N2535 GCC 4.4
-
186 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm
-
187 
-
188 // #define GLM_CXX11_UNRESTRICTED_UNIONS
-
189 // Unrestricted unions N2544 GCC 4.6
-
190 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
-
191 
-
192 // #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS
-
193 // Local and unnamed types as template arguments N2657 GCC 4.5
-
194 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm
-
195 
-
196 // #define GLM_CXX11_RANGE_FOR
-
197 // Range-based for N2930 GCC 4.6
-
198 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html
-
199 
-
200 // #define GLM_CXX11_OVERRIDE_CONTROL
-
201 // Explicit virtual overrides N2928 N3206 N3272 GCC 4.7
-
202 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
-
203 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm
-
204 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm
-
205 
-
206 //
-
207 // Minimal support for garbage collection and reachability-based leak detection N2670 No
-
208 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm
-
209 
-
210 // #define GLM_CXX11_NOEXCEPT
-
211 // Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)
-
212 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html
-
213 
-
214 //
-
215 // Defining move special member functions N3053 GCC 4.6
-
216 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html
-
217 
-
218 //
-
219 // Sequence points N2239 Yes
-
220 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
-
221 
-
222 //
-
223 // Atomic operations N2427 GCC 4.4
-
224 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
-
225 
-
226 //
-
227 // Strong Compare and Exchange N2748 GCC 4.5
-
228 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html
-
229 
-
230 //
-
231 // Bidirectional Fences N2752 GCC 4.8
-
232 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm
-
233 
-
234 //
-
235 // Memory model N2429 GCC 4.8
-
236 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm
-
237 
-
238 //
-
239 // Data-dependency ordering: atomics and memory model N2664 GCC 4.4
-
240 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm
-
241 
-
242 //
-
243 // Propagating exceptions N2179 GCC 4.4
-
244 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html
-
245 
-
246 //
-
247 // Abandoning a process and at_quick_exit N2440 GCC 4.8
-
248 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm
-
249 
-
250 //
-
251 // Allow atomics use in signal handlers N2547 Yes
-
252 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm
-
253 
-
254 //
-
255 // Thread-local storage N2659 GCC 4.8
-
256 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm
-
257 
-
258 //
-
259 // Dynamic initialization and destruction with concurrency N2660 GCC 4.3
-
260 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm
-
261 
-
262 //
-
263 // __func__ predefined identifier N2340 GCC 4.3
-
264 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm
-
265 
-
266 //
-
267 // C99 preprocessor N1653 GCC 4.3
-
268 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm
-
269 
-
270 //
-
271 // long long N1811 GCC 4.3
-
272 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf
-
273 
-
274 //
-
275 // Extended integral types N1988 Yes
-
276 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf
-
277 
-
278 #if(GLM_COMPILER & GLM_COMPILER_GCC)
-
279 
-
280 # if(GLM_COMPILER >= GLM_COMPILER_GCC43)
-
281 # define GLM_CXX11_STATIC_ASSERT
-
282 # endif
-
283 
-
284 #elif(GLM_COMPILER & GLM_COMPILER_CLANG)
-
285 # if(__has_feature(cxx_exceptions))
-
286 # define GLM_CXX98_EXCEPTIONS
-
287 # endif
-
288 
-
289 # if(__has_feature(cxx_rtti))
-
290 # define GLM_CXX98_RTTI
-
291 # endif
-
292 
-
293 # if(__has_feature(cxx_access_control_sfinae))
-
294 # define GLM_CXX11_ACCESS_CONTROL_SFINAE
-
295 # endif
-
296 
-
297 # if(__has_feature(cxx_alias_templates))
-
298 # define GLM_CXX11_ALIAS_TEMPLATE
-
299 # endif
-
300 
-
301 # if(__has_feature(cxx_alignas))
-
302 # define GLM_CXX11_ALIGNAS
-
303 # endif
-
304 
-
305 # if(__has_feature(cxx_attributes))
-
306 # define GLM_CXX11_ATTRIBUTES
-
307 # endif
-
308 
-
309 # if(__has_feature(cxx_constexpr))
-
310 # define GLM_CXX11_CONSTEXPR
-
311 # endif
-
312 
-
313 # if(__has_feature(cxx_decltype))
-
314 # define GLM_CXX11_DECLTYPE
-
315 # endif
-
316 
-
317 # if(__has_feature(cxx_default_function_template_args))
-
318 # define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS
-
319 # endif
-
320 
-
321 # if(__has_feature(cxx_defaulted_functions))
-
322 # define GLM_CXX11_DEFAULTED_FUNCTIONS
-
323 # endif
-
324 
-
325 # if(__has_feature(cxx_delegating_constructors))
-
326 # define GLM_CXX11_DELEGATING_CONSTRUCTORS
-
327 # endif
-
328 
-
329 # if(__has_feature(cxx_deleted_functions))
-
330 # define GLM_CXX11_DELETED_FUNCTIONS
-
331 # endif
-
332 
-
333 # if(__has_feature(cxx_explicit_conversions))
-
334 # define GLM_CXX11_EXPLICIT_CONVERSIONS
-
335 # endif
-
336 
-
337 # if(__has_feature(cxx_generalized_initializers))
-
338 # define GLM_CXX11_GENERALIZED_INITIALIZERS
-
339 # endif
-
340 
-
341 # if(__has_feature(cxx_implicit_moves))
-
342 # define GLM_CXX11_IMPLICIT_MOVES
-
343 # endif
-
344 
-
345 # if(__has_feature(cxx_inheriting_constructors))
-
346 # define GLM_CXX11_INHERITING_CONSTRUCTORS
-
347 # endif
-
348 
-
349 # if(__has_feature(cxx_inline_namespaces))
-
350 # define GLM_CXX11_INLINE_NAMESPACES
-
351 # endif
-
352 
-
353 # if(__has_feature(cxx_lambdas))
-
354 # define GLM_CXX11_LAMBDAS
-
355 # endif
-
356 
-
357 # if(__has_feature(cxx_local_type_template_args))
-
358 # define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS
-
359 # endif
-
360 
-
361 # if(__has_feature(cxx_noexcept))
-
362 # define GLM_CXX11_NOEXCEPT
-
363 # endif
-
364 
-
365 # if(__has_feature(cxx_nonstatic_member_init))
-
366 # define GLM_CXX11_NONSTATIC_MEMBER_INIT
-
367 # endif
-
368 
-
369 # if(__has_feature(cxx_nullptr))
-
370 # define GLM_CXX11_NULLPTR
-
371 # endif
-
372 
-
373 # if(__has_feature(cxx_override_control))
-
374 # define GLM_CXX11_OVERRIDE_CONTROL
-
375 # endif
-
376 
-
377 # if(__has_feature(cxx_reference_qualified_functions))
-
378 # define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS
-
379 # endif
-
380 
-
381 # if(__has_feature(cxx_range_for))
-
382 # define GLM_CXX11_RANGE_FOR
-
383 # endif
-
384 
-
385 # if(__has_feature(cxx_raw_string_literals))
-
386 # define GLM_CXX11_RAW_STRING_LITERALS
-
387 # endif
-
388 
-
389 # if(__has_feature(cxx_rvalue_references))
-
390 # define GLM_CXX11_RVALUE_REFERENCES
-
391 # endif
-
392 
-
393 # if(__has_feature(cxx_static_assert))
-
394 # define GLM_CXX11_STATIC_ASSERT
-
395 # endif
-
396 
-
397 # if(__has_feature(cxx_auto_type))
-
398 # define GLM_CXX11_AUTO_TYPE
-
399 # endif
-
400 
-
401 # if(__has_feature(cxx_strong_enums))
-
402 # define GLM_CXX11_STRONG_ENUMS
-
403 # endif
-
404 
-
405 # if(__has_feature(cxx_trailing_return))
-
406 # define GLM_CXX11_TRAILING_RETURN
-
407 # endif
-
408 
-
409 # if(__has_feature(cxx_unicode_literals))
-
410 # define GLM_CXX11_UNICODE_LITERALS
-
411 # endif
-
412 
-
413 # if(__has_feature(cxx_unrestricted_unions))
-
414 # define GLM_CXX11_UNRESTRICTED_UNIONS
-
415 # endif
-
416 
-
417 # if(__has_feature(cxx_user_literals))
-
418 # define GLM_CXX11_USER_LITERALS
-
419 # endif
-
420 
-
421 # if(__has_feature(cxx_variadic_templates))
-
422 # define GLM_CXX11_VARIADIC_TEMPLATES
-
423 # endif
-
424 
-
425 #endif//(GLM_COMPILER & GLM_COMPILER_CLANG)
-
426 
-
427 #endif//glm_core_features
-
- - - - diff --git a/3party/glm/doc/api/a00005_source.html b/3party/glm/doc/api/a00005_source.html deleted file mode 100755 index 4e023c2ae2..0000000000 --- a/3party/glm/doc/api/a00005_source.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -GLM: _fixes.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
_fixes.hpp
-
-
-
1 
-
29 #include <cmath>
-
30 
-
32 #ifdef max
-
33 #undef max
-
34 #endif
-
35 
-
37 #ifdef min
-
38 #undef min
-
39 #endif
-
40 
-
42 #ifdef isnan
-
43 #undef isnan
-
44 #endif
-
45 
-
47 #ifdef isinf
-
48 #undef isinf
-
49 #endif
-
50 
-
52 #ifdef log2
-
53 #undef log2
-
54 #endif
-
55 
-
- - - - diff --git a/3party/glm/doc/api/a00006_source.html b/3party/glm/doc/api/a00006_source.html deleted file mode 100755 index 9c1a9f75b7..0000000000 --- a/3party/glm/doc/api/a00006_source.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - -GLM: _literals.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
_literals.hpp
-
-
-
1 
-
29 #ifndef glm_core_literals
-
30 #define glm_core_literals
-
31 
-
32 namespace glm
-
33 {
-
34 #define GLM_CXX11_USER_LITERALS
-
35 #ifdef GLM_CXX11_USER_LITERALS
-
36 /*
-
37  GLM_FUNC_QUALIFIER detail::half operator "" _h(long double const s)
-
38  {
-
39  return detail::half(s);
-
40  }
-
41 
-
42  GLM_FUNC_QUALIFIER float operator "" _f(long double const s)
-
43  {
-
44  return static_cast<float>(s);
-
45  }
-
46 */
-
47 #endif//GLM_CXX11_USER_LITERALS
-
48 
-
49 }//namespace glm
-
50 
-
51 #endif//glm_core_literals
-
- - - - diff --git a/3party/glm/doc/api/a00007.html b/3party/glm/doc/api/a00007.html deleted file mode 100755 index 15593ac29b..0000000000 --- a/3party/glm/doc/api/a00007.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: _noise.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
_noise.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file _noise.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00007_source.html b/3party/glm/doc/api/a00007_source.html deleted file mode 100755 index c534575173..0000000000 --- a/3party/glm/doc/api/a00007_source.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - -GLM: _noise.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
_noise.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_DETAIL_NOISE_INCLUDED
-
30 #define GLM_DETAIL_NOISE_INCLUDED
-
31 
-
32 namespace glm{
-
33 namespace detail
-
34 {
-
35  template <typename T>
-
36  GLM_FUNC_QUALIFIER T mod289(T const & x)
-
37  {
-
38  return x - floor(x * static_cast<T>(1.0) / static_cast<T>(289.0)) * static_cast<T>(289.0);
-
39  }
-
40 
-
41  template <typename T>
-
42  GLM_FUNC_QUALIFIER T permute(T const & x)
-
43  {
-
44  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
45  }
-
46 
-
47  template <typename T, precision P>
-
48  GLM_FUNC_QUALIFIER tvec2<T, P> permute(tvec2<T, P> const & x)
-
49  {
-
50  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
51  }
-
52 
-
53  template <typename T, precision P>
-
54  GLM_FUNC_QUALIFIER tvec3<T, P> permute(tvec3<T, P> const & x)
-
55  {
-
56  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
57  }
-
58 
-
59  template <typename T, precision P>
-
60  GLM_FUNC_QUALIFIER tvec4<T, P> permute(tvec4<T, P> const & x)
-
61  {
-
62  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
63  }
-
64 /*
-
65  template <typename T, precision P, template<typename> class vecType>
-
66  GLM_FUNC_QUALIFIER vecType<T, P> permute(vecType<T, P> const & x)
-
67  {
-
68  return mod289(((x * T(34)) + T(1)) * x);
-
69  }
-
70 */
-
71  template <typename T>
-
72  GLM_FUNC_QUALIFIER T taylorInvSqrt(T const & r)
-
73  {
-
74  return T(1.79284291400159) - T(0.85373472095314) * r;
-
75  }
-
76 
-
77  template <typename T, precision P>
-
78  GLM_FUNC_QUALIFIER detail::tvec2<T, P> taylorInvSqrt(detail::tvec2<T, P> const & r)
-
79  {
-
80  return T(1.79284291400159) - T(0.85373472095314) * r;
-
81  }
-
82 
-
83  template <typename T, precision P>
-
84  GLM_FUNC_QUALIFIER detail::tvec3<T, P> taylorInvSqrt(detail::tvec3<T, P> const & r)
-
85  {
-
86  return T(1.79284291400159) - T(0.85373472095314) * r;
-
87  }
-
88 
-
89  template <typename T, precision P>
-
90  GLM_FUNC_QUALIFIER detail::tvec4<T, P> taylorInvSqrt(detail::tvec4<T, P> const & r)
-
91  {
-
92  return T(1.79284291400159) - T(0.85373472095314) * r;
-
93  }
-
94 /*
-
95  template <typename T, precision P, template<typename> class vecType>
-
96  GLM_FUNC_QUALIFIER vecType<T, P> taylorInvSqrt(vecType<T, P> const & r)
-
97  {
-
98  return T(1.79284291400159) - T(0.85373472095314) * r;
-
99  }
-
100 */
-
101 
-
102  template <typename T, precision P>
-
103  GLM_FUNC_QUALIFIER detail::tvec2<T, P> fade(detail::tvec2<T, P> const & t)
-
104  {
-
105  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
-
106  }
-
107 
-
108  template <typename T, precision P>
-
109  GLM_FUNC_QUALIFIER detail::tvec3<T, P> fade(detail::tvec3<T, P> const & t)
-
110  {
-
111  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
-
112  }
-
113 
-
114  template <typename T, precision P>
-
115  GLM_FUNC_QUALIFIER detail::tvec4<T, P> fade(detail::tvec4<T, P> const & t)
-
116  {
-
117  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
-
118  }
-
119 /*
-
120  template <typename T, precision P, template <typename> class vecType>
-
121  GLM_FUNC_QUALIFIER vecType<T, P> fade(vecType<T, P> const & t)
-
122  {
-
123  return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
-
124  }
-
125 */
-
126 }//namespace detail
-
127 }//namespace glm
-
128 
-
129 #endif//GLM_DETAIL_NOISE_INCLUDED
-
130 
-
GLM_FUNC_DECL genType floor(genType const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
-
- - - - diff --git a/3party/glm/doc/api/a00008_source.html b/3party/glm/doc/api/a00008_source.html deleted file mode 100755 index d11f3234b6..0000000000 --- a/3party/glm/doc/api/a00008_source.html +++ /dev/null @@ -1,876 +0,0 @@ - - - - - - -GLM: _swizzle.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
_swizzle.hpp
-
-
-
1 
-
29 #ifndef glm_core_swizzle
-
30 #define glm_core_swizzle
-
31 
-
32 namespace glm{
-
33 namespace detail
-
34 {
-
35  // Internal class for implementing swizzle operators
-
36  template <typename T, int N>
-
37  struct _swizzle_base0
-
38  {
-
39  typedef T value_type;
-
40 
-
41  protected:
-
42  GLM_FUNC_QUALIFIER value_type& elem (size_t i) { return (reinterpret_cast<value_type*>(_buffer))[i]; }
-
43  GLM_FUNC_QUALIFIER const value_type& elem (size_t i) const { return (reinterpret_cast<const value_type*>(_buffer))[i]; }
-
44 
-
45  // Use an opaque buffer to *ensure* the compiler doesn't call a constructor.
-
46  // The size 1 buffer is assumed to aligned to the actual members so that the
-
47  // elem()
-
48  char _buffer[1];
-
49  };
-
50 
-
51  template <typename T, precision P, typename V, int E0, int E1, int E2, int E3, int N>
-
52  struct _swizzle_base1 : public _swizzle_base0<T, N>
-
53  {
-
54  };
-
55 
-
56  template <typename T, precision P, typename V, int E0, int E1>
-
57  struct _swizzle_base1<T, P, V,E0,E1,-1,-2,2> : public _swizzle_base0<T, 2>
-
58  {
-
59  GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1)); }
-
60  };
-
61 
-
62  template <typename T, precision P, typename V, int E0, int E1, int E2>
-
63  struct _swizzle_base1<T, P, V,E0,E1,E2,-1,3> : public _swizzle_base0<T, 3>
-
64  {
-
65  GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2)); }
-
66  };
-
67 
-
68  template <typename T, precision P, typename V, int E0, int E1, int E2, int E3>
-
69  struct _swizzle_base1<T, P, V,E0,E1,E2,E3,4> : public _swizzle_base0<T, 4>
-
70  {
-
71  GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
-
72  };
-
73 
-
74  // Internal class for implementing swizzle operators
-
75  /*
-
76  Template parameters:
-
77 
-
78  ValueType = type of scalar values (e.g. float, double)
-
79  VecType = class the swizzle is applies to (e.g. tvec3<float>)
-
80  N = number of components in the vector (e.g. 3)
-
81  E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec
-
82 
-
83  DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles
-
84  containing duplicate elements so that they cannot be used as r-values).
-
85  */
-
86  template <typename ValueType, precision P, typename VecType, int N, int E0, int E1, int E2, int E3, int DUPLICATE_ELEMENTS>
-
87  struct _swizzle_base2 : public _swizzle_base1<ValueType, P, VecType,E0,E1,E2,E3,N>
-
88  {
-
89  typedef VecType vec_type;
-
90  typedef ValueType value_type;
-
91 
-
92  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const ValueType& t)
-
93  {
-
94  for (int i = 0; i < N; ++i)
-
95  (*this)[i] = t;
-
96  return *this;
-
97  }
-
98 
-
99  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const VecType& that)
-
100  {
-
101  struct op {
-
102  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e = t; }
-
103  };
-
104  _apply_op(that, op());
-
105  return *this;
-
106  }
-
107 
-
108  GLM_FUNC_QUALIFIER void operator -= (const VecType& that)
-
109  {
-
110  struct op {
-
111  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e -= t; }
-
112  };
-
113  _apply_op(that, op());
-
114  }
-
115 
-
116  GLM_FUNC_QUALIFIER void operator += (const VecType& that)
-
117  {
-
118  struct op {
-
119  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e += t; }
-
120  };
-
121  _apply_op(that, op());
-
122  }
-
123 
-
124  GLM_FUNC_QUALIFIER void operator *= (const VecType& that)
-
125  {
-
126  struct op {
-
127  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e *= t; }
-
128  };
-
129  _apply_op(that, op());
-
130  }
-
131 
-
132  GLM_FUNC_QUALIFIER void operator /= (const VecType& that)
-
133  {
-
134  struct op {
-
135  GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e /= t; }
-
136  };
-
137  _apply_op(that, op());
-
138  }
-
139 
-
140  GLM_FUNC_QUALIFIER value_type& operator[] (size_t i)
-
141  {
-
142 #ifndef __CUDA_ARCH__
-
143  static
-
144 #endif
-
145  const int offset_dst[4] = { E0, E1, E2, E3 };
-
146  return this->elem(offset_dst[i]);
-
147  }
-
148  GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const
-
149  {
-
150 #ifndef __CUDA_ARCH__
-
151  static
-
152 #endif
-
153  const int offset_dst[4] = { E0, E1, E2, E3 };
-
154  return this->elem(offset_dst[i]);
-
155  }
-
156  protected:
-
157  template <typename T>
-
158  GLM_FUNC_QUALIFIER void _apply_op(const VecType& that, T op)
-
159  {
-
160  // Make a copy of the data in this == &that.
-
161  // The copier should optimize out the copy in cases where the function is
-
162  // properly inlined and the copy is not necessary.
-
163  ValueType t[N];
-
164  for (int i = 0; i < N; ++i)
-
165  t[i] = that[i];
-
166  for (int i = 0; i < N; ++i)
-
167  op( (*this)[i], t[i] );
-
168  }
-
169  };
-
170 
-
171  // Specialization for swizzles containing duplicate elements. These cannot be modified.
-
172  template <typename ValueType, precision P, typename VecType, int N, int E0, int E1, int E2, int E3>
-
173  struct _swizzle_base2<ValueType, P, VecType,N,E0,E1,E2,E3,1> : public _swizzle_base1<ValueType, P, VecType,E0,E1,E2,E3,N>
-
174  {
-
175  typedef VecType vec_type;
-
176  typedef ValueType value_type;
-
177 
-
178  struct Stub {};
-
179  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub const &) { return *this; }
-
180 
-
181  GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const
-
182  {
-
183 #ifndef __CUDA_ARCH__
-
184  static
-
185 #endif
-
186  const int offset_dst[4] = { E0, E1, E2, E3 };
-
187  return this->elem(offset_dst[i]);
-
188  }
-
189  };
-
190 
-
191  template <int N,typename ValueType, precision P, typename VecType, int E0,int E1,int E2,int E3>
-
192  struct _swizzle : public _swizzle_base2<ValueType, P, VecType, N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)>
-
193  {
-
194  typedef _swizzle_base2<ValueType, P, VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)> base_type;
-
195 
-
196  using base_type::operator=;
-
197 
-
198  GLM_FUNC_QUALIFIER operator VecType () const { return (*this)(); }
-
199  };
-
200 
-
201 //
-
202 // To prevent the C++ syntax from getting entirely overwhelming, define some alias macros
-
203 //
-
204 #define _GLM_SWIZZLE_TEMPLATE1 template <int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3>
-
205 #define _GLM_SWIZZLE_TEMPLATE2 template <int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3>
-
206 #define _GLM_SWIZZLE_TYPE1 _swizzle<N, T, P, V, E0, E1, E2, E3>
-
207 #define _GLM_SWIZZLE_TYPE2 _swizzle<N, T, P, V, F0, F1, F2, F3>
-
208 
-
209 //
-
210 // Wrapper for a binary operator (e.g. u.yy + v.zy)
-
211 //
-
212 #define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
-
213  _GLM_SWIZZLE_TEMPLATE2 \
-
214  GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
-
215  { \
-
216  return a() OPERAND b(); \
-
217  } \
-
218  _GLM_SWIZZLE_TEMPLATE1 \
-
219  GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const V& b) \
-
220  { \
-
221  return a() OPERAND b; \
-
222  } \
-
223  _GLM_SWIZZLE_TEMPLATE1 \
-
224  GLM_FUNC_QUALIFIER V operator OPERAND ( const V& a, const _GLM_SWIZZLE_TYPE1& b) \
-
225  { \
-
226  return a OPERAND b(); \
-
227  }
-
228 
-
229 //
-
230 // Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)
-
231 //
-
232 #define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
-
233  _GLM_SWIZZLE_TEMPLATE1 \
-
234  GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \
-
235  { \
-
236  return a() OPERAND b; \
-
237  } \
-
238  _GLM_SWIZZLE_TEMPLATE1 \
-
239  GLM_FUNC_QUALIFIER V operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \
-
240  { \
-
241  return a OPERAND b(); \
-
242  }
-
243 
-
244 //
-
245 // Macro for wrapping a function taking one argument (e.g. abs())
-
246 //
-
247 #define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \
-
248  _GLM_SWIZZLE_TEMPLATE1 \
-
249  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a) \
-
250  { \
-
251  return FUNCTION(a()); \
-
252  }
-
253 
-
254 //
-
255 // Macro for wrapping a function taking two vector arguments (e.g. dot()).
-
256 //
-
257 #define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \
-
258  _GLM_SWIZZLE_TEMPLATE2 \
-
259  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
-
260  { \
-
261  return FUNCTION(a(), b()); \
-
262  } \
-
263  _GLM_SWIZZLE_TEMPLATE1 \
-
264  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b) \
-
265  { \
-
266  return FUNCTION(a(), b()); \
-
267  } \
-
268  _GLM_SWIZZLE_TEMPLATE1 \
-
269  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename V& b) \
-
270  { \
-
271  return FUNCTION(a(), b); \
-
272  } \
-
273  _GLM_SWIZZLE_TEMPLATE1 \
-
274  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const _GLM_SWIZZLE_TYPE1& b) \
-
275  { \
-
276  return FUNCTION(a, b()); \
-
277  }
-
278 
-
279 //
-
280 // Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).
-
281 //
-
282 #define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \
-
283  _GLM_SWIZZLE_TEMPLATE2 \
-
284  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b, const T& c) \
-
285  { \
-
286  return FUNCTION(a(), b(), c); \
-
287  } \
-
288  _GLM_SWIZZLE_TEMPLATE1 \
-
289  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \
-
290  { \
-
291  return FUNCTION(a(), b(), c); \
-
292  } \
-
293  _GLM_SWIZZLE_TEMPLATE1 \
-
294  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\
-
295  { \
-
296  return FUNCTION(a(), b, c); \
-
297  } \
-
298  _GLM_SWIZZLE_TEMPLATE1 \
-
299  GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \
-
300  { \
-
301  return FUNCTION(a, b(), c); \
-
302  }
-
303 
-
304 }//namespace detail
-
305 }//namespace glm
-
306 
-
307 namespace glm
-
308 {
-
309  namespace detail
-
310  {
-
311  _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)
-
312  _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)
-
313  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)
-
314  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)
-
315  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)
-
316  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)
-
317  }
-
318 
-
319  //
-
320  // Swizzles are distinct types from the unswizzled type. The below macros will
-
321  // provide template specializations for the swizzle types for the given functions
-
322  // so that the compiler does not have any ambiguity to choosing how to handle
-
323  // the function.
-
324  //
-
325  // The alternative is to use the operator()() when calling the function in order
-
326  // to explicitly convert the swizzled type to the unswizzled type.
-
327  //
-
328 
-
329  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);
-
330  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);
-
331  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);
-
332  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);
-
333  //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);
-
334 
-
335  //_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);
-
336  //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);
-
337  //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step);
-
338  //_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);
-
339 }
-
340 
-
341 #define _GLM_SWIZZLE2_2_MEMBERS(T, P, V, E0,E1) \
-
342  struct { _swizzle<2, T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
-
343  struct { _swizzle<2, T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
-
344  struct { _swizzle<2, T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
-
345  struct { _swizzle<2, T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; };
-
346 
-
347 #define _GLM_SWIZZLE2_3_MEMBERS(T, P, V, E0,E1) \
-
348  struct { _swizzle<3,T, P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
-
349  struct { _swizzle<3,T, P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
-
350  struct { _swizzle<3,T, P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
-
351  struct { _swizzle<3,T, P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
-
352  struct { _swizzle<3,T, P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
-
353  struct { _swizzle<3,T, P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
-
354  struct { _swizzle<3,T, P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
-
355  struct { _swizzle<3,T, P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; };
-
356 
-
357 #define _GLM_SWIZZLE2_4_MEMBERS(T, P, V, E0,E1) \
-
358  struct { _swizzle<4,T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
-
359  struct { _swizzle<4,T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
-
360  struct { _swizzle<4,T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
-
361  struct { _swizzle<4,T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
-
362  struct { _swizzle<4,T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
-
363  struct { _swizzle<4,T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
-
364  struct { _swizzle<4,T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
-
365  struct { _swizzle<4,T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
-
366  struct { _swizzle<4,T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
-
367  struct { _swizzle<4,T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
-
368  struct { _swizzle<4,T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
-
369  struct { _swizzle<4,T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
-
370  struct { _swizzle<4,T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
-
371  struct { _swizzle<4,T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
-
372  struct { _swizzle<4,T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
-
373  struct { _swizzle<4,T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; };
-
374 
-
375 #define _GLM_SWIZZLE3_2_MEMBERS(T, P, V, E0,E1,E2) \
-
376  struct { _swizzle<2,T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
-
377  struct { _swizzle<2,T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
-
378  struct { _swizzle<2,T, P, V<T, P>, 0,2,-1,-2> E0 ## E2; }; \
-
379  struct { _swizzle<2,T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
-
380  struct { _swizzle<2,T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; }; \
-
381  struct { _swizzle<2,T, P, V<T, P>, 1,2,-1,-2> E1 ## E2; }; \
-
382  struct { _swizzle<2,T, P, V<T, P>, 2,0,-1,-2> E2 ## E0; }; \
-
383  struct { _swizzle<2,T, P, V<T, P>, 2,1,-1,-2> E2 ## E1; }; \
-
384  struct { _swizzle<2,T, P, V<T, P>, 2,2,-1,-2> E2 ## E2; };
-
385 
-
386 #define _GLM_SWIZZLE3_3_MEMBERS(T, P, V ,E0,E1,E2) \
-
387  struct { _swizzle<3,T,P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
-
388  struct { _swizzle<3,T,P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
-
389  struct { _swizzle<3,T,P, V<T, P>, 0,0,2,-1> E0 ## E0 ## E2; }; \
-
390  struct { _swizzle<3,T,P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
-
391  struct { _swizzle<3,T,P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
-
392  struct { _swizzle<3,T,P, V<T, P>, 0,1,2,-1> E0 ## E1 ## E2; }; \
-
393  struct { _swizzle<3,T,P, V<T, P>, 0,2,0,-1> E0 ## E2 ## E0; }; \
-
394  struct { _swizzle<3,T,P, V<T, P>, 0,2,1,-1> E0 ## E2 ## E1; }; \
-
395  struct { _swizzle<3,T,P, V<T, P>, 0,2,2,-1> E0 ## E2 ## E2; }; \
-
396  struct { _swizzle<3,T,P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
-
397  struct { _swizzle<3,T,P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
-
398  struct { _swizzle<3,T,P, V<T, P>, 1,0,2,-1> E1 ## E0 ## E2; }; \
-
399  struct { _swizzle<3,T,P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
-
400  struct { _swizzle<3,T,P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; }; \
-
401  struct { _swizzle<3,T,P, V<T, P>, 1,1,2,-1> E1 ## E1 ## E2; }; \
-
402  struct { _swizzle<3,T,P, V<T, P>, 1,2,0,-1> E1 ## E2 ## E0; }; \
-
403  struct { _swizzle<3,T,P, V<T, P>, 1,2,1,-1> E1 ## E2 ## E1; }; \
-
404  struct { _swizzle<3,T,P, V<T, P>, 1,2,2,-1> E1 ## E2 ## E2; }; \
-
405  struct { _swizzle<3,T,P, V<T, P>, 2,0,0,-1> E2 ## E0 ## E0; }; \
-
406  struct { _swizzle<3,T,P, V<T, P>, 2,0,1,-1> E2 ## E0 ## E1; }; \
-
407  struct { _swizzle<3,T,P, V<T, P>, 2,0,2,-1> E2 ## E0 ## E2; }; \
-
408  struct { _swizzle<3,T,P, V<T, P>, 2,1,0,-1> E2 ## E1 ## E0; }; \
-
409  struct { _swizzle<3,T,P, V<T, P>, 2,1,1,-1> E2 ## E1 ## E1; }; \
-
410  struct { _swizzle<3,T,P, V<T, P>, 2,1,2,-1> E2 ## E1 ## E2; }; \
-
411  struct { _swizzle<3,T,P, V<T, P>, 2,2,0,-1> E2 ## E2 ## E0; }; \
-
412  struct { _swizzle<3,T,P, V<T, P>, 2,2,1,-1> E2 ## E2 ## E1; }; \
-
413  struct { _swizzle<3,T,P, V<T, P>, 2,2,2,-1> E2 ## E2 ## E2; };
-
414 
-
415 #define _GLM_SWIZZLE3_4_MEMBERS(T, P, V, E0,E1,E2) \
-
416  struct { _swizzle<4,T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
-
417  struct { _swizzle<4,T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
-
418  struct { _swizzle<4,T, P, V<T, P>, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
-
419  struct { _swizzle<4,T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
-
420  struct { _swizzle<4,T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
-
421  struct { _swizzle<4,T, P, V<T, P>, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
-
422  struct { _swizzle<4,T, P, V<T, P>, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
-
423  struct { _swizzle<4,T, P, V<T, P>, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
-
424  struct { _swizzle<4,T, P, V<T, P>, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
-
425  struct { _swizzle<4,T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
-
426  struct { _swizzle<4,T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
-
427  struct { _swizzle<4,T, P, V<T, P>, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
-
428  struct { _swizzle<4,T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
-
429  struct { _swizzle<4,T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
-
430  struct { _swizzle<4,T, P, V<T, P>, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
-
431  struct { _swizzle<4,T, P, V<T, P>, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
-
432  struct { _swizzle<4,T, P, V<T, P>, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
-
433  struct { _swizzle<4,T, P, V<T, P>, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
-
434  struct { _swizzle<4,T, P, V<T, P>, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
-
435  struct { _swizzle<4,T, P, V<T, P>, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
-
436  struct { _swizzle<4,T, P, V<T, P>, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
-
437  struct { _swizzle<4,T, P, V<T, P>, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
-
438  struct { _swizzle<4,T, P, V<T, P>, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
-
439  struct { _swizzle<4,T, P, V<T, P>, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
-
440  struct { _swizzle<4,T, P, V<T, P>, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
-
441  struct { _swizzle<4,T, P, V<T, P>, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
-
442  struct { _swizzle<4,T, P, V<T, P>, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
-
443  struct { _swizzle<4,T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
-
444  struct { _swizzle<4,T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
-
445  struct { _swizzle<4,T, P, V<T, P>, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
-
446  struct { _swizzle<4,T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
-
447  struct { _swizzle<4,T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
-
448  struct { _swizzle<4,T, P, V<T, P>, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
-
449  struct { _swizzle<4,T, P, V<T, P>, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
-
450  struct { _swizzle<4,T, P, V<T, P>, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
-
451  struct { _swizzle<4,T, P, V<T, P>, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
-
452  struct { _swizzle<4,T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
-
453  struct { _swizzle<4,T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
-
454  struct { _swizzle<4,T, P, V<T, P>, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
-
455  struct { _swizzle<4,T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
-
456  struct { _swizzle<4,T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
-
457  struct { _swizzle<4,T, P, V<T, P>, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
-
458  struct { _swizzle<4,T, P, V<T, P>, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
-
459  struct { _swizzle<4,T, P, V<T, P>, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
-
460  struct { _swizzle<4,T, P, V<T, P>, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
-
461  struct { _swizzle<4,T, P, V<T, P>, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
-
462  struct { _swizzle<4,T, P, V<T, P>, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
-
463  struct { _swizzle<4,T, P, V<T, P>, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
-
464  struct { _swizzle<4,T, P, V<T, P>, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
-
465  struct { _swizzle<4,T, P, V<T, P>, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
-
466  struct { _swizzle<4,T, P, V<T, P>, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
-
467  struct { _swizzle<4,T, P, V<T, P>, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
-
468  struct { _swizzle<4,T, P, V<T, P>, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
-
469  struct { _swizzle<4,T, P, V<T, P>, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
-
470  struct { _swizzle<4,T, P, V<T, P>, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
-
471  struct { _swizzle<4,T, P, V<T, P>, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
-
472  struct { _swizzle<4,T, P, V<T, P>, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
-
473  struct { _swizzle<4,T, P, V<T, P>, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
-
474  struct { _swizzle<4,T, P, V<T, P>, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
-
475  struct { _swizzle<4,T, P, V<T, P>, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
-
476  struct { _swizzle<4,T, P, V<T, P>, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
-
477  struct { _swizzle<4,T, P, V<T, P>, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
-
478  struct { _swizzle<4,T, P, V<T, P>, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
-
479  struct { _swizzle<4,T, P, V<T, P>, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
-
480  struct { _swizzle<4,T, P, V<T, P>, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
-
481  struct { _swizzle<4,T, P, V<T, P>, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
-
482  struct { _swizzle<4,T, P, V<T, P>, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
-
483  struct { _swizzle<4,T, P, V<T, P>, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
-
484  struct { _swizzle<4,T, P, V<T, P>, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
-
485  struct { _swizzle<4,T, P, V<T, P>, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
-
486  struct { _swizzle<4,T, P, V<T, P>, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
-
487  struct { _swizzle<4,T, P, V<T, P>, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
-
488  struct { _swizzle<4,T, P, V<T, P>, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
-
489  struct { _swizzle<4,T, P, V<T, P>, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
-
490  struct { _swizzle<4,T, P, V<T, P>, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
-
491  struct { _swizzle<4,T, P, V<T, P>, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
-
492  struct { _swizzle<4,T, P, V<T, P>, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
-
493  struct { _swizzle<4,T, P, V<T, P>, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
-
494  struct { _swizzle<4,T, P, V<T, P>, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
-
495  struct { _swizzle<4,T, P, V<T, P>, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
-
496  struct { _swizzle<4,T, P, V<T, P>, 2,2,2,2> E2 ## E2 ## E2 ## E2; };
-
497 
-
498 #define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0,E1,E2,E3) \
-
499  struct { _swizzle<2,T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
-
500  struct { _swizzle<2,T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
-
501  struct { _swizzle<2,T, P, V<T, P>, 0,2,-1,-2> E0 ## E2; }; \
-
502  struct { _swizzle<2,T, P, V<T, P>, 0,3,-1,-2> E0 ## E3; }; \
-
503  struct { _swizzle<2,T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
-
504  struct { _swizzle<2,T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; }; \
-
505  struct { _swizzle<2,T, P, V<T, P>, 1,2,-1,-2> E1 ## E2; }; \
-
506  struct { _swizzle<2,T, P, V<T, P>, 1,3,-1,-2> E1 ## E3; }; \
-
507  struct { _swizzle<2,T, P, V<T, P>, 2,0,-1,-2> E2 ## E0; }; \
-
508  struct { _swizzle<2,T, P, V<T, P>, 2,1,-1,-2> E2 ## E1; }; \
-
509  struct { _swizzle<2,T, P, V<T, P>, 2,2,-1,-2> E2 ## E2; }; \
-
510  struct { _swizzle<2,T, P, V<T, P>, 2,3,-1,-2> E2 ## E3; }; \
-
511  struct { _swizzle<2,T, P, V<T, P>, 3,0,-1,-2> E3 ## E0; }; \
-
512  struct { _swizzle<2,T, P, V<T, P>, 3,1,-1,-2> E3 ## E1; }; \
-
513  struct { _swizzle<2,T, P, V<T, P>, 3,2,-1,-2> E3 ## E2; }; \
-
514  struct { _swizzle<2,T, P, V<T, P>, 3,3,-1,-2> E3 ## E3; };
-
515 
-
516 #define _GLM_SWIZZLE4_3_MEMBERS(T,P, V, E0,E1,E2,E3) \
-
517  struct { _swizzle<3,T,P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
-
518  struct { _swizzle<3,T,P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
-
519  struct { _swizzle<3,T,P, V<T, P>, 0,0,2,-1> E0 ## E0 ## E2; }; \
-
520  struct { _swizzle<3,T,P, V<T, P>, 0,0,3,-1> E0 ## E0 ## E3; }; \
-
521  struct { _swizzle<3,T,P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
-
522  struct { _swizzle<3,T,P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
-
523  struct { _swizzle<3,T,P, V<T, P>, 0,1,2,-1> E0 ## E1 ## E2; }; \
-
524  struct { _swizzle<3,T,P, V<T, P>, 0,1,3,-1> E0 ## E1 ## E3; }; \
-
525  struct { _swizzle<3,T,P, V<T, P>, 0,2,0,-1> E0 ## E2 ## E0; }; \
-
526  struct { _swizzle<3,T,P, V<T, P>, 0,2,1,-1> E0 ## E2 ## E1; }; \
-
527  struct { _swizzle<3,T,P, V<T, P>, 0,2,2,-1> E0 ## E2 ## E2; }; \
-
528  struct { _swizzle<3,T,P, V<T, P>, 0,2,3,-1> E0 ## E2 ## E3; }; \
-
529  struct { _swizzle<3,T,P, V<T, P>, 0,3,0,-1> E0 ## E3 ## E0; }; \
-
530  struct { _swizzle<3,T,P, V<T, P>, 0,3,1,-1> E0 ## E3 ## E1; }; \
-
531  struct { _swizzle<3,T,P, V<T, P>, 0,3,2,-1> E0 ## E3 ## E2; }; \
-
532  struct { _swizzle<3,T,P, V<T, P>, 0,3,3,-1> E0 ## E3 ## E3; }; \
-
533  struct { _swizzle<3,T,P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
-
534  struct { _swizzle<3,T,P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
-
535  struct { _swizzle<3,T,P, V<T, P>, 1,0,2,-1> E1 ## E0 ## E2; }; \
-
536  struct { _swizzle<3,T,P, V<T, P>, 1,0,3,-1> E1 ## E0 ## E3; }; \
-
537  struct { _swizzle<3,T,P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
-
538  struct { _swizzle<3,T,P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; }; \
-
539  struct { _swizzle<3,T,P, V<T, P>, 1,1,2,-1> E1 ## E1 ## E2; }; \
-
540  struct { _swizzle<3,T,P, V<T, P>, 1,1,3,-1> E1 ## E1 ## E3; }; \
-
541  struct { _swizzle<3,T,P, V<T, P>, 1,2,0,-1> E1 ## E2 ## E0; }; \
-
542  struct { _swizzle<3,T,P, V<T, P>, 1,2,1,-1> E1 ## E2 ## E1; }; \
-
543  struct { _swizzle<3,T,P, V<T, P>, 1,2,2,-1> E1 ## E2 ## E2; }; \
-
544  struct { _swizzle<3,T,P, V<T, P>, 1,2,3,-1> E1 ## E2 ## E3; }; \
-
545  struct { _swizzle<3,T,P, V<T, P>, 1,3,0,-1> E1 ## E3 ## E0; }; \
-
546  struct { _swizzle<3,T,P, V<T, P>, 1,3,1,-1> E1 ## E3 ## E1; }; \
-
547  struct { _swizzle<3,T,P, V<T, P>, 1,3,2,-1> E1 ## E3 ## E2; }; \
-
548  struct { _swizzle<3,T,P, V<T, P>, 1,3,3,-1> E1 ## E3 ## E3; }; \
-
549  struct { _swizzle<3,T,P, V<T, P>, 2,0,0,-1> E2 ## E0 ## E0; }; \
-
550  struct { _swizzle<3,T,P, V<T, P>, 2,0,1,-1> E2 ## E0 ## E1; }; \
-
551  struct { _swizzle<3,T,P, V<T, P>, 2,0,2,-1> E2 ## E0 ## E2; }; \
-
552  struct { _swizzle<3,T,P, V<T, P>, 2,0,3,-1> E2 ## E0 ## E3; }; \
-
553  struct { _swizzle<3,T,P, V<T, P>, 2,1,0,-1> E2 ## E1 ## E0; }; \
-
554  struct { _swizzle<3,T,P, V<T, P>, 2,1,1,-1> E2 ## E1 ## E1; }; \
-
555  struct { _swizzle<3,T,P, V<T, P>, 2,1,2,-1> E2 ## E1 ## E2; }; \
-
556  struct { _swizzle<3,T,P, V<T, P>, 2,1,3,-1> E2 ## E1 ## E3; }; \
-
557  struct { _swizzle<3,T,P, V<T, P>, 2,2,0,-1> E2 ## E2 ## E0; }; \
-
558  struct { _swizzle<3,T,P, V<T, P>, 2,2,1,-1> E2 ## E2 ## E1; }; \
-
559  struct { _swizzle<3,T,P, V<T, P>, 2,2,2,-1> E2 ## E2 ## E2; }; \
-
560  struct { _swizzle<3,T,P, V<T, P>, 2,2,3,-1> E2 ## E2 ## E3; }; \
-
561  struct { _swizzle<3,T,P, V<T, P>, 2,3,0,-1> E2 ## E3 ## E0; }; \
-
562  struct { _swizzle<3,T,P, V<T, P>, 2,3,1,-1> E2 ## E3 ## E1; }; \
-
563  struct { _swizzle<3,T,P, V<T, P>, 2,3,2,-1> E2 ## E3 ## E2; }; \
-
564  struct { _swizzle<3,T,P, V<T, P>, 2,3,3,-1> E2 ## E3 ## E3; }; \
-
565  struct { _swizzle<3,T,P, V<T, P>, 3,0,0,-1> E3 ## E0 ## E0; }; \
-
566  struct { _swizzle<3,T,P, V<T, P>, 3,0,1,-1> E3 ## E0 ## E1; }; \
-
567  struct { _swizzle<3,T,P, V<T, P>, 3,0,2,-1> E3 ## E0 ## E2; }; \
-
568  struct { _swizzle<3,T,P, V<T, P>, 3,0,3,-1> E3 ## E0 ## E3; }; \
-
569  struct { _swizzle<3,T,P, V<T, P>, 3,1,0,-1> E3 ## E1 ## E0; }; \
-
570  struct { _swizzle<3,T,P, V<T, P>, 3,1,1,-1> E3 ## E1 ## E1; }; \
-
571  struct { _swizzle<3,T,P, V<T, P>, 3,1,2,-1> E3 ## E1 ## E2; }; \
-
572  struct { _swizzle<3,T,P, V<T, P>, 3,1,3,-1> E3 ## E1 ## E3; }; \
-
573  struct { _swizzle<3,T,P, V<T, P>, 3,2,0,-1> E3 ## E2 ## E0; }; \
-
574  struct { _swizzle<3,T,P, V<T, P>, 3,2,1,-1> E3 ## E2 ## E1; }; \
-
575  struct { _swizzle<3,T,P, V<T, P>, 3,2,2,-1> E3 ## E2 ## E2; }; \
-
576  struct { _swizzle<3,T,P, V<T, P>, 3,2,3,-1> E3 ## E2 ## E3; }; \
-
577  struct { _swizzle<3,T,P, V<T, P>, 3,3,0,-1> E3 ## E3 ## E0; }; \
-
578  struct { _swizzle<3,T,P, V<T, P>, 3,3,1,-1> E3 ## E3 ## E1; }; \
-
579  struct { _swizzle<3,T,P, V<T, P>, 3,3,2,-1> E3 ## E3 ## E2; }; \
-
580  struct { _swizzle<3,T,P, V<T, P>, 3,3,3,-1> E3 ## E3 ## E3; };
-
581 
-
582 #define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0,E1,E2,E3) \
-
583  struct { _swizzle<4, T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
-
584  struct { _swizzle<4, T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
-
585  struct { _swizzle<4, T, P, V<T, P>, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
-
586  struct { _swizzle<4, T, P, V<T, P>, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \
-
587  struct { _swizzle<4, T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
-
588  struct { _swizzle<4, T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
-
589  struct { _swizzle<4, T, P, V<T, P>, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
-
590  struct { _swizzle<4, T, P, V<T, P>, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \
-
591  struct { _swizzle<4, T, P, V<T, P>, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
-
592  struct { _swizzle<4, T, P, V<T, P>, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
-
593  struct { _swizzle<4, T, P, V<T, P>, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
-
594  struct { _swizzle<4, T, P, V<T, P>, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \
-
595  struct { _swizzle<4, T, P, V<T, P>, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \
-
596  struct { _swizzle<4, T, P, V<T, P>, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \
-
597  struct { _swizzle<4, T, P, V<T, P>, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \
-
598  struct { _swizzle<4, T, P, V<T, P>, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \
-
599  struct { _swizzle<4, T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
-
600  struct { _swizzle<4, T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
-
601  struct { _swizzle<4, T, P, V<T, P>, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
-
602  struct { _swizzle<4, T, P, V<T, P>, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \
-
603  struct { _swizzle<4, T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
-
604  struct { _swizzle<4, T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
-
605  struct { _swizzle<4, T, P, V<T, P>, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
-
606  struct { _swizzle<4, T, P, V<T, P>, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \
-
607  struct { _swizzle<4, T, P, V<T, P>, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
-
608  struct { _swizzle<4, T, P, V<T, P>, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
-
609  struct { _swizzle<4, T, P, V<T, P>, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
-
610  struct { _swizzle<4, T, P, V<T, P>, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \
-
611  struct { _swizzle<4, T, P, V<T, P>, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \
-
612  struct { _swizzle<4, T, P, V<T, P>, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \
-
613  struct { _swizzle<4, T, P, V<T, P>, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \
-
614  struct { _swizzle<4, T, P, V<T, P>, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \
-
615  struct { _swizzle<4, T, P, V<T, P>, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
-
616  struct { _swizzle<4, T, P, V<T, P>, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
-
617  struct { _swizzle<4, T, P, V<T, P>, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
-
618  struct { _swizzle<4, T, P, V<T, P>, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \
-
619  struct { _swizzle<4, T, P, V<T, P>, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
-
620  struct { _swizzle<4, T, P, V<T, P>, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
-
621  struct { _swizzle<4, T, P, V<T, P>, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
-
622  struct { _swizzle<4, T, P, V<T, P>, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \
-
623  struct { _swizzle<4, T, P, V<T, P>, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
-
624  struct { _swizzle<4, T, P, V<T, P>, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
-
625  struct { _swizzle<4, T, P, V<T, P>, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
-
626  struct { _swizzle<4, T, P, V<T, P>, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \
-
627  struct { _swizzle<4, T, P, V<T, P>, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \
-
628  struct { _swizzle<4, T, P, V<T, P>, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \
-
629  struct { _swizzle<4, T, P, V<T, P>, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \
-
630  struct { _swizzle<4, T, P, V<T, P>, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \
-
631  struct { _swizzle<4, T, P, V<T, P>, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \
-
632  struct { _swizzle<4, T, P, V<T, P>, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \
-
633  struct { _swizzle<4, T, P, V<T, P>, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \
-
634  struct { _swizzle<4, T, P, V<T, P>, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \
-
635  struct { _swizzle<4, T, P, V<T, P>, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \
-
636  struct { _swizzle<4, T, P, V<T, P>, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \
-
637  struct { _swizzle<4, T, P, V<T, P>, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \
-
638  struct { _swizzle<4, T, P, V<T, P>, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \
-
639  struct { _swizzle<4, T, P, V<T, P>, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \
-
640  struct { _swizzle<4, T, P, V<T, P>, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \
-
641  struct { _swizzle<4, T, P, V<T, P>, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \
-
642  struct { _swizzle<4, T, P, V<T, P>, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \
-
643  struct { _swizzle<4, T, P, V<T, P>, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \
-
644  struct { _swizzle<4, T, P, V<T, P>, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \
-
645  struct { _swizzle<4, T, P, V<T, P>, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \
-
646  struct { _swizzle<4, T, P, V<T, P>, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \
-
647  struct { _swizzle<4, T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
-
648  struct { _swizzle<4, T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
-
649  struct { _swizzle<4, T, P, V<T, P>, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
-
650  struct { _swizzle<4, T, P, V<T, P>, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \
-
651  struct { _swizzle<4, T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
-
652  struct { _swizzle<4, T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
-
653  struct { _swizzle<4, T, P, V<T, P>, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
-
654  struct { _swizzle<4, T, P, V<T, P>, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \
-
655  struct { _swizzle<4, T, P, V<T, P>, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
-
656  struct { _swizzle<4, T, P, V<T, P>, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
-
657  struct { _swizzle<4, T, P, V<T, P>, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
-
658  struct { _swizzle<4, T, P, V<T, P>, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \
-
659  struct { _swizzle<4, T, P, V<T, P>, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \
-
660  struct { _swizzle<4, T, P, V<T, P>, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \
-
661  struct { _swizzle<4, T, P, V<T, P>, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \
-
662  struct { _swizzle<4, T, P, V<T, P>, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \
-
663  struct { _swizzle<4, T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
-
664  struct { _swizzle<4, T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
-
665  struct { _swizzle<4, T, P, V<T, P>, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
-
666  struct { _swizzle<4, T, P, V<T, P>, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \
-
667  struct { _swizzle<4, T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
-
668  struct { _swizzle<4, T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
-
669  struct { _swizzle<4, T, P, V<T, P>, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
-
670  struct { _swizzle<4, T, P, V<T, P>, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \
-
671  struct { _swizzle<4, T, P, V<T, P>, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
-
672  struct { _swizzle<4, T, P, V<T, P>, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
-
673  struct { _swizzle<4, T, P, V<T, P>, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
-
674  struct { _swizzle<4, T, P, V<T, P>, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \
-
675  struct { _swizzle<4, T, P, V<T, P>, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \
-
676  struct { _swizzle<4, T, P, V<T, P>, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \
-
677  struct { _swizzle<4, T, P, V<T, P>, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \
-
678  struct { _swizzle<4, T, P, V<T, P>, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \
-
679  struct { _swizzle<4, T, P, V<T, P>, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
-
680  struct { _swizzle<4, T, P, V<T, P>, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
-
681  struct { _swizzle<4, T, P, V<T, P>, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
-
682  struct { _swizzle<4, T, P, V<T, P>, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \
-
683  struct { _swizzle<4, T, P, V<T, P>, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
-
684  struct { _swizzle<4, T, P, V<T, P>, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
-
685  struct { _swizzle<4, T, P, V<T, P>, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
-
686  struct { _swizzle<4, T, P, V<T, P>, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \
-
687  struct { _swizzle<4, T, P, V<T, P>, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
-
688  struct { _swizzle<4, T, P, V<T, P>, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
-
689  struct { _swizzle<4, T, P, V<T, P>, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
-
690  struct { _swizzle<4, T, P, V<T, P>, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \
-
691  struct { _swizzle<4, T, P, V<T, P>, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \
-
692  struct { _swizzle<4, T, P, V<T, P>, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \
-
693  struct { _swizzle<4, T, P, V<T, P>, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \
-
694  struct { _swizzle<4, T, P, V<T, P>, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \
-
695  struct { _swizzle<4, T, P, V<T, P>, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \
-
696  struct { _swizzle<4, T, P, V<T, P>, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \
-
697  struct { _swizzle<4, T, P, V<T, P>, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \
-
698  struct { _swizzle<4, T, P, V<T, P>, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \
-
699  struct { _swizzle<4, T, P, V<T, P>, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \
-
700  struct { _swizzle<4, T, P, V<T, P>, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \
-
701  struct { _swizzle<4, T, P, V<T, P>, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \
-
702  struct { _swizzle<4, T, P, V<T, P>, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \
-
703  struct { _swizzle<4, T, P, V<T, P>, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \
-
704  struct { _swizzle<4, T, P, V<T, P>, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \
-
705  struct { _swizzle<4, T, P, V<T, P>, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \
-
706  struct { _swizzle<4, T, P, V<T, P>, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \
-
707  struct { _swizzle<4, T, P, V<T, P>, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \
-
708  struct { _swizzle<4, T, P, V<T, P>, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \
-
709  struct { _swizzle<4, T, P, V<T, P>, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \
-
710  struct { _swizzle<4, T, P, V<T, P>, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \
-
711  struct { _swizzle<4, T, P, V<T, P>, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
-
712  struct { _swizzle<4, T, P, V<T, P>, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
-
713  struct { _swizzle<4, T, P, V<T, P>, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
-
714  struct { _swizzle<4, T, P, V<T, P>, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \
-
715  struct { _swizzle<4, T, P, V<T, P>, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
-
716  struct { _swizzle<4, T, P, V<T, P>, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
-
717  struct { _swizzle<4, T, P, V<T, P>, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
-
718  struct { _swizzle<4, T, P, V<T, P>, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \
-
719  struct { _swizzle<4, T, P, V<T, P>, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
-
720  struct { _swizzle<4, T, P, V<T, P>, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
-
721  struct { _swizzle<4, T, P, V<T, P>, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
-
722  struct { _swizzle<4, T, P, V<T, P>, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \
-
723  struct { _swizzle<4, T, P, V<T, P>, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \
-
724  struct { _swizzle<4, T, P, V<T, P>, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \
-
725  struct { _swizzle<4, T, P, V<T, P>, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \
-
726  struct { _swizzle<4, T, P, V<T, P>, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \
-
727  struct { _swizzle<4, T, P, V<T, P>, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
-
728  struct { _swizzle<4, T, P, V<T, P>, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
-
729  struct { _swizzle<4, T, P, V<T, P>, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
-
730  struct { _swizzle<4, T, P, V<T, P>, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \
-
731  struct { _swizzle<4, T, P, V<T, P>, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
-
732  struct { _swizzle<4, T, P, V<T, P>, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
-
733  struct { _swizzle<4, T, P, V<T, P>, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
-
734  struct { _swizzle<4, T, P, V<T, P>, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \
-
735  struct { _swizzle<4, T, P, V<T, P>, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
-
736  struct { _swizzle<4, T, P, V<T, P>, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
-
737  struct { _swizzle<4, T, P, V<T, P>, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
-
738  struct { _swizzle<4, T, P, V<T, P>, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \
-
739  struct { _swizzle<4, T, P, V<T, P>, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \
-
740  struct { _swizzle<4, T, P, V<T, P>, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \
-
741  struct { _swizzle<4, T, P, V<T, P>, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \
-
742  struct { _swizzle<4, T, P, V<T, P>, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \
-
743  struct { _swizzle<4, T, P, V<T, P>, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
-
744  struct { _swizzle<4, T, P, V<T, P>, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
-
745  struct { _swizzle<4, T, P, V<T, P>, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
-
746  struct { _swizzle<4, T, P, V<T, P>, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \
-
747  struct { _swizzle<4, T, P, V<T, P>, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
-
748  struct { _swizzle<4, T, P, V<T, P>, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
-
749  struct { _swizzle<4, T, P, V<T, P>, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
-
750  struct { _swizzle<4, T, P, V<T, P>, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \
-
751  struct { _swizzle<4, T, P, V<T, P>, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
-
752  struct { _swizzle<4, T, P, V<T, P>, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
-
753  struct { _swizzle<4, T, P, V<T, P>, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \
-
754  struct { _swizzle<4, T, P, V<T, P>, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \
-
755  struct { _swizzle<4, T, P, V<T, P>, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \
-
756  struct { _swizzle<4, T, P, V<T, P>, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \
-
757  struct { _swizzle<4, T, P, V<T, P>, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \
-
758  struct { _swizzle<4, T, P, V<T, P>, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \
-
759  struct { _swizzle<4, T, P, V<T, P>, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \
-
760  struct { _swizzle<4, T, P, V<T, P>, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \
-
761  struct { _swizzle<4, T, P, V<T, P>, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \
-
762  struct { _swizzle<4, T, P, V<T, P>, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \
-
763  struct { _swizzle<4, T, P, V<T, P>, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \
-
764  struct { _swizzle<4, T, P, V<T, P>, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \
-
765  struct { _swizzle<4, T, P, V<T, P>, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \
-
766  struct { _swizzle<4, T, P, V<T, P>, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \
-
767  struct { _swizzle<4, T, P, V<T, P>, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \
-
768  struct { _swizzle<4, T, P, V<T, P>, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \
-
769  struct { _swizzle<4, T, P, V<T, P>, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \
-
770  struct { _swizzle<4, T, P, V<T, P>, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \
-
771  struct { _swizzle<4, T, P, V<T, P>, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \
-
772  struct { _swizzle<4, T, P, V<T, P>, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \
-
773  struct { _swizzle<4, T, P, V<T, P>, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \
-
774  struct { _swizzle<4, T, P, V<T, P>, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \
-
775  struct { _swizzle<4, T, P, V<T, P>, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \
-
776  struct { _swizzle<4, T, P, V<T, P>, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \
-
777  struct { _swizzle<4, T, P, V<T, P>, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \
-
778  struct { _swizzle<4, T, P, V<T, P>, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \
-
779  struct { _swizzle<4, T, P, V<T, P>, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \
-
780  struct { _swizzle<4, T, P, V<T, P>, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \
-
781  struct { _swizzle<4, T, P, V<T, P>, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \
-
782  struct { _swizzle<4, T, P, V<T, P>, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \
-
783  struct { _swizzle<4, T, P, V<T, P>, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \
-
784  struct { _swizzle<4, T, P, V<T, P>, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \
-
785  struct { _swizzle<4, T, P, V<T, P>, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \
-
786  struct { _swizzle<4, T, P, V<T, P>, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \
-
787  struct { _swizzle<4, T, P, V<T, P>, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \
-
788  struct { _swizzle<4, T, P, V<T, P>, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \
-
789  struct { _swizzle<4, T, P, V<T, P>, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \
-
790  struct { _swizzle<4, T, P, V<T, P>, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \
-
791  struct { _swizzle<4, T, P, V<T, P>, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \
-
792  struct { _swizzle<4, T, P, V<T, P>, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \
-
793  struct { _swizzle<4, T, P, V<T, P>, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \
-
794  struct { _swizzle<4, T, P, V<T, P>, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \
-
795  struct { _swizzle<4, T, P, V<T, P>, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \
-
796  struct { _swizzle<4, T, P, V<T, P>, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \
-
797  struct { _swizzle<4, T, P, V<T, P>, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \
-
798  struct { _swizzle<4, T, P, V<T, P>, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \
-
799  struct { _swizzle<4, T, P, V<T, P>, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \
-
800  struct { _swizzle<4, T, P, V<T, P>, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \
-
801  struct { _swizzle<4, T, P, V<T, P>, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \
-
802  struct { _swizzle<4, T, P, V<T, P>, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \
-
803  struct { _swizzle<4, T, P, V<T, P>, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \
-
804  struct { _swizzle<4, T, P, V<T, P>, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \
-
805  struct { _swizzle<4, T, P, V<T, P>, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \
-
806  struct { _swizzle<4, T, P, V<T, P>, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \
-
807  struct { _swizzle<4, T, P, V<T, P>, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \
-
808  struct { _swizzle<4, T, P, V<T, P>, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \
-
809  struct { _swizzle<4, T, P, V<T, P>, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \
-
810  struct { _swizzle<4, T, P, V<T, P>, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \
-
811  struct { _swizzle<4, T, P, V<T, P>, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \
-
812  struct { _swizzle<4, T, P, V<T, P>, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \
-
813  struct { _swizzle<4, T, P, V<T, P>, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \
-
814  struct { _swizzle<4, T, P, V<T, P>, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \
-
815  struct { _swizzle<4, T, P, V<T, P>, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \
-
816  struct { _swizzle<4, T, P, V<T, P>, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \
-
817  struct { _swizzle<4, T, P, V<T, P>, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \
-
818  struct { _swizzle<4, T, P, V<T, P>, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \
-
819  struct { _swizzle<4, T, P, V<T, P>, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \
-
820  struct { _swizzle<4, T, P, V<T, P>, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \
-
821  struct { _swizzle<4, T, P, V<T, P>, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \
-
822  struct { _swizzle<4, T, P, V<T, P>, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \
-
823  struct { _swizzle<4, T, P, V<T, P>, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \
-
824  struct { _swizzle<4, T, P, V<T, P>, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \
-
825  struct { _swizzle<4, T, P, V<T, P>, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \
-
826  struct { _swizzle<4, T, P, V<T, P>, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \
-
827  struct { _swizzle<4, T, P, V<T, P>, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \
-
828  struct { _swizzle<4, T, P, V<T, P>, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \
-
829  struct { _swizzle<4, T, P, V<T, P>, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \
-
830  struct { _swizzle<4, T, P, V<T, P>, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \
-
831  struct { _swizzle<4, T, P, V<T, P>, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \
-
832  struct { _swizzle<4, T, P, V<T, P>, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \
-
833  struct { _swizzle<4, T, P, V<T, P>, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \
-
834  struct { _swizzle<4, T, P, V<T, P>, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \
-
835  struct { _swizzle<4, T, P, V<T, P>, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \
-
836  struct { _swizzle<4, T, P, V<T, P>, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \
-
837  struct { _swizzle<4, T, P, V<T, P>, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \
-
838  struct { _swizzle<4, T, P, V<T, P>, 3,3,3,3> E3 ## E3 ## E3 ## E3; };
-
839 
-
840 #endif//glm_core_swizzle
-
GLM_FUNC_DECL genType e()
Return e constant.
-
- - - - diff --git a/3party/glm/doc/api/a00009_source.html b/3party/glm/doc/api/a00009_source.html deleted file mode 100755 index 6f7e5dd41f..0000000000 --- a/3party/glm/doc/api/a00009_source.html +++ /dev/null @@ -1,759 +0,0 @@ - - - - - - -GLM: _swizzle_func.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
_swizzle_func.hpp
-
-
-
1 
-
29 #ifndef glm_core_swizzle_func
-
30 #define glm_core_swizzle_func
-
31 
-
32 #define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \
-
33  SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B() CONST \
-
34  { \
-
35  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \
-
36  }
-
37 
-
38 #define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \
-
39  SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C() CONST \
-
40  { \
-
41  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \
-
42  }
-
43 
-
44 #define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \
-
45  SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C ## D() CONST \
-
46  { \
-
47  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \
-
48  }
-
49 
-
50 #define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \
-
51  template <typename TMPL_TYPE> \
-
52  SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B() CONST \
-
53  { \
-
54  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \
-
55  }
-
56 
-
57 #define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \
-
58  template <typename TMPL_TYPE> \
-
59  SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C() CONST \
-
60  { \
-
61  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \
-
62  }
-
63 
-
64 #define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \
-
65  template <typename TMPL_TYPE> \
-
66  SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C ## D() CONST \
-
67  { \
-
68  return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \
-
69  }
-
70 
-
71 #define GLM_MUTABLE
-
72 
-
73 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
-
74  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
-
75  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A)
-
76 
-
77 #define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \
-
78  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \
-
79  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \
-
80  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t)
-
81 
-
82 //GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2)
-
83 
-
84 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
-
85  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
-
86  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \
-
87  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \
-
88  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \
-
89  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \
-
90  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B)
-
91 
-
92 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
-
93  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \
-
94  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \
-
95  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \
-
96  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \
-
97  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \
-
98  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A)
-
99 
-
100 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
-
101  GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
-
102  GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C)
-
103 
-
104 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \
-
105  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \
-
106  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \
-
107  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, p)
-
108 
-
109 //GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3)
-
110 
-
111 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
112  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \
-
113  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \
-
114  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \
-
115  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \
-
116  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \
-
117  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \
-
118  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \
-
119  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \
-
120  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \
-
121  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \
-
122  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \
-
123  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C)
-
124 
-
125 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
126  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \
-
127  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \
-
128  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \
-
129  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \
-
130  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \
-
131  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \
-
132  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \
-
133  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \
-
134  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \
-
135  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \
-
136  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \
-
137  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \
-
138  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \
-
139  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \
-
140  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \
-
141  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \
-
142  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \
-
143  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \
-
144  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \
-
145  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \
-
146  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \
-
147  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \
-
148  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \
-
149  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B)
-
150 
-
151 #define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
152  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \
-
153  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \
-
154  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \
-
155  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \
-
156  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \
-
157  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \
-
158  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \
-
159  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \
-
160  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \
-
161  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \
-
162  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \
-
163  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \
-
164  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \
-
165  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \
-
166  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \
-
167  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \
-
168  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \
-
169  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \
-
170  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \
-
171  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \
-
172  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \
-
173  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \
-
174  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \
-
175  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A)
-
176 
-
177 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \
-
178  GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \
-
179  GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \
-
180  GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)
-
181 
-
182 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
-
183  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \
-
184  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \
-
185  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)
-
186 
-
187 //GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4)
-
188 
-
189 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
-
190  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
-
191  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
-
192  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
-
193  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B)
-
194 
-
195 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
-
196  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
-
197  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
-
198  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
-
199  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
-
200  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
-
201  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
-
202  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
-
203  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B)
-
204 
-
205 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \
-
206  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
-
207  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
-
208  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
-
209  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
-
210  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
-
211  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
-
212  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
-
213  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
-
214  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
-
215  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
-
216  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
-
217  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
-
218  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
-
219  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
-
220  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
-
221  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B)
-
222 
-
223 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \
-
224  GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \
-
225  GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \
-
226  GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B)
-
227 
-
228 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
-
229  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \
-
230  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \
-
231  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t)
-
232 
-
233 //GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4)
-
234 
-
235 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
-
236  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
-
237  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
-
238  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \
-
239  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
-
240  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \
-
241  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \
-
242  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \
-
243  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \
-
244  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C)
-
245 
-
246 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
-
247  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
-
248  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
-
249  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \
-
250  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
-
251  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
-
252  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \
-
253  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \
-
254  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \
-
255  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \
-
256  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
-
257  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
-
258  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \
-
259  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
-
260  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \
-
261  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \
-
262  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \
-
263  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \
-
264  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \
-
265  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \
-
266  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \
-
267  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \
-
268  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \
-
269  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \
-
270  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \
-
271  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \
-
272  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \
-
273  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C)
-
274 
-
275 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \
-
276  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
-
277  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
-
278  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \
-
279  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
-
280  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
-
281  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \
-
282  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \
-
283  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \
-
284  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \
-
285  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
-
286  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
-
287  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \
-
288  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
-
289  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
-
290  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \
-
291  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \
-
292  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \
-
293  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \
-
294  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \
-
295  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \
-
296  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \
-
297  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \
-
298  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \
-
299  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \
-
300  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \
-
301  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \
-
302  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \
-
303  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
-
304  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
-
305  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \
-
306  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
-
307  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
-
308  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \
-
309  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \
-
310  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \
-
311  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \
-
312  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
-
313  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
-
314  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \
-
315  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
-
316  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \
-
317  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \
-
318  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \
-
319  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \
-
320  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \
-
321  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \
-
322  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \
-
323  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \
-
324  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \
-
325  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \
-
326  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \
-
327  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \
-
328  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \
-
329  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \
-
330  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \
-
331  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \
-
332  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \
-
333  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \
-
334  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \
-
335  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \
-
336  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \
-
337  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \
-
338  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \
-
339  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \
-
340  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \
-
341  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \
-
342  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \
-
343  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \
-
344  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \
-
345  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \
-
346  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \
-
347  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \
-
348  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \
-
349  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \
-
350  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \
-
351  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \
-
352  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \
-
353  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \
-
354  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \
-
355  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \
-
356  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C)
-
357 
-
358 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \
-
359  GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \
-
360  GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \
-
361  GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C)
-
362 
-
363 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
-
364  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \
-
365  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \
-
366  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p)
-
367 
-
368 //GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4)
-
369 
-
370 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
371  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \
-
372  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \
-
373  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \
-
374  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \
-
375  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \
-
376  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \
-
377  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \
-
378  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \
-
379  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \
-
380  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \
-
381  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \
-
382  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \
-
383  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \
-
384  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \
-
385  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \
-
386  GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D)
-
387 
-
388 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
389  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \
-
390  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \
-
391  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \
-
392  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \
-
393  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \
-
394  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \
-
395  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \
-
396  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \
-
397  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \
-
398  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \
-
399  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \
-
400  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \
-
401  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \
-
402  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \
-
403  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \
-
404  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \
-
405  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \
-
406  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \
-
407  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \
-
408  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \
-
409  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \
-
410  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \
-
411  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \
-
412  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \
-
413  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \
-
414  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \
-
415  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \
-
416  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \
-
417  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \
-
418  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \
-
419  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \
-
420  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \
-
421  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \
-
422  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \
-
423  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \
-
424  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \
-
425  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \
-
426  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \
-
427  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \
-
428  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \
-
429  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \
-
430  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \
-
431  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \
-
432  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \
-
433  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \
-
434  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \
-
435  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \
-
436  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \
-
437  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \
-
438  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \
-
439  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \
-
440  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \
-
441  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \
-
442  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \
-
443  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \
-
444  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \
-
445  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \
-
446  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \
-
447  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \
-
448  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \
-
449  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \
-
450  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \
-
451  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \
-
452  GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D)
-
453 
-
454 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \
-
455  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \
-
456  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \
-
457  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \
-
458  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \
-
459  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \
-
460  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \
-
461  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \
-
462  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \
-
463  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \
-
464  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \
-
465  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \
-
466  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \
-
467  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \
-
468  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \
-
469  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \
-
470  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \
-
471  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \
-
472  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \
-
473  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \
-
474  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \
-
475  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \
-
476  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \
-
477  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \
-
478  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \
-
479  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \
-
480  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \
-
481  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \
-
482  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \
-
483  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \
-
484  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \
-
485  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \
-
486  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \
-
487  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \
-
488  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \
-
489  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \
-
490  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \
-
491  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \
-
492  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \
-
493  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \
-
494  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \
-
495  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \
-
496  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \
-
497  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \
-
498  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \
-
499  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \
-
500  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \
-
501  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \
-
502  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \
-
503  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \
-
504  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \
-
505  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \
-
506  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \
-
507  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \
-
508  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \
-
509  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \
-
510  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \
-
511  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \
-
512  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \
-
513  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \
-
514  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \
-
515  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \
-
516  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \
-
517  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \
-
518  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \
-
519  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \
-
520  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \
-
521  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \
-
522  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \
-
523  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \
-
524  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \
-
525  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \
-
526  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \
-
527  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \
-
528  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \
-
529  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \
-
530  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \
-
531  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \
-
532  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \
-
533  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \
-
534  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \
-
535  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \
-
536  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \
-
537  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \
-
538  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \
-
539  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \
-
540  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \
-
541  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \
-
542  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \
-
543  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \
-
544  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \
-
545  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \
-
546  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \
-
547  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \
-
548  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \
-
549  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \
-
550  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \
-
551  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \
-
552  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \
-
553  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \
-
554  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \
-
555  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \
-
556  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \
-
557  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \
-
558  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \
-
559  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \
-
560  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \
-
561  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \
-
562  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \
-
563  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \
-
564  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \
-
565  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \
-
566  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \
-
567  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \
-
568  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \
-
569  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \
-
570  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \
-
571  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \
-
572  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \
-
573  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \
-
574  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \
-
575  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \
-
576  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \
-
577  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \
-
578  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \
-
579  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \
-
580  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \
-
581  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \
-
582  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \
-
583  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \
-
584  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \
-
585  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \
-
586  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \
-
587  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \
-
588  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \
-
589  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \
-
590  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \
-
591  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \
-
592  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \
-
593  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \
-
594  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \
-
595  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \
-
596  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \
-
597  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \
-
598  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \
-
599  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \
-
600  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \
-
601  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \
-
602  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \
-
603  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \
-
604  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \
-
605  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \
-
606  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \
-
607  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \
-
608  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \
-
609  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \
-
610  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \
-
611  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \
-
612  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \
-
613  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \
-
614  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \
-
615  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \
-
616  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \
-
617  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \
-
618  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \
-
619  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \
-
620  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \
-
621  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \
-
622  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \
-
623  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \
-
624  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \
-
625  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \
-
626  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \
-
627  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \
-
628  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \
-
629  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \
-
630  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \
-
631  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \
-
632  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \
-
633  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \
-
634  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \
-
635  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \
-
636  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \
-
637  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \
-
638  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \
-
639  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \
-
640  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \
-
641  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \
-
642  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \
-
643  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \
-
644  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \
-
645  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \
-
646  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \
-
647  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \
-
648  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \
-
649  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \
-
650  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \
-
651  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \
-
652  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \
-
653  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \
-
654  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \
-
655  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \
-
656  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \
-
657  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \
-
658  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \
-
659  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \
-
660  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \
-
661  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \
-
662  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \
-
663  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \
-
664  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \
-
665  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \
-
666  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \
-
667  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \
-
668  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \
-
669  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \
-
670  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \
-
671  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \
-
672  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \
-
673  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \
-
674  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \
-
675  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \
-
676  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \
-
677  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \
-
678  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \
-
679  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \
-
680  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \
-
681  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \
-
682  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \
-
683  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \
-
684  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \
-
685  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \
-
686  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \
-
687  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \
-
688  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \
-
689  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \
-
690  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \
-
691  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \
-
692  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \
-
693  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \
-
694  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \
-
695  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \
-
696  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \
-
697  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \
-
698  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \
-
699  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \
-
700  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \
-
701  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \
-
702  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \
-
703  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \
-
704  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \
-
705  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \
-
706  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \
-
707  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \
-
708  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \
-
709  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \
-
710  GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D)
-
711 
-
712 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \
-
713  GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \
-
714  GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \
-
715  GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)
-
716 
-
717 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \
-
718  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \
-
719  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \
-
720  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)
-
721 
-
722 //GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)
-
723 
-
724 #endif//glm_core_swizzle_func
-
- - - - diff --git a/3party/glm/doc/api/a00010_source.html b/3party/glm/doc/api/a00010_source.html deleted file mode 100755 index a6d2c8a642..0000000000 --- a/3party/glm/doc/api/a00010_source.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - -GLM: _vectorize.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
_vectorize.hpp
-
-
-
1 
-
29 #ifndef GLM_CORE_DETAIL_INCLUDED
-
30 #define GLM_CORE_DETAIL_INCLUDED
-
31 
-
32 #include "type_vec2.hpp"
-
33 #include "type_vec3.hpp"
-
34 #include "type_vec4.hpp"
-
35 
-
36 #define VECTORIZE2_VEC(func) \
-
37  template <typename T, precision P> \
-
38  GLM_FUNC_QUALIFIER detail::tvec2<T, P> func( \
-
39  detail::tvec2<T, P> const & v) \
-
40  { \
-
41  return detail::tvec2<T, P>( \
-
42  func(v.x), \
-
43  func(v.y)); \
-
44  }
-
45 
-
46 #define VECTORIZE3_VEC(func) \
-
47  template <typename T, precision P> \
-
48  GLM_FUNC_QUALIFIER detail::tvec3<T, P> func( \
-
49  detail::tvec3<T, P> const & v) \
-
50  { \
-
51  return detail::tvec3<T, P>( \
-
52  func(v.x), \
-
53  func(v.y), \
-
54  func(v.z)); \
-
55  }
-
56 
-
57 #define VECTORIZE4_VEC(func) \
-
58  template <typename T, precision P> \
-
59  GLM_FUNC_QUALIFIER detail::tvec4<T, P> func( \
-
60  detail::tvec4<T, P> const & v) \
-
61  { \
-
62  return detail::tvec4<T, P>( \
-
63  func(v.x), \
-
64  func(v.y), \
-
65  func(v.z), \
-
66  func(v.w)); \
-
67  }
-
68 
-
69 #define VECTORIZE_VEC(func) \
-
70  VECTORIZE2_VEC(func) \
-
71  VECTORIZE3_VEC(func) \
-
72  VECTORIZE4_VEC(func)
-
73 
-
74 #define VECTORIZE2_VEC_SCA(func) \
-
75  template <typename T, precision P> \
-
76  GLM_FUNC_QUALIFIER detail::tvec2<T, P> func \
-
77  ( \
-
78  detail::tvec2<T, P> const & x, \
-
79  T const & y \
-
80  ) \
-
81  { \
-
82  return detail::tvec2<T, P>( \
-
83  func(x.x, y), \
-
84  func(x.y, y)); \
-
85  }
-
86 
-
87 #define VECTORIZE3_VEC_SCA(func) \
-
88  template <typename T, precision P> \
-
89  GLM_FUNC_QUALIFIER detail::tvec3<T, P> func \
-
90  ( \
-
91  detail::tvec3<T, P> const & x, \
-
92  T const & y \
-
93  ) \
-
94  { \
-
95  return detail::tvec3<T, P>( \
-
96  func(x.x, y), \
-
97  func(x.y, y), \
-
98  func(x.z, y)); \
-
99  }
-
100 
-
101 #define VECTORIZE4_VEC_SCA(func) \
-
102  template <typename T, precision P> \
-
103  GLM_FUNC_QUALIFIER detail::tvec4<T, P> func \
-
104  ( \
-
105  detail::tvec4<T, P> const & x, \
-
106  T const & y \
-
107  ) \
-
108  { \
-
109  return detail::tvec4<T, P>( \
-
110  func(x.x, y), \
-
111  func(x.y, y), \
-
112  func(x.z, y), \
-
113  func(x.w, y)); \
-
114  }
-
115 
-
116 #define VECTORIZE_VEC_SCA(func) \
-
117  VECTORIZE2_VEC_SCA(func) \
-
118  VECTORIZE3_VEC_SCA(func) \
-
119  VECTORIZE4_VEC_SCA(func)
-
120 
-
121 #define VECTORIZE2_VEC_VEC(func) \
-
122  template <typename T, precision P> \
-
123  GLM_FUNC_QUALIFIER detail::tvec2<T, P> func \
-
124  ( \
-
125  detail::tvec2<T, P> const & x, \
-
126  detail::tvec2<T, P> const & y \
-
127  ) \
-
128  { \
-
129  return detail::tvec2<T, P>( \
-
130  func(x.x, y.x), \
-
131  func(x.y, y.y)); \
-
132  }
-
133 
-
134 #define VECTORIZE3_VEC_VEC(func) \
-
135  template <typename T, precision P> \
-
136  GLM_FUNC_QUALIFIER detail::tvec3<T, P> func \
-
137  ( \
-
138  detail::tvec3<T, P> const & x, \
-
139  detail::tvec3<T, P> const & y \
-
140  ) \
-
141  { \
-
142  return detail::tvec3<T, P>( \
-
143  func(x.x, y.x), \
-
144  func(x.y, y.y), \
-
145  func(x.z, y.z)); \
-
146  }
-
147 
-
148 #define VECTORIZE4_VEC_VEC(func) \
-
149  template <typename T, precision P> \
-
150  GLM_FUNC_QUALIFIER detail::tvec4<T, P> func \
-
151  ( \
-
152  detail::tvec4<T, P> const & x, \
-
153  detail::tvec4<T, P> const & y \
-
154  ) \
-
155  { \
-
156  return detail::tvec4<T, P>( \
-
157  func(x.x, y.x), \
-
158  func(x.y, y.y), \
-
159  func(x.z, y.z), \
-
160  func(x.w, y.w)); \
-
161  }
-
162 
-
163 #define VECTORIZE_VEC_VEC(func) \
-
164  VECTORIZE2_VEC_VEC(func) \
-
165  VECTORIZE3_VEC_VEC(func) \
-
166  VECTORIZE4_VEC_VEC(func)
-
167 
-
168 namespace glm{
-
169 namespace detail
-
170 {
-
171  template<bool C>
-
172  struct If
-
173  {
-
174  template<typename F, typename T>
-
175  static GLM_FUNC_QUALIFIER T apply(F functor, const T& val)
-
176  {
-
177  return functor(val);
-
178  }
-
179  };
-
180 
-
181  template<>
-
182  struct If<false>
-
183  {
-
184  template<typename F, typename T>
-
185  static GLM_FUNC_QUALIFIER T apply(F, const T& val)
-
186  {
-
187  return val;
-
188  }
-
189  };
-
190 }//namespace detail
-
191 }//namespace glm
-
192 
-
193 #endif//GLM_CORE_DETAIL_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00011.html b/3party/glm/doc/api/a00011.html deleted file mode 100755 index c3eadf0d9f..0000000000 --- a/3party/glm/doc/api/a00011.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -GLM: associated_min_max.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
associated_min_max.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - -

-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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_associated_min_max

-
Date
2008-03-10 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
- -

Definition in file associated_min_max.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00011_source.html b/3party/glm/doc/api/a00011_source.html deleted file mode 100755 index 4e04a7bf5e..0000000000 --- a/3party/glm/doc/api/a00011_source.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - -GLM: associated_min_max.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
associated_min_max.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_associated_min_max
-
39 #define GLM_GTX_associated_min_max
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_associated_min_max extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template<typename genTypeT, typename genTypeU>
-
56  genTypeU associatedMin(
-
57  const genTypeT& x, const genTypeU& a,
-
58  const genTypeT& y, const genTypeU& b);
-
59 
-
62  template<typename genTypeT, typename genTypeU>
-
63  genTypeU associatedMin(
-
64  const genTypeT& x, const genTypeU& a,
-
65  const genTypeT& y, const genTypeU& b,
-
66  const genTypeT& z, const genTypeU& c);
-
67 
-
70  template<typename genTypeT, typename genTypeU>
-
71  genTypeU associatedMin(
-
72  const genTypeT& x, const genTypeU& a,
-
73  const genTypeT& y, const genTypeU& b,
-
74  const genTypeT& z, const genTypeU& c,
-
75  const genTypeT& w, const genTypeU& d);
-
76 
-
79  template<typename genTypeT, typename genTypeU>
-
80  genTypeU associatedMax(
-
81  const genTypeT& x, const genTypeU& a,
-
82  const genTypeT& y, const genTypeU& b);
-
83 
-
86  template<typename genTypeT, typename genTypeU>
-
87  genTypeU associatedMax(
-
88  const genTypeT& x, const genTypeU& a,
-
89  const genTypeT& y, const genTypeU& b,
-
90  const genTypeT& z, const genTypeU& c);
-
91 
-
94  template<typename genTypeT, typename genTypeU>
-
95  genTypeU associatedMax(
-
96  const genTypeT& x, const genTypeU& a,
-
97  const genTypeT& y, const genTypeU& b,
-
98  const genTypeT& z, const genTypeU& c,
-
99  const genTypeT& w, const genTypeU& d);
-
100 
-
102 } //namespace glm
-
103 
-
104 #include "associated_min_max.inl"
-
105 
-
106 #endif//GLM_GTX_associated_min_max
-
genTypeU associatedMax(const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
Max comparison between 2 variables.
-
genTypeU associatedMin(const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
Min comparison between 2 variables.
-
- - - - diff --git a/3party/glm/doc/api/a00012.html b/3party/glm/doc/api/a00012.html deleted file mode 100755 index 93b2943b2d..0000000000 --- a/3party/glm/doc/api/a00012.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - -GLM: bit.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
bit.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 
template<typename genType >
GLM_DEPRECATED GLM_FUNC_DECL
-genType 
bitRevert (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateLeft (genType const &In, std::size_t Shift)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateRight (genType const &In, std::size_t Shift)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithOne (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithZero (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename genType >
GLM_FUNC_DECL genType highestBitValue (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL bool isPowerOfTwo (genType const &value)
 
template<typename genIType >
GLM_FUNC_DECL genIType mask (genIType const &count)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoAbove (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoBelow (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoNearest (genType const &value)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_bit

-
Date
2007-03-14 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_bit

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

Definition in file bit.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00012_source.html b/3party/glm/doc/api/a00012_source.html deleted file mode 100755 index bb4748de39..0000000000 --- a/3party/glm/doc/api/a00012_source.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - -GLM: bit.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
bit.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_bit
-
40 #define GLM_GTX_bit
-
41 
-
42 // Dependencies
-
43 #include "../detail/type_int.hpp"
-
44 #include "../detail/setup.hpp"
-
45 #include <cstddef>
-
46 
-
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTX_bit extension included")
-
49 #endif
-
50 
-
51 namespace glm
-
52 {
-
55 
-
58  template <typename genIType>
-
59  GLM_FUNC_DECL genIType mask(genIType const & count);
-
60 
-
63  template <typename genType>
-
64  GLM_FUNC_DECL genType highestBitValue(genType const & value);
-
65 
-
68  template <typename genType>
-
69  GLM_FUNC_DECL bool isPowerOfTwo(genType const & value);
-
70 
-
73  template <typename genType>
-
74  GLM_FUNC_DECL genType powerOfTwoAbove(genType const & value);
-
75 
-
78  template <typename genType>
-
79  GLM_FUNC_DECL genType powerOfTwoBelow(genType const & value);
-
80 
-
83  template <typename genType>
-
84  GLM_FUNC_DECL genType powerOfTwoNearest(genType const & value);
-
85 
-
88  template <typename genType>
-
89  GLM_DEPRECATED GLM_FUNC_DECL genType bitRevert(genType const & value);
-
90 
-
93  template <typename genType>
-
94  GLM_FUNC_DECL genType bitRotateRight(genType const & In, std::size_t Shift);
-
95 
-
98  template <typename genType>
-
99  GLM_FUNC_DECL genType bitRotateLeft(genType const & In, std::size_t Shift);
-
100 
-
103  template <typename genIUType>
-
104  GLM_FUNC_DECL genIUType fillBitfieldWithOne(
-
105  genIUType const & Value,
-
106  int const & FromBit,
-
107  int const & ToBit);
-
108 
-
111  template <typename genIUType>
-
112  GLM_FUNC_DECL genIUType fillBitfieldWithZero(
-
113  genIUType const & Value,
-
114  int const & FromBit,
-
115  int const & ToBit);
-
116 
-
122  GLM_FUNC_DECL int16 bitfieldInterleave(int8 x, int8 y);
-
123 
-
129  GLM_FUNC_DECL uint16 bitfieldInterleave(uint8 x, uint8 y);
-
130 
-
136  GLM_FUNC_DECL int32 bitfieldInterleave(int16 x, int16 y);
-
137 
-
143  GLM_FUNC_DECL uint32 bitfieldInterleave(uint16 x, uint16 y);
-
144 
-
150  GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y);
-
151 
-
157  GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y);
-
158 
-
164  GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z);
-
165 
-
171  GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z);
-
172 
-
178  GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z);
-
179 
-
185  GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z);
-
186 
-
192  GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y, int32 z);
-
193 
-
199  GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y, uint32 z);
-
200 
-
206  GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z, int8 w);
-
207 
-
213  GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w);
-
214 
-
220  GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z, int16 w);
-
221 
-
227  GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w);
-
228 
-
230 } //namespace glm
-
231 
-
232 #include "bit.inl"
-
233 
-
234 #endif//GLM_GTX_bit
-
GLM_FUNC_DECL genType highestBitValue(genType const &value)
Find the highest bit set to 1 in a integer variable and return its value.
-
detail::int8 int8
8 bit signed integer type.
Definition: type_int.hpp:89
-
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:96
-
detail::int16 int16
16 bit signed integer type.
Definition: type_int.hpp:90
-
detail::int64 int64
64 bit signed integer type.
Definition: type_int.hpp:92
-
GLM_FUNC_DECL genType powerOfTwoNearest(genType const &value)
Return the power of two number which value is the closet to the input value.
-
GLM_FUNC_DECL genType bitRotateLeft(genType const &In, std::size_t Shift)
Rotate all bits to the left.
-
GLM_FUNC_DECL genIType mask(genIType const &count)
Build a mask of &#39;count&#39; bits.
-
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:97
-
detail::int32 int32
32 bit signed integer type.
Definition: type_int.hpp:91
-
GLM_FUNC_DECL genIUType fillBitfieldWithOne(genIUType const &Value, int const &FromBit, int const &ToBit)
Set to 1 a range of bits.
-
GLM_FUNC_DECL genType bitRotateRight(genType const &In, std::size_t Shift)
Rotate all bits to the right.
-
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:94
-
GLM_FUNC_DECL bool isPowerOfTwo(genType const &value)
Return true if the value is a power of two number.
-
GLM_DEPRECATED GLM_FUNC_DECL genType bitRevert(genType const &value)
Revert all bits of any integer based type.
-
GLM_FUNC_DECL genType powerOfTwoBelow(genType const &value)
Return the power of two number which value is just lower the input value.
-
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:95
-
GLM_FUNC_DECL genIUType fillBitfieldWithZero(genIUType const &Value, int const &FromBit, int const &ToBit)
Set to 0 a range of bits.
-
GLM_FUNC_DECL int16 bitfieldInterleave(int8 x, int8 y)
Interleaves the bits of x and y.
-
GLM_FUNC_DECL genType powerOfTwoAbove(genType const &value)
Return the power of two number which value is just higher the input value.
-
- - - - diff --git a/3party/glm/doc/api/a00013_source.html b/3party/glm/doc/api/a00013_source.html deleted file mode 100755 index bb6f6cfa50..0000000000 --- a/3party/glm/doc/api/a00013_source.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -GLM: closest_point.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
closest_point.hpp
-
-
-
1 
-
38 #ifndef GLM_GTX_closest_point
-
39 #define GLM_GTX_closest_point
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_closest_point extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename T, precision P>
-
56  detail::tvec3<T, P> closestPointOnLine(
-
57  detail::tvec3<T, P> const & point,
-
58  detail::tvec3<T, P> const & a,
-
59  detail::tvec3<T, P> const & b);
-
60 
-
62 }// namespace glm
-
63 
-
64 #include "closest_point.inl"
-
65 
-
66 #endif//GLM_GTX_closest_point
-
detail::tvec3< T, P > closestPointOnLine(detail::tvec3< T, P > const &point, detail::tvec3< T, P > const &a, detail::tvec3< T, P > const &b)
Find the point on a straight line which is the closet of a point.
-
- - - - diff --git a/3party/glm/doc/api/a00014.html b/3party/glm/doc/api/a00014.html deleted file mode 100755 index cf94ef3f23..0000000000 --- a/3party/glm/doc/api/a00014.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -GLM: color_space.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
color_space.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tvec3< T, P > hsvColor (detail::tvec3< T, P > const &rgbValue)
 
template<typename T , precision P>
luminosity (detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
detail::tvec3< T, P > rgbColor (detail::tvec3< T, P > const &hsvValue)
 
template<typename T , precision P>
detail::tmat4x4< T, P > saturation (T const s)
 
template<typename T , precision P>
detail::tvec3< T, P > saturation (T const s, detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
detail::tvec4< T, P > saturation (T const s, detail::tvec4< T, P > const &color)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_color_space

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

Definition in file color_space.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00014_source.html b/3party/glm/doc/api/a00014_source.html deleted file mode 100755 index 64bb198fec..0000000000 --- a/3party/glm/doc/api/a00014_source.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - -GLM: color_space.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
color_space.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_color_space
-
39 #define GLM_GTX_color_space
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_color_space extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename T, precision P>
-
56  detail::tvec3<T, P> rgbColor(
-
57  detail::tvec3<T, P> const & hsvValue);
-
58 
-
61  template <typename T, precision P>
-
62  detail::tvec3<T, P> hsvColor(
-
63  detail::tvec3<T, P> const & rgbValue);
-
64 
-
67  template <typename T, precision P>
-
68  detail::tmat4x4<T, P> saturation(
-
69  T const s);
-
70 
-
73  template <typename T, precision P>
-
74  detail::tvec3<T, P> saturation(
-
75  T const s,
-
76  detail::tvec3<T, P> const & color);
-
77 
-
80  template <typename T, precision P>
-
81  detail::tvec4<T, P> saturation(
-
82  T const s,
-
83  detail::tvec4<T, P> const & color);
-
84 
-
87  template <typename T, precision P>
-
88  T luminosity(
-
89  detail::tvec3<T, P> const & color);
-
90 
-
92 }//namespace glm
-
93 
-
94 #include "color_space.inl"
-
95 
-
96 #endif//GLM_GTX_color_space
-
detail::tvec3< T, P > hsvColor(detail::tvec3< T, P > const &rgbValue)
Converts a color from RGB color space to its color in HSV color space.
-
detail::tmat4x4< T, P > saturation(T const s)
Build a saturation matrix.
-
detail::tvec3< T, P > rgbColor(detail::tvec3< T, P > const &hsvValue)
Converts a color from HSV color space to its color in RGB color space.
-
T luminosity(detail::tvec3< T, P > const &color)
Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.
-
- - - - diff --git a/3party/glm/doc/api/a00015.html b/3party/glm/doc/api/a00015.html deleted file mode 100755 index dc643867de..0000000000 --- a/3party/glm/doc/api/a00015.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - -GLM: color_space_YCoCg.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
color_space_YCoCg.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCg (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCgR (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCg2rgb (detail::tvec3< T, P > const &YCoCgColor)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCgR2rgb (detail::tvec3< T, P > const &YCoCgColor)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_color_space_YCoCg

-
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/3party/glm/doc/api/a00015_source.html b/3party/glm/doc/api/a00015_source.html deleted file mode 100755 index 97caed4f52..0000000000 --- a/3party/glm/doc/api/a00015_source.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -GLM: color_space_YCoCg.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
color_space_YCoCg.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef glm_gtx_color_space_YCoCg
-
39 #define glm_gtx_color_space_YCoCg
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename T, precision P>
-
56  detail::tvec3<T, P> rgb2YCoCg(
-
57  detail::tvec3<T, P> const & rgbColor);
-
58 
-
61  template <typename T, precision P>
-
62  detail::tvec3<T, P> YCoCg2rgb(
-
63  detail::tvec3<T, P> const & YCoCgColor);
-
64 
-
68  template <typename T, precision P>
-
69  detail::tvec3<T, P> rgb2YCoCgR(
-
70  detail::tvec3<T, P> const & rgbColor);
-
71 
-
75  template <typename T, precision P>
-
76  detail::tvec3<T, P> YCoCgR2rgb(
-
77  detail::tvec3<T, P> const & YCoCgColor);
-
78 
-
80 }//namespace glm
-
81 
-
82 #include "color_space_YCoCg.inl"
-
83 
-
84 #endif//glm_gtx_color_space_YCoCg
-
detail::tvec3< T, P > YCoCgR2rgb(detail::tvec3< T, P > const &YCoCgColor)
Convert a color from YCoCgR color space to RGB color space.
-
detail::tvec3< T, P > rgb2YCoCgR(detail::tvec3< T, P > const &rgbColor)
Convert a color from RGB color space to YCoCgR color space.
-
detail::tvec3< T, P > YCoCg2rgb(detail::tvec3< T, P > const &YCoCgColor)
Convert a color from YCoCg color space to RGB color space.
-
detail::tvec3< T, P > rgbColor(detail::tvec3< T, P > const &hsvValue)
Converts a color from HSV color space to its color in RGB color space.
-
detail::tvec3< T, P > rgb2YCoCg(detail::tvec3< T, P > const &rgbColor)
Convert a color from RGB color space to YCoCg color space.
-
- - - - diff --git a/3party/glm/doc/api/a00016.html b/3party/glm/doc/api/a00016.html deleted file mode 100755 index dfde79015b..0000000000 --- a/3party/glm/doc/api/a00016.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -GLM: common.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
common.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file common.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00016_source.html b/3party/glm/doc/api/a00016_source.html deleted file mode 100755 index 2a985c0dcb..0000000000 --- a/3party/glm/doc/api/a00016_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: common.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
common.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_COMMON_INCLUDED
-
30 #define GLM_COMMON_INCLUDED
-
31 
-
32 #include "detail/func_common.hpp"
-
33 
-
34 #endif//GLM_COMMON_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00017.html b/3party/glm/doc/api/a00017.html deleted file mode 100755 index 961bd50dbb..0000000000 --- a/3party/glm/doc/api/a00017.html +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - -GLM: compatibility.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
compatibility.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

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

-Functions

-template<typename T , precision P>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
atan2 (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
atan2 (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
atan2 (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y)
 
-template<typename genType >
bool isfinite (genType const &x)
 
-template<typename T , precision P>
detail::tvec2< bool, P > isfinite (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
detail::tvec3< bool, P > isfinite (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
detail::tvec4< bool, P > isfinite (const detail::tvec4< T, P > &x)
 
-template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, const detail::tvec2< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, const detail::tvec3< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, const detail::tvec4< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER T saturate (T x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
saturate (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
saturate (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
saturate (const detail::tvec4< T, P > &x)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_compatibility

-
Date
2007-01-24 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
- -

Definition in file compatibility.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00017_source.html b/3party/glm/doc/api/a00017_source.html deleted file mode 100755 index ec349115c7..0000000000 --- a/3party/glm/doc/api/a00017_source.html +++ /dev/null @@ -1,246 +0,0 @@ - - - - - - -GLM: compatibility.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
compatibility.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_compatibility
-
40 #define GLM_GTX_compatibility
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtc/quaternion.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_compatibility extension included")
-
48 #endif
-
49 
-
50 #if(GLM_COMPILER & GLM_COMPILER_VC)
-
51 # include <cfloat>
-
52 #elif(GLM_COMPILER & GLM_COMPILER_GCC)
-
53 # include <cmath>
-
54 # if(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
-
55 # undef isfinite
-
56 # endif
-
57 #endif//GLM_COMPILER
-
58 
-
59 namespace glm
-
60 {
-
63 
-
64  template <typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);}
-
65  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec2<T, P> lerp(const detail::tvec2<T, P>& x, const detail::tvec2<T, P>& y, T a){return mix(x, y, a);}
-
66 
-
67  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec3<T, P> lerp(const detail::tvec3<T, P>& x, const detail::tvec3<T, P>& y, T a){return mix(x, y, a);}
-
68  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec4<T, P> lerp(const detail::tvec4<T, P>& x, const detail::tvec4<T, P>& y, T a){return mix(x, y, a);}
-
69  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec2<T, P> lerp(const detail::tvec2<T, P>& x, const detail::tvec2<T, P>& y, const detail::tvec2<T, P>& a){return mix(x, y, a);}
-
70  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec3<T, P> lerp(const detail::tvec3<T, P>& x, const detail::tvec3<T, P>& y, const detail::tvec3<T, P>& a){return mix(x, y, a);}
-
71  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec4<T, P> lerp(const detail::tvec4<T, P>& x, const detail::tvec4<T, P>& y, const detail::tvec4<T, P>& a){return mix(x, y, a);}
-
72 
-
73  template <typename T, precision P> GLM_FUNC_QUALIFIER T slerp(detail::tquat<T, P> const & x, detail::tquat<T, P> const & y, T const & a){return mix(x, y, a);}
-
74 
-
75  template <typename T, precision P> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));}
-
76  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec2<T, P> saturate(const detail::tvec2<T, P>& x){return clamp(x, T(0), T(1));}
-
77  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec3<T, P> saturate(const detail::tvec3<T, P>& x){return clamp(x, T(0), T(1));}
-
78  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec4<T, P> saturate(const detail::tvec4<T, P>& x){return clamp(x, T(0), T(1));}
-
79 
-
80  template <typename T, precision P> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);}
-
81  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec2<T, P> atan2(const detail::tvec2<T, P>& x, const detail::tvec2<T, P>& y){return atan(x, y);}
-
82  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec3<T, P> atan2(const detail::tvec3<T, P>& x, const detail::tvec3<T, P>& y){return atan(x, y);}
-
83  template <typename T, precision P> GLM_FUNC_QUALIFIER detail::tvec4<T, P> atan2(const detail::tvec4<T, P>& x, const detail::tvec4<T, P>& y){return atan(x, y);}
-
84 
-
85  template <typename genType> bool isfinite(genType const & x);
-
86  template <typename T, precision P> detail::tvec2<bool, P> isfinite(const detail::tvec2<T, P>& x);
-
87  template <typename T, precision P> detail::tvec3<bool, P> isfinite(const detail::tvec3<T, P>& x);
-
88  template <typename T, precision P> detail::tvec4<bool, P> isfinite(const detail::tvec4<T, P>& x);
-
89 
-
90  typedef bool bool1;
-
91  typedef detail::tvec2<bool, highp> bool2;
-
92  typedef detail::tvec3<bool, highp> bool3;
-
93  typedef detail::tvec4<bool, highp> bool4;
-
94 
-
95  typedef bool bool1x1;
-
96  typedef detail::tmat2x2<bool, highp> bool2x2;
-
97  typedef detail::tmat2x3<bool, highp> bool2x3;
-
98  typedef detail::tmat2x4<bool, highp> bool2x4;
-
99  typedef detail::tmat3x2<bool, highp> bool3x2;
-
100  typedef detail::tmat3x3<bool, highp> bool3x3;
-
101  typedef detail::tmat3x4<bool, highp> bool3x4;
-
102  typedef detail::tmat4x2<bool, highp> bool4x2;
-
103  typedef detail::tmat4x3<bool, highp> bool4x3;
-
104  typedef detail::tmat4x4<bool, highp> bool4x4;
-
105 
-
106  typedef int int1;
-
107  typedef detail::tvec2<int, highp> int2;
-
108  typedef detail::tvec3<int, highp> int3;
-
109  typedef detail::tvec4<int, highp> int4;
-
110 
-
111  typedef int int1x1;
-
112  typedef detail::tmat2x2<int, highp> int2x2;
-
113  typedef detail::tmat2x3<int, highp> int2x3;
-
114  typedef detail::tmat2x4<int, highp> int2x4;
-
115  typedef detail::tmat3x2<int, highp> int3x2;
-
116  typedef detail::tmat3x3<int, highp> int3x3;
-
117  typedef detail::tmat3x4<int, highp> int3x4;
-
118  typedef detail::tmat4x2<int, highp> int4x2;
-
119  typedef detail::tmat4x3<int, highp> int4x3;
-
120  typedef detail::tmat4x4<int, highp> int4x4;
-
121 
-
122  typedef float float1;
-
123  typedef detail::tvec2<float, highp> float2;
-
124  typedef detail::tvec3<float, highp> float3;
-
125  typedef detail::tvec4<float, highp> float4;
-
126 
-
127  typedef float float1x1;
-
128  typedef detail::tmat2x2<float, highp> float2x2;
-
129  typedef detail::tmat2x3<float, highp> float2x3;
-
130  typedef detail::tmat2x4<float, highp> float2x4;
-
131  typedef detail::tmat3x2<float, highp> float3x2;
-
132  typedef detail::tmat3x3<float, highp> float3x3;
-
133  typedef detail::tmat3x4<float, highp> float3x4;
-
134  typedef detail::tmat4x2<float, highp> float4x2;
-
135  typedef detail::tmat4x3<float, highp> float4x3;
-
136  typedef detail::tmat4x4<float, highp> float4x4;
-
137 
-
138  typedef double double1;
-
139  typedef detail::tvec2<double, highp> double2;
-
140  typedef detail::tvec3<double, highp> double3;
-
141  typedef detail::tvec4<double, highp> double4;
-
142 
-
143  typedef double double1x1;
-
144  typedef detail::tmat2x2<double, highp> double2x2;
-
145  typedef detail::tmat2x3<double, highp> double2x3;
-
146  typedef detail::tmat2x4<double, highp> double2x4;
-
147  typedef detail::tmat3x2<double, highp> double3x2;
-
148  typedef detail::tmat3x3<double, highp> double3x3;
-
149  typedef detail::tmat3x4<double, highp> double3x4;
-
150  typedef detail::tmat4x2<double, highp> double4x2;
-
151  typedef detail::tmat4x3<double, highp> double4x3;
-
152  typedef detail::tmat4x4<double, highp> double4x4;
-
153 
-
155 }//namespace glm
-
156 
-
157 #include "compatibility.inl"
-
158 
-
159 #endif//GLM_GTX_compatibility
-
160 
-
detail::tmat2x2< int, highp > int2x2
integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
-
float float1x1
single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...
-
detail::tmat3x4< int, highp > int3x4
integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x2< float, highp > float2x2
single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...
-
GLM_FUNC_DECL genType atan(genType const &y, genType const &x)
Arc tangent.
-
detail::tvec4< float, highp > float4
single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x2< bool, highp > bool4x2
boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
-
GLM_FUNC_DECL detail::tquat< T, P > lerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Linear interpolation of two quaternions.
-
detail::tmat4x2< int, highp > int4x2
integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
-
GLM_FUNC_QUALIFIER T saturate(T x)
Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
-
detail::tvec3< int, highp > int3
integer vector with 3 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x3< float, highp > float3x3
single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x3< double, highp > double4x3
double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...
-
GLM_FUNC_DECL genTypeT mix(genTypeT const &x, genTypeT const &y, genTypeU const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
int int1x1
integer matrix with 1 component. (From GLM_GTX_compatibility extension)
-
bool bool1x1
boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
-
detail::tvec2< int, highp > int2
integer vector with 2 components. (From GLM_GTX_compatibility extension)
-
detail::tmat4x4< double, highp > double4x4
double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat2x2< double, highp > double2x2
double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat2x3< bool, highp > bool2x3
boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
-
int int1
integer vector with 1 component. (From GLM_GTX_compatibility extension)
-
detail::tmat2x4< float, highp > float2x4
single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat3x2< double, highp > double3x2
double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec4< bool, highp > bool4
boolean type with 4 components. (From GLM_GTX_compatibility extension)
-
GLM_FUNC_QUALIFIER T atan2(T x, T y)
Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...
-
detail::tmat3x2< bool, highp > bool3x2
boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
-
detail::tmat4x4< int, highp > int4x4
integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
-
bool bool1
boolean type with 1 component. (From GLM_GTX_compatibility extension)
-
double double1x1
double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x3< float, highp > float4x3
single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x4< bool, highp > bool4x4
boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x3< bool, highp > bool3x3
boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x3< int, highp > int3x3
integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x4< double, highp > double3x4
double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec4< int, highp > int4
integer vector with 4 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x4< bool, highp > bool3x4
boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x3< double, highp > double2x3
double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x2< double, highp > double4x2
double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat2x3< int, highp > int2x3
integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
-
detail::tvec3< double, highp > double3
double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat2x4< int, highp > int2x4
integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x4< double, highp > double2x4
double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat3x2< float, highp > float3x2
single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x3< bool, highp > bool4x3
boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x3< float, highp > float2x3
single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...
-
GLM_FUNC_DECL detail::tquat< T, P > slerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Spherical linear interpolation of two quaternions.
-
GLM_FUNC_DECL genType 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 an...
-
detail::tmat3x2< int, highp > int3x2
integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x2< bool, highp > bool2x2
boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
-
detail::tmat4x4< float, highp > float4x4
single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec2< double, highp > double2
double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x3< int, highp > int4x3
integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
-
detail::tmat3x3< double, highp > double3x3
double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec3< float, highp > float3
single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec3< bool, highp > bool3
boolean type with 3 components. (From GLM_GTX_compatibility extension)
-
double double1
double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...
-
detail::tmat4x2< float, highp > float4x2
single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...
-
bool isfinite(genType const &x)
Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...
-
detail::tmat3x4< float, highp > float3x4
single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...
-
detail::tvec2< bool, highp > bool2
boolean type with 2 components. (From GLM_GTX_compatibility extension)
-
detail::tmat2x4< bool, highp > bool2x4
boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
-
detail::tvec4< double, highp > double4
double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...
-
float float1
single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...
-
detail::tvec2< float, highp > float2
single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...
-
- - - - diff --git a/3party/glm/doc/api/a00018.html b/3party/glm/doc/api/a00018.html deleted file mode 100755 index bda590c29b..0000000000 --- a/3party/glm/doc/api/a00018.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - -GLM: component_wise.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
component_wise.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - -

-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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_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/3party/glm/doc/api/a00018_source.html b/3party/glm/doc/api/a00018_source.html deleted file mode 100755 index 855e042166..0000000000 --- a/3party/glm/doc/api/a00018_source.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -GLM: component_wise.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
component_wise.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_component_wise
-
39 #define GLM_GTX_component_wise
-
40 
-
41 // Dependencies
-
42 #include "../detail/setup.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_component_wise extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename genType>
-
56  typename genType::value_type compAdd(
-
57  genType const & v);
-
58 
-
61  template <typename genType>
-
62  typename genType::value_type compMul(
-
63  genType const & v);
-
64 
-
67  template <typename genType>
-
68  typename genType::value_type compMin(
-
69  genType const & v);
-
70 
-
73  template <typename genType>
-
74  typename genType::value_type compMax(
-
75  genType const & v);
-
76 
-
78 }//namespace glm
-
79 
-
80 #include "component_wise.inl"
-
81 
-
82 #endif//GLM_GTX_component_wise
-
genType::value_type compMin(genType const &v)
Find the minimum value between single vector components.
-
genType::value_type compMul(genType const &v)
Multiply all vector components together.
-
genType::value_type compMax(genType const &v)
Find the maximum value between single vector components.
-
genType::value_type compAdd(genType const &v)
Add all vector components together.
-
- - - - diff --git a/3party/glm/doc/api/a00019.html b/3party/glm/doc/api/a00019.html deleted file mode 100755 index 7e8f8f2639..0000000000 --- a/3party/glm/doc/api/a00019.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - -GLM: constants.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
gtc/constants.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_constants

-
Date
2011-09-30 / 2012-01-25
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
- -

Definition in file gtc/constants.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00019_source.html b/3party/glm/doc/api/a00019_source.html deleted file mode 100755 index b83646c9fb..0000000000 --- a/3party/glm/doc/api/a00019_source.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - -GLM: constants.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtc/constants.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTC_constants
-
40 #define GLM_GTC_constants
-
41 
-
42 // Dependencies
-
43 #include "../detail/setup.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTC_constants extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
57  template <typename genType>
-
58  GLM_FUNC_DECL genType epsilon();
-
59 
-
62  template <typename genType>
-
63  GLM_FUNC_DECL genType zero();
-
64 
-
67  template <typename genType>
-
68  GLM_FUNC_DECL genType one();
-
69 
-
72  template <typename genType>
-
73  GLM_FUNC_DECL genType pi();
-
74 
-
77  template <typename genType>
-
78  GLM_FUNC_DECL genType root_pi();
-
79 
-
82  template <typename genType>
-
83  GLM_FUNC_DECL genType half_pi();
-
84 
-
87  template <typename genType>
-
88  GLM_FUNC_DECL genType quarter_pi();
-
89 
-
92  template <typename genType>
-
93  GLM_FUNC_DECL genType one_over_pi();
-
94 
-
97  template <typename genType>
-
98  GLM_FUNC_DECL genType two_over_pi();
-
99 
-
102  template <typename genType>
-
103  GLM_FUNC_DECL genType two_over_root_pi();
-
104 
-
107  template <typename genType>
-
108  GLM_FUNC_DECL genType one_over_root_two();
-
109 
-
112  template <typename genType>
-
113  GLM_FUNC_DECL genType root_half_pi();
-
114 
-
117  template <typename genType>
-
118  GLM_FUNC_DECL genType root_two_pi();
-
119 
-
122  template <typename genType>
-
123  GLM_FUNC_DECL genType root_ln_four();
-
124 
-
127  template <typename genType>
-
128  GLM_FUNC_DECL genType e();
-
129 
-
132  template <typename genType>
-
133  GLM_FUNC_DECL genType euler();
-
134 
-
137  template <typename genType>
-
138  GLM_FUNC_DECL genType root_two();
-
139 
-
142  template <typename genType>
-
143  GLM_FUNC_DECL genType root_three();
-
144 
-
147  template <typename genType>
-
148  GLM_FUNC_DECL genType root_five();
-
149 
-
152  template <typename genType>
-
153  GLM_FUNC_DECL genType ln_two();
-
154 
-
157  template <typename genType>
-
158  GLM_FUNC_DECL genType ln_ten();
-
159 
-
162  template <typename genType>
-
163  GLM_FUNC_DECL genType ln_ln_two();
-
164 
-
167  template <typename genType>
-
168  GLM_FUNC_DECL genType third();
-
169 
-
172  template <typename genType>
-
173  GLM_FUNC_DECL genType two_thirds();
-
174 
-
177  template <typename genType>
-
178  GLM_FUNC_DECL genType golden_ratio();
-
179 
-
181 } //namespace glm
-
182 
-
183 #include "constants.inl"
-
184 
-
185 #endif//GLM_GTC_constants
-
GLM_FUNC_DECL genType e()
Return e constant.
-
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
-
GLM_FUNC_DECL genType golden_ratio()
Return the golden ratio constant.
-
GLM_FUNC_DECL genType root_ln_four()
Return sqrt(ln(4)).
-
GLM_FUNC_DECL genType root_three()
Return sqrt(3).
-
GLM_FUNC_DECL genType pi()
Return the pi constant.
-
GLM_FUNC_DECL genType root_two_pi()
Return sqrt(2 * pi).
-
GLM_FUNC_DECL genType ln_ten()
Return ln(10).
-
GLM_FUNC_DECL genType one()
Return 1.
-
GLM_FUNC_DECL genType two_thirds()
Return 2 / 3.
-
GLM_FUNC_DECL genType zero()
Return 0.
-
GLM_FUNC_DECL genType one_over_root_two()
Return 1 / sqrt(2).
-
GLM_FUNC_DECL genType ln_two()
Return ln(2).
-
GLM_FUNC_DECL genType two_over_root_pi()
Return 2 / sqrt(pi).
-
GLM_FUNC_DECL genType root_two()
Return sqrt(2).
-
GLM_FUNC_DECL genType two_over_pi()
Return 2 / pi.
-
GLM_FUNC_DECL genType half_pi()
Return pi / 2.
-
GLM_FUNC_DECL genType quarter_pi()
Return pi / 4.
-
GLM_FUNC_DECL genType one_over_pi()
Return 1 / pi.
-
GLM_FUNC_DECL genType euler()
Return Euler&#39;s constant.
-
GLM_FUNC_DECL genType third()
Return 1 / 3.
-
GLM_FUNC_DECL genType root_pi()
Return square root of pi.
-
GLM_FUNC_DECL genType root_half_pi()
Return sqrt(pi / 2).
-
GLM_FUNC_DECL genType root_five()
Return sqrt(5).
-
GLM_FUNC_DECL genType ln_ln_two()
Return ln(ln(2)).
-
- - - - diff --git a/3party/glm/doc/api/a00020_source.html b/3party/glm/doc/api/a00020_source.html deleted file mode 100755 index 2e389a4440..0000000000 --- a/3party/glm/doc/api/a00020_source.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -GLM: constants.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtx/constants.hpp
-
-
-
1 
-
24 #ifndef GLM_GTX_constants
-
25 #define GLM_GTX_constants
-
26 
-
27 #include "../gtc/constants.hpp"
-
28 
-
29 #if(defined(GLM_MESSAGES))
-
30 # pragma message("GLM: GLM_GTX_constants extension is deprecated, include GLM_GTC_constants (glm/gtc/constants.hpp) instead")
-
31 #endif
-
32 
-
33 #endif//GLM_GTX_constants
-
- - - - diff --git a/3party/glm/doc/api/a00021.html b/3party/glm/doc/api/a00021.html deleted file mode 100755 index 06030164b9..0000000000 --- a/3party/glm/doc/api/a00021.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - -GLM: dual_quaternion.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
dual_quaternion.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef highp_ddualquat ddualquat
 
typedef highp_fdualquat dualquat
 
typedef highp_fdualquat fdualquat
 
typedef detail::tdualquat
-< double, highp > 
highp_ddualquat
 
typedef detail::tdualquat
-< float, highp > 
highp_dualquat
 
typedef detail::tdualquat
-< float, highp > 
highp_fdualquat
 
typedef detail::tdualquat
-< double, lowp > 
lowp_ddualquat
 
typedef detail::tdualquat
-< float, lowp > 
lowp_dualquat
 
typedef detail::tdualquat
-< float, lowp > 
lowp_fdualquat
 
typedef detail::tdualquat
-< double, mediump > 
mediump_ddualquat
 
typedef detail::tdualquat
-< float, mediump > 
mediump_dualquat
 
typedef detail::tdualquat
-< float, mediump > 
mediump_fdualquat
 
- - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat2x4< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat3x4< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > inverse (detail::tdualquat< T, P > const &q)
 
template<typename T , precision P>
detail::tdualquat< T, P > lerp (detail::tdualquat< T, P > const &x, detail::tdualquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tmat2x4< T, P > mat2x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat3x4< T, P > mat3x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > normalize (detail::tdualquat< T, P > const &q)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

gtx_dual_quaternion

-
Date
2013-02-10 / 2013-02-20
-
Author
Maksim Vorobiev (msome.nosp@m.one@.nosp@m.gmail.nosp@m..com)
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-GLM_GTC_constants (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file dual_quaternion.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00021_source.html b/3party/glm/doc/api/a00021_source.html deleted file mode 100755 index b70355cfea..0000000000 --- a/3party/glm/doc/api/a00021_source.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - -GLM: dual_quaternion.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
dual_quaternion.hpp
-
-
-Go to the documentation of this file.
1 
-
41 #ifndef GLM_GTX_dual_quaternion
-
42 #define GLM_GTX_dual_quaternion
-
43 
-
44 // Dependency:
-
45 #include "../glm.hpp"
-
46 #include "../gtc/constants.hpp"
-
47 #include "../gtc/quaternion.hpp"
-
48 
-
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
50 # pragma message("GLM: GLM_GTX_dual_quaternion extension included")
-
51 #endif
-
52 
-
53 namespace glm{
-
54 namespace detail
-
55 {
-
56  template <typename T, precision P>
-
57  struct tdualquat
-
58  {
-
59  enum ctor{null};
-
60 
-
61  typedef glm::detail::tquat<T, P> part_type;
-
62 
-
63  public:
-
64  glm::detail::tquat<T, P> real, dual;
-
65 
-
66  GLM_FUNC_DECL GLM_CONSTEXPR int length() const;
-
67 
-
68  // Constructors
-
69  tdualquat();
-
70  explicit tdualquat(tquat<T, P> const & real);
-
71  tdualquat(tquat<T, P> const & real,tquat<T, P> const & dual);
-
72  tdualquat(tquat<T, P> const & orientation,tvec3<T, P> const& translation);
-
73 
-
75  // tdualquat conversions
-
76  explicit tdualquat(tmat2x4<T, P> const & holder_mat);
-
77  explicit tdualquat(tmat3x4<T, P> const & aug_mat);
-
78 
-
79  // Accesses
-
80  part_type & operator[](int i);
-
81  part_type const & operator[](int i) const;
-
82 
-
83  // Operators
-
84  tdualquat<T, P> & operator*=(T const & s);
-
85  tdualquat<T, P> & operator/=(T const & s);
-
86  };
-
87 
-
88  template <typename T, precision P>
-
89  detail::tquat<T, P> operator- (
-
90  detail::tquat<T, P> const & q);
-
91 
-
92  template <typename T, precision P>
-
93  detail::tdualquat<T, P> operator+ (
-
94  detail::tdualquat<T, P> const & q,
-
95  detail::tdualquat<T, P> const & p);
-
96 
-
97  template <typename T, precision P>
-
98  detail::tdualquat<T, P> operator* (
-
99  detail::tdualquat<T, P> const & q,
-
100  detail::tdualquat<T, P> const & p);
-
101 
-
102  template <typename T, precision P>
-
103  detail::tvec3<T, P> operator* (
-
104  detail::tquat<T, P> const & q,
-
105  detail::tvec3<T, P> const & v);
-
106 
-
107  template <typename T, precision P>
-
108  detail::tvec3<T, P> operator* (
-
109  detail::tvec3<T, P> const & v,
-
110  detail::tquat<T, P> const & q);
-
111 
-
112  template <typename T, precision P>
-
113  detail::tvec4<T, P> operator* (
-
114  detail::tquat<T, P> const & q,
-
115  detail::tvec4<T, P> const & v);
-
116 
-
117  template <typename T, precision P>
-
118  detail::tvec4<T, P> operator* (
-
119  detail::tvec4<T, P> const & v,
-
120  detail::tquat<T, P> const & q);
-
121 
-
122  template <typename T, precision P>
-
123  detail::tdualquat<T, P> operator* (
-
124  detail::tdualquat<T, P> const & q,
-
125  T const & s);
-
126 
-
127  template <typename T, precision P>
-
128  detail::tdualquat<T, P> operator* (
-
129  T const & s,
-
130  detail::tdualquat<T, P> const & q);
-
131 
-
132  template <typename T, precision P>
-
133  detail::tdualquat<T, P> operator/ (
-
134  detail::tdualquat<T, P> const & q,
-
135  T const & s);
-
136 } //namespace detail
-
137 
-
140 
-
144  template <typename T, precision P>
-
145  detail::tdualquat<T, P> normalize(
-
146  detail::tdualquat<T, P> const & q);
-
147 
-
151  template <typename T, precision P>
-
152  detail::tdualquat<T, P> lerp(
-
153  detail::tdualquat<T, P> const & x,
-
154  detail::tdualquat<T, P> const & y,
-
155  T const & a);
-
156 
-
160  template <typename T, precision P>
-
161  detail::tdualquat<T, P> inverse(
-
162  detail::tdualquat<T, P> const & q);
-
163 
-
164  /*
-
169  template <typename T, precision P>
-
170  detail::tmat3x3<T, P> mat3_cast(
-
171  detail::tdualquat<T, P> const & x);
-
172  */
-
173 
-
177  template <typename T, precision P>
-
178  detail::tmat2x4<T, P> mat2x4_cast(
-
179  detail::tdualquat<T, P> const & x);
-
180 
-
184  template <typename T, precision P>
-
185  detail::tmat3x4<T, P> mat3x4_cast(
-
186  detail::tdualquat<T, P> const & x);
-
187 
-
191  template <typename T, precision P>
-
192  detail::tdualquat<T, P> dualquat_cast(
-
193  detail::tmat2x4<T, P> const & x);
-
194 
-
198  template <typename T, precision P>
-
199  detail::tdualquat<T, P> dualquat_cast(
-
200  detail::tmat3x4<T, P> const & x);
-
201 
-
202 
-
206  typedef detail::tdualquat<float, lowp> lowp_dualquat;
-
207 
-
211  typedef detail::tdualquat<float, mediump> mediump_dualquat;
-
212 
-
216  typedef detail::tdualquat<float, highp> highp_dualquat;
-
217 
-
218 
-
222  typedef detail::tdualquat<float, lowp> lowp_fdualquat;
-
223 
-
227  typedef detail::tdualquat<float, mediump> mediump_fdualquat;
-
228 
-
232  typedef detail::tdualquat<float, highp> highp_fdualquat;
-
233 
-
234 
-
238  typedef detail::tdualquat<double, lowp> lowp_ddualquat;
-
239 
-
243  typedef detail::tdualquat<double, mediump> mediump_ddualquat;
-
244 
-
248  typedef detail::tdualquat<double, highp> highp_ddualquat;
-
249 
-
250 
-
251 #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
252  typedef highp_fdualquat dualquat;
-
256 
- -
261 #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
262  typedef highp_fdualquat dualquat;
-
263  typedef highp_fdualquat fdualquat;
-
264 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
265  typedef mediump_fdualquat dualquat;
- -
267 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
-
268  typedef lowp_fdualquat dualquat;
-
269  typedef lowp_fdualquat fdualquat;
-
270 #else
-
271 # error "GLM error: multiple default precision requested for single-precision floating-point types"
-
272 #endif
-
273 
-
274 
-
275 #if(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
276  typedef highp_ddualquat ddualquat;
-
280 #elif(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
281  typedef highp_ddualquat ddualquat;
-
282 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
- -
284 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))
-
285  typedef lowp_ddualquat ddualquat;
-
286 #else
-
287 # error "GLM error: Multiple default precision requested for double-precision floating-point types"
-
288 #endif
-
289 
-
291 } //namespace glm
-
292 
-
293 #include "dual_quaternion.inl"
-
294 
-
295 #endif//GLM_GTX_dual_quaternion
-
detail::tdualquat< float, highp > highp_dualquat
Dual-quaternion of high single-precision floating-point numbers.
-
GLM_FUNC_DECL detail::tquat< T, P > lerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Linear interpolation of two quaternions.
-
detail::tmat3x4< T, P > mat3x4_cast(detail::tdualquat< T, P > const &x)
Converts a quaternion to a 3 * 4 matrix.
-
detail::tdualquat< double, highp > highp_ddualquat
Dual-quaternion of high double-precision floating-point numbers.
-
highp_fdualquat fdualquat
Dual-quaternion of single-precision floating-point numbers.
-
detail::tdualquat< double, lowp > lowp_ddualquat
Dual-quaternion of low double-precision floating-point numbers.
-
detail::tmat4x4< T, P > orientation(detail::tvec3< T, P > const &Normal, detail::tvec3< T, P > const &Up)
Build a rotation matrix from a normal and a up vector.
-
GLM_FUNC_DECL genType normalize(genType const &x)
Returns a vector in the same direction as x but with length of 1.
-
detail::tdualquat< double, mediump > mediump_ddualquat
Dual-quaternion of medium double-precision floating-point numbers.
-
detail::tdualquat< float, lowp > lowp_dualquat
Dual-quaternion of low single-precision floating-point numbers.
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
detail::tdualquat< T, P > dualquat_cast(detail::tmat2x4< T, P > const &x)
Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. ...
-
highp_ddualquat ddualquat
Dual-quaternion of default double-precision floating-point numbers.
-
detail::tmat2x4< T, P > mat2x4_cast(detail::tdualquat< T, P > const &x)
Converts a quaternion to a 2 * 4 matrix.
-
detail::tdualquat< float, mediump > mediump_fdualquat
Dual-quaternion of medium single-precision floating-point numbers.
-
detail::tdualquat< float, lowp > lowp_fdualquat
Dual-quaternion of low single-precision floating-point numbers.
-
detail::tdualquat< float, highp > highp_fdualquat
Dual-quaternion of high single-precision floating-point numbers.
-
detail::tdualquat< float, mediump > mediump_dualquat
Dual-quaternion of medium single-precision floating-point numbers.
-
highp_fdualquat dualquat
Dual-quaternion of floating-point numbers.
-
GLM_FUNC_DECL detail::tquat< T, P > inverse(detail::tquat< T, P > const &q)
Returns the q inverse.
-
- - - - diff --git a/3party/glm/doc/api/a00022.html b/3party/glm/doc/api/a00022.html deleted file mode 100755 index 51fdb454ce..0000000000 --- a/3party/glm/doc/api/a00022.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - -GLM: epsilon.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
gtc/epsilon.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - -

-Functions

template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > epsilonEqual (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType::boolType epsilonNotEqual (genType const &x, genType const &y, typename genType::value_type const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_epsilon

-
Date
2012-04-07 / 2012-04-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file gtc/epsilon.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00022_source.html b/3party/glm/doc/api/a00022_source.html deleted file mode 100755 index 70d8112221..0000000000 --- a/3party/glm/doc/api/a00022_source.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - -GLM: epsilon.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtc/epsilon.hpp
-
-
-Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTC_epsilon
-
41 #define GLM_GTC_epsilon
-
42 
-
43 // Dependencies
-
44 #include "../detail/setup.hpp"
-
45 #include "../detail/precision.hpp"
-
46 
-
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTC_epsilon extension included")
-
49 #endif
-
50 
-
51 namespace glm
-
52 {
-
55 
-
60  template <typename T, precision P, template <typename, precision> class vecType>
-
61  GLM_FUNC_DECL vecType<bool, P> epsilonEqual(
-
62  vecType<T, P> const & x,
-
63  vecType<T, P> const & y,
-
64  T const & epsilon);
-
65 
-
70  template <typename genType>
-
71  GLM_FUNC_DECL bool epsilonEqual(
-
72  genType const & x,
-
73  genType const & y,
-
74  genType const & epsilon);
-
75 
-
80  template <typename genType>
-
81  GLM_FUNC_DECL typename genType::boolType epsilonNotEqual(
-
82  genType const & x,
-
83  genType const & y,
-
84  typename genType::value_type const & epsilon);
-
85 
-
90  template <typename genType>
-
91  GLM_FUNC_DECL bool epsilonNotEqual(
-
92  genType const & x,
-
93  genType const & y,
-
94  genType const & epsilon);
-
95 
-
97 }//namespace glm
-
98 
-
99 #include "epsilon.inl"
-
100 
-
101 #endif//GLM_GTC_epsilon
-
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
-
GLM_FUNC_DECL vecType< bool, P > epsilonEqual(vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)
Returns the component-wise comparison of |x - y| &lt; epsilon.
-
GLM_FUNC_DECL genType::boolType epsilonNotEqual(genType const &x, genType const &y, typename genType::value_type const &epsilon)
Returns the component-wise comparison of |x - y| &lt; epsilon.
-
- - - - diff --git a/3party/glm/doc/api/a00023_source.html b/3party/glm/doc/api/a00023_source.html deleted file mode 100755 index 7c679bc3d8..0000000000 --- a/3party/glm/doc/api/a00023_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: epsilon.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtx/epsilon.hpp
-
-
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_epsilon extension is deprecated, include GLM_GTC_epsilon (glm/gtc/epsilon) instead")
-
26 #endif
-
27 
-
28 // Promoted:
-
29 #include "../gtc/epsilon.hpp"
-
- - - - diff --git a/3party/glm/doc/api/a00024.html b/3party/glm/doc/api/a00024.html deleted file mode 100755 index 28f7fc261d..0000000000 --- a/3party/glm/doc/api/a00024.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - -GLM: euler_angles.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
euler_angles.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_euler_angles

-
Date
2005-12-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
- -

Definition in file euler_angles.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00024_source.html b/3party/glm/doc/api/a00024_source.html deleted file mode 100755 index e295b2152c..0000000000 --- a/3party/glm/doc/api/a00024_source.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - -GLM: euler_angles.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
euler_angles.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_euler_angles
-
40 #define GLM_GTX_euler_angles
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_euler_angles extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T>
-
57  detail::tmat4x4<T, defaultp> eulerAngleX(
-
58  T const & angleX);
-
59 
-
62  template <typename T>
-
63  detail::tmat4x4<T, defaultp> eulerAngleY(
-
64  T const & angleY);
-
65 
-
68  template <typename T>
-
69  detail::tmat4x4<T, defaultp> eulerAngleZ(
-
70  T const & angleZ);
-
71 
-
74  template <typename T>
-
75  detail::tmat4x4<T, defaultp> eulerAngleXY(
-
76  T const & angleX,
-
77  T const & angleY);
-
78 
-
81  template <typename T>
-
82  detail::tmat4x4<T, defaultp> eulerAngleYX(
-
83  T const & angleY,
-
84  T const & angleX);
-
85 
-
88  template <typename T>
-
89  detail::tmat4x4<T, defaultp> eulerAngleXZ(
-
90  T const & angleX,
-
91  T const & angleZ);
-
92 
-
95  template <typename T>
-
96  detail::tmat4x4<T, defaultp> eulerAngleZX(
-
97  T const & angle,
-
98  T const & angleX);
-
99 
-
102  template <typename T>
-
103  detail::tmat4x4<T, defaultp> eulerAngleYZ(
-
104  T const & angleY,
-
105  T const & angleZ);
-
106 
-
109  template <typename T>
-
110  detail::tmat4x4<T, defaultp> eulerAngleZY(
-
111  T const & angleZ,
-
112  T const & angleY);
-
113 
-
116  template <typename T>
-
117  detail::tmat4x4<T, defaultp> eulerAngleYXZ(
-
118  T const & yaw,
-
119  T const & pitch,
-
120  T const & roll);
-
121 
-
124  template <typename T>
-
125  detail::tmat4x4<T, defaultp> yawPitchRoll(
-
126  T const & yaw,
-
127  T const & pitch,
-
128  T const & roll);
-
129 
-
132  template <typename T>
-
133  detail::tmat2x2<T, defaultp> orientate2(T const & angle);
-
134 
-
137  template <typename T>
-
138  detail::tmat3x3<T, defaultp> orientate3(T const & angle);
-
139 
-
142  template <typename T, precision P>
-
143  detail::tmat3x3<T, P> orientate3(detail::tvec3<T, P> const & angles);
-
144 
-
147  template <typename T, precision P>
-
148  detail::tmat4x4<T, P> orientate4(detail::tvec3<T, P> const & angles);
-
149 
-
151 }//namespace glm
-
152 
-
153 #include "euler_angles.inl"
-
154 
-
155 #endif//GLM_GTX_euler_angles
-
detail::tmat4x4< T, defaultp > yawPitchRoll(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
-
detail::tmat4x4< T, defaultp > eulerAngleZX(T const &angle, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).
-
detail::tmat4x4< T, defaultp > eulerAngleYZ(T const &angleY, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
detail::tmat4x4< T, defaultp > eulerAngleXY(T const &angleX, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).
-
detail::tmat3x3< T, defaultp > orientate3(T const &angle)
Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.
-
detail::tmat4x4< T, defaultp > eulerAngleZ(T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.
-
detail::tmat4x4< T, P > orientate4(detail::tvec3< T, P > const &angles)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
-
GLM_FUNC_DECL T roll(detail::tquat< T, P > const &x)
Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees ot...
-
detail::tmat4x4< T, defaultp > eulerAngleYXZ(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
-
detail::tmat4x4< T, defaultp > eulerAngleX(T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
-
detail::tmat4x4< T, defaultp > eulerAngleYX(T const &angleY, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).
-
detail::tmat4x4< T, defaultp > eulerAngleY(T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.
-
detail::tmat4x4< T, defaultp > eulerAngleZY(T const &angleZ, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).
-
GLM_FUNC_DECL T pitch(detail::tquat< T, P > const &x)
Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees o...
-
detail::tmat2x2< T, defaultp > orientate2(T const &angle)
Creates a 2D 2 * 2 rotation matrix from an euler angle.
-
GLM_FUNC_DECL T yaw(detail::tquat< T, P > const &x)
Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees oth...
-
detail::tmat4x4< T, defaultp > eulerAngleXZ(T const &angleX, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).
-
- - - - diff --git a/3party/glm/doc/api/a00025.html b/3party/glm/doc/api/a00025.html deleted file mode 100755 index 1374d56611..0000000000 --- a/3party/glm/doc/api/a00025.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -GLM: exponential.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
exponential.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file exponential.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00025_source.html b/3party/glm/doc/api/a00025_source.html deleted file mode 100755 index d7f20e738a..0000000000 --- a/3party/glm/doc/api/a00025_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: exponential.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
exponential.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_EXPONENTIAL_INCLUDED
-
30 #define GLM_EXPONENTIAL_INCLUDED
-
31 
-
32 #include "detail/func_exponential.hpp"
-
33 
-
34 #endif//GLM_EXPONENTIAL_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00026_source.html b/3party/glm/doc/api/a00026_source.html deleted file mode 100755 index e7835c63a3..0000000000 --- a/3party/glm/doc/api/a00026_source.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - -GLM: ext.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
ext.hpp
-
-
-
1 
-
58 #ifndef GLM_EXT_INCLUDED
-
59 #define GLM_EXT_INCLUDED
-
60 
-
61 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED))
-
62 # define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED
-
63 # pragma message("GLM: All extensions included (not recommanded)")
-
64 #endif//GLM_MESSAGES
-
65 
-
66 #include "./gtc/constants.hpp"
-
67 #include "./gtc/epsilon.hpp"
-
68 #include "./gtc/matrix_access.hpp"
-
69 #include "./gtc/matrix_integer.hpp"
-
70 #include "./gtc/matrix_inverse.hpp"
- -
72 #include "./gtc/noise.hpp"
-
73 #include "./gtc/packing.hpp"
-
74 #include "./gtc/quaternion.hpp"
-
75 #include "./gtc/random.hpp"
-
76 #include "./gtc/reciprocal.hpp"
-
77 #include "./gtc/type_precision.hpp"
-
78 #include "./gtc/type_ptr.hpp"
-
79 #include "./gtc/ulp.hpp"
-
80 
- -
82 #include "./gtx/bit.hpp"
-
83 #include "./gtx/closest_point.hpp"
-
84 #include "./gtx/color_space.hpp"
- -
86 #include "./gtx/compatibility.hpp"
-
87 #include "./gtx/component_wise.hpp"
- -
89 #include "./gtx/euler_angles.hpp"
-
90 #include "./gtx/extend.hpp"
- - - - -
95 #include "./gtx/gradient_paint.hpp"
- -
97 #include "./gtx/inertia.hpp"
-
98 #include "./gtx/int_10_10_10_2.hpp"
-
99 #include "./gtx/integer.hpp"
-
100 #include "./gtx/intersect.hpp"
-
101 #include "./gtx/log_base.hpp"
- - - - -
106 #include "./gtx/matrix_query.hpp"
-
107 #include "./gtx/mixed_product.hpp"
-
108 #include "./gtx/multiple.hpp"
-
109 #include "./gtx/norm.hpp"
-
110 #include "./gtx/normal.hpp"
-
111 #include "./gtx/normalize_dot.hpp"
- -
113 #include "./gtx/optimum_pow.hpp"
-
114 #include "./gtx/orthonormalize.hpp"
-
115 #include "./gtx/perpendicular.hpp"
- -
117 #include "./gtx/projection.hpp"
-
118 #include "./gtx/quaternion.hpp"
-
119 #include "./gtx/raw_data.hpp"
-
120 #include "./gtx/rotate_vector.hpp"
-
121 #include "./gtx/spline.hpp"
-
122 #include "./gtx/std_based_type.hpp"
-
123 #include "./gtx/string_cast.hpp"
-
124 #include "./gtx/transform.hpp"
-
125 #include "./gtx/transform2.hpp"
-
126 #include "./gtx/vec1.hpp"
-
127 #include "./gtx/vector_angle.hpp"
-
128 #include "./gtx/vector_query.hpp"
-
129 #include "./gtx/wrap.hpp"
-
130 
-
131 #if(GLM_ARCH & GLM_ARCH_SSE2)
-
132 # include "./gtx/simd_vec4.hpp"
-
133 # include "./gtx/simd_mat4.hpp"
-
134 #endif
-
135 
-
136 #endif //GLM_EXT_INCLUDED
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
- - - - diff --git a/3party/glm/doc/api/a00027.html b/3party/glm/doc/api/a00027.html deleted file mode 100755 index 21f97e2847..0000000000 --- a/3party/glm/doc/api/a00027.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -GLM: extend.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
extend.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL 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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_extend

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

Definition in file extend.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00027_source.html b/3party/glm/doc/api/a00027_source.html deleted file mode 100755 index 31a8c9bb9c..0000000000 --- a/3party/glm/doc/api/a00027_source.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -GLM: extend.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
extend.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_extend
-
39 #define GLM_GTX_extend
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_extend extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename genType>
-
56  GLM_FUNC_DECL genType extend(
-
57  genType const & Origin,
-
58  genType const & Source,
-
59  typename genType::value_type const Length);
-
60 
-
62 }//namespace glm
-
63 
-
64 #include "extend.inl"
-
65 
-
66 #endif//GLM_GTX_extend
-
GLM_FUNC_DECL genType extend(genType const &Origin, genType const &Source, typename genType::value_type const Length)
Extends of Length the Origin position using the (Source - Origin) direction.
-
- - - - diff --git a/3party/glm/doc/api/a00028.html b/3party/glm/doc/api/a00028.html deleted file mode 100755 index 7cfaa1414e..0000000000 --- a/3party/glm/doc/api/a00028.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - -GLM: extented_min_max.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
extented_min_max.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-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 >::T const &y, typename C< T >::T 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 >::T const &y, typename C< T >::T const &z, typename C< T >::T 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 >::T const &y, typename C< T >::T 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 >::T const &y, typename C< T >::T const &z, typename C< T >::T 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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_extented_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/3party/glm/doc/api/a00028_source.html b/3party/glm/doc/api/a00028_source.html deleted file mode 100755 index c60e44f5a4..0000000000 --- a/3party/glm/doc/api/a00028_source.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - -GLM: extented_min_max.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
extented_min_max.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_extented_min_max
-
40 #define GLM_GTX_extented_min_max
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_extented_min_max extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T>
-
57  T min(
-
58  T const & x,
-
59  T const & y,
-
60  T const & z);
-
61 
-
64  template
-
65  <
-
66  typename T,
-
67  template <typename> class C
-
68  >
-
69  C<T> min(
-
70  C<T> const & x,
-
71  typename C<T>::T const & y,
-
72  typename C<T>::T const & z);
-
73 
-
76  template
-
77  <
-
78  typename T,
-
79  template <typename> class C
-
80  >
-
81  C<T> min(
-
82  C<T> const & x,
-
83  C<T> const & y,
-
84  C<T> const & z);
-
85 
-
88  template <typename T>
-
89  T min(
-
90  T const & x,
-
91  T const & y,
-
92  T const & z,
-
93  T const & w);
-
94 
-
97  template
-
98  <
-
99  typename T,
-
100  template <typename> class C
-
101  >
-
102  C<T> min(
-
103  C<T> const & x,
-
104  typename C<T>::T const & y,
-
105  typename C<T>::T const & z,
-
106  typename C<T>::T const & w);
-
107 
-
110  template
-
111  <
-
112  typename T,
-
113  template <typename> class C
-
114  >
-
115  C<T> min(
-
116  C<T> const & x,
-
117  C<T> const & y,
-
118  C<T> const & z,
-
119  C<T> const & w);
-
120 
-
123  template <typename T>
-
124  T max(
-
125  T const & x,
-
126  T const & y,
-
127  T const & z);
-
128 
-
131  template
-
132  <
-
133  typename T,
-
134  template <typename> class C
-
135  >
-
136  C<T> max(
-
137  C<T> const & x,
-
138  typename C<T>::T const & y,
-
139  typename C<T>::T const & z);
-
140 
-
143  template
-
144  <
-
145  typename T,
-
146  template <typename> class C
-
147  >
-
148  C<T> max(
-
149  C<T> const & x,
-
150  C<T> const & y,
-
151  C<T> const & z);
-
152 
-
155  template <typename T>
-
156  T max(
-
157  T const & x,
-
158  T const & y,
-
159  T const & z,
-
160  T const & w);
-
161 
-
164  template
-
165  <
-
166  typename T,
-
167  template <typename> class C
-
168  >
-
169  C<T> max(
-
170  C<T> const & x,
-
171  typename C<T>::T const & y,
-
172  typename C<T>::T const & z,
-
173  typename C<T>::T const & w);
-
174 
-
177  template
-
178  <
-
179  typename T,
-
180  template <typename> class C
-
181  >
-
182  C<T> max(
-
183  C<T> const & x,
-
184  C<T> const & y,
-
185  C<T> const & z,
-
186  C<T> const & w);
-
187 
-
189 }//namespace glm
-
190 
-
191 #include "extented_min_max.inl"
-
192 
-
193 #endif//GLM_GTX_extented_min_max
-
GLM_FUNC_DECL genType max(genType const &x, genType const &y)
Returns y if x &lt; y; otherwise, it returns x.
-
GLM_FUNC_DECL genType min(genType const &x, genType const &y)
Returns y if y &lt; x; otherwise, it returns x.
-
- - - - diff --git a/3party/glm/doc/api/a00029.html b/3party/glm/doc/api/a00029.html deleted file mode 100755 index 4ff68a11ec..0000000000 --- a/3party/glm/doc/api/a00029.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - -GLM: fast_exponential.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
fast_exponential.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - -

-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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_fast_exponential

-
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/3party/glm/doc/api/a00029_source.html b/3party/glm/doc/api/a00029_source.html deleted file mode 100755 index efa9df6893..0000000000 --- a/3party/glm/doc/api/a00029_source.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - -GLM: fast_exponential.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
fast_exponential.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_fast_exponential
-
40 #define GLM_GTX_fast_exponential
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_fast_exponential extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename genType>
-
57  genType fastPow(
-
58  genType const & x,
-
59  genType const & y);
-
60 
-
63  template <typename genTypeT, typename genTypeU>
-
64  genTypeT fastPow(
-
65  genTypeT const & x,
-
66  genTypeU const & y);
-
67 
-
70  template <typename T>
-
71  T fastExp(const T& x);
-
72 
-
75  template <typename T>
-
76  T fastLog(const T& x);
-
77 
-
80  template <typename T>
-
81  T fastExp2(const T& x);
-
82 
-
85  template <typename T>
-
86  T fastLog2(const T& x);
-
87 
-
90  template <typename T>
-
91  T fastLn(const T& x);
-
92 
-
94 }//namespace glm
-
95 
-
96 #include "fast_exponential.inl"
-
97 
-
98 #endif//GLM_GTX_fast_exponential
-
T fastLn(const T &x)
Faster than the common ln function but less accurate.
-
T fastLog(const T &x)
Faster than the common log function but less accurate.
-
T fastExp(const T &x)
Faster than the common exp function but less accurate.
-
T fastExp2(const T &x)
Faster than the common exp2 function but less accurate.
-
genType fastPow(genType const &x, genType const &y)
Faster than the common pow function but less accurate.
-
T fastLog2(const T &x)
Faster than the common log2 function but less accurate.
-
- - - - diff --git a/3party/glm/doc/api/a00030.html b/3party/glm/doc/api/a00030.html deleted file mode 100755 index 37c4ca1aec..0000000000 --- a/3party/glm/doc/api/a00030.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -GLM: fast_square_root.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
fast_square_root.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - -

-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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_fast_square_root

-
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/3party/glm/doc/api/a00030_source.html b/3party/glm/doc/api/a00030_source.html deleted file mode 100755 index b1d65f7a98..0000000000 --- a/3party/glm/doc/api/a00030_source.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -GLM: fast_square_root.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
fast_square_root.hpp
-
-
-Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTX_fast_square_root
-
41 #define GLM_GTX_fast_square_root
-
42 
-
43 // Dependency:
-
44 #include "../glm.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_fast_square_root extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
57  template <typename genType>
-
58  genType fastSqrt(genType const & x);
-
59 
-
62  template <typename genType>
-
63  genType fastInverseSqrt(genType const & x);
-
64 
-
67  template <typename genType>
-
68  typename genType::value_type fastLength(genType const & x);
-
69 
-
72  template <typename genType>
-
73  typename genType::value_type fastDistance(genType const & x, genType const & y);
-
74 
-
77  template <typename genType>
-
78  genType fastNormalize(genType const & x);
-
79 
-
81 }// namespace glm
-
82 
-
83 #include "fast_square_root.inl"
-
84 
-
85 #endif//GLM_GTX_fast_square_root
-
genType fastSqrt(genType const &x)
Faster than the common sqrt function but less accurate.
-
genType fastInverseSqrt(genType const &x)
Faster than the common inversesqrt function but less accurate.
-
genType::value_type fastDistance(genType const &x, genType const &y)
Faster than the common distance function but less accurate.
-
genType fastNormalize(genType const &x)
Faster than the common normalize function but less accurate.
-
genType::value_type fastLength(genType const &x)
Faster than the common length function but less accurate.
-
- - - - diff --git a/3party/glm/doc/api/a00031.html b/3party/glm/doc/api/a00031.html deleted file mode 100755 index e73f867e4a..0000000000 --- a/3party/glm/doc/api/a00031.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -GLM: fast_trigonometry.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
fast_trigonometry.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - -

-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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_fast_trigonometry

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

Definition in file fast_trigonometry.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00031_source.html b/3party/glm/doc/api/a00031_source.html deleted file mode 100755 index ba8da12a54..0000000000 --- a/3party/glm/doc/api/a00031_source.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - -GLM: fast_trigonometry.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
fast_trigonometry.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_fast_trigonometry
-
39 #define GLM_GTX_fast_trigonometry
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_fast_trigonometry extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
56  template <typename T>
-
57  T fastSin(const T& angle);
-
58 
-
62  template <typename T>
-
63  T fastCos(const T& angle);
-
64 
-
68  template <typename T>
-
69  T fastTan(const T& angle);
-
70 
-
74  template <typename T>
-
75  T fastAsin(const T& angle);
-
76 
-
80  template <typename T>
-
81  T fastAcos(const T& angle);
-
82 
-
86  template <typename T>
-
87  T fastAtan(const T& y, const T& x);
-
88 
-
92  template <typename T>
-
93  T fastAtan(const T& angle);
-
94 
-
96 }//namespace glm
-
97 
-
98 #include "fast_trigonometry.inl"
-
99 
-
100 #endif//GLM_GTX_fast_trigonometry
-
T fastAcos(const T &angle)
Faster than the common acos function but less accurate.
-
T fastAtan(const T &y, const T &x)
Faster than the common atan function but less accurate.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
T fastAsin(const T &angle)
Faster than the common asin function but less accurate.
-
T fastTan(const T &angle)
Faster than the common tan function but less accurate.
-
T fastSin(const T &angle)
Faster than the common sin function but less accurate.
-
T fastCos(const T &angle)
Faster than the common cos function but less accurate.
-
- - - - diff --git a/3party/glm/doc/api/a00032_source.html b/3party/glm/doc/api/a00032_source.html deleted file mode 100755 index 77dc7e0da0..0000000000 --- a/3party/glm/doc/api/a00032_source.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - -GLM: func_common.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
func_common.hpp
-
-
-
1 
-
36 #ifndef GLM_FUNC_COMMON_INCLUDED
-
37 #define GLM_FUNC_COMMON_INCLUDED
-
38 
-
39 #include "setup.hpp"
-
40 #include "precision.hpp"
-
41 #include "type_int.hpp"
-
42 #include "_fixes.hpp"
-
43 
-
44 namespace glm
-
45 {
-
48 
-
55  template <typename genType>
-
56  GLM_FUNC_DECL genType abs(genType const & x);
-
57 
-
64  template <typename genType>
-
65  GLM_FUNC_DECL genType sign(genType const & x);
-
66 
-
73  template <typename genType>
-
74  GLM_FUNC_DECL genType floor(genType const & x);
-
75 
-
83  template <typename genType>
-
84  GLM_FUNC_DECL genType trunc(genType const & x);
-
85 
-
96  template <typename genType>
-
97  GLM_FUNC_DECL genType round(genType const & x);
-
98 
-
108  template <typename genType>
-
109  GLM_FUNC_DECL genType roundEven(genType const & x);
-
110 
-
118  template <typename genType>
-
119  GLM_FUNC_DECL genType ceil(genType const & x);
-
120 
-
127  template <typename genType>
-
128  GLM_FUNC_DECL genType fract(genType const & x);
-
129 
-
137  template <typename genType>
-
138  GLM_FUNC_DECL genType mod(
-
139  genType const & x,
-
140  genType const & y);
-
141 
-
149  template <typename genType>
-
150  GLM_FUNC_DECL genType mod(
-
151  genType const & x,
-
152  typename genType::value_type const & y);
-
153 
-
163  template <typename genType>
-
164  GLM_FUNC_DECL genType modf(
-
165  genType const & x,
-
166  genType & i);
-
167 
-
174  template <typename genType>
-
175  GLM_FUNC_DECL genType min(
-
176  genType const & x,
-
177  genType const & y);
-
178 
-
179  template <typename genType>
-
180  GLM_FUNC_DECL genType min(
-
181  genType const & x,
-
182  typename genType::value_type const & y);
-
183 
-
190  template <typename genType>
-
191  GLM_FUNC_DECL genType max(
-
192  genType const & x,
-
193  genType const & y);
-
194 
-
195  template <typename genType>
-
196  GLM_FUNC_DECL genType max(
-
197  genType const & x,
-
198  typename genType::value_type const & y);
-
199 
-
207  template <typename genType>
-
208  GLM_FUNC_DECL genType clamp(
-
209  genType const & x,
-
210  genType const & minVal,
-
211  genType const & maxVal);
-
212 
-
213  template <typename genType, precision P>
-
214  GLM_FUNC_DECL genType clamp(
-
215  genType const & x,
-
216  typename genType::value_type const & minVal,
-
217  typename genType::value_type const & maxVal);
-
218 
-
261  template <typename genTypeT, typename genTypeU>
-
262  GLM_FUNC_DECL genTypeT mix(
-
263  genTypeT const & x,
-
264  genTypeT const & y,
-
265  genTypeU const & a);
-
266 
-
271  template <typename genType>
-
272  GLM_FUNC_DECL genType step(
-
273  genType const & edge,
-
274  genType const & x);
-
275 
-
280  template <template <typename, precision> class vecType, typename T, precision P>
-
281  GLM_FUNC_DECL vecType<T, P> step(
-
282  T const & edge,
-
283  vecType<T, P> const & x);
-
284 
-
299  template <typename genType>
-
300  GLM_FUNC_DECL genType smoothstep(
-
301  genType const & edge0,
-
302  genType const & edge1,
-
303  genType const & x);
-
304 
-
305  template <typename genType>
-
306  GLM_FUNC_DECL genType smoothstep(
-
307  typename genType::value_type const & edge0,
-
308  typename genType::value_type const & edge1,
-
309  genType const & x);
-
310 
-
323  template <typename genType>
-
324  GLM_FUNC_DECL typename genType::bool_type isnan(genType const & x);
-
325 
-
336  template <typename genType>
-
337  GLM_FUNC_DECL typename genType::bool_type isinf(genType const & x);
-
338 
-
345  GLM_FUNC_DECL int floatBitsToInt(float const & v);
-
346 
-
353  template <template <typename, precision> class vecType, precision P>
-
354  GLM_FUNC_DECL vecType<int, P> floatBitsToInt(vecType<float, P> const & v);
-
355 
-
362  GLM_FUNC_DECL uint floatBitsToUint(float const & v);
-
363 
-
370  template <template <typename, precision> class vecType, precision P>
-
371  GLM_FUNC_DECL vecType<uint, P> floatBitsToUint(vecType<float, P> const & v);
-
372 
-
381  GLM_FUNC_DECL float intBitsToFloat(int const & v);
-
382 
-
391  template <template <typename, precision> class vecType, precision P>
-
392  GLM_FUNC_DECL vecType<float, P> intBitsToFloat(vecType<int, P> const & v);
-
393 
-
402  GLM_FUNC_DECL float uintBitsToFloat(uint const & v);
-
403 
-
412  template <template <typename, precision> class vecType, precision P>
-
413  GLM_FUNC_DECL vecType<float, P> uintBitsToFloat(vecType<uint, P> const & v);
-
414 
-
421  template <typename genType>
-
422  GLM_FUNC_DECL genType fma(genType const & a, genType const & b, genType const & c);
-
423 
-
438  template <typename genType, typename genIType>
-
439  GLM_FUNC_DECL genType frexp(genType const & x, genIType & exp);
-
440 
-
452  template <typename genType, typename genIType>
-
453  GLM_FUNC_DECL genType ldexp(genType const & x, genIType const & exp);
-
454 
-
456 }//namespace glm
-
457 
-
458 #include "func_common.inl"
-
459 
-
460 #endif//GLM_FUNC_COMMON_INCLUDED
-
GLM_FUNC_DECL genType floor(genType const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
-
GLM_FUNC_DECL genTypeT mix(genTypeT const &x, genTypeT const &y, genTypeU const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:171
-
GLM_FUNC_DECL genType mod(genType const &x, genType const &y)
Modulus.
-
GLM_FUNC_DECL genType 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 val...
-
GLM_FUNC_DECL genType exp(genType const &x)
Returns the natural exponentiation of x, i.e., e^x.
-
GLM_FUNC_DECL genType fract(genType const &x)
Return x - floor(x).
-
GLM_FUNC_DECL genType ceil(genType const &x)
Returns a value equal to the nearest integer that is greater than or equal to x.
-
GLM_FUNC_DECL genType::bool_type isnan(genType const &x)
Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...
-
GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c.
-
GLM_FUNC_DECL float intBitsToFloat(int const &v)
Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...
-
GLM_FUNC_DECL genType step(genType const &edge, genType const &x)
Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType.
-
GLM_FUNC_DECL int floatBitsToInt(float const &v)
Returns a signed integer value representing the encoding of a floating-point value.
-
GLM_FUNC_DECL genType trunc(genType const &x)
Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...
-
GLM_FUNC_DECL genType roundEven(genType const &x)
Returns a value equal to the nearest integer to x.
-
GLM_FUNC_DECL genType round(genType const &x)
Returns a value equal to the nearest integer to x.
-
GLM_FUNC_DECL float uintBitsToFloat(uint const &v)
Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...
-
GLM_FUNC_DECL uint floatBitsToUint(float const &v)
Returns a unsigned integer value representing the encoding of a floating-point value.
-
GLM_FUNC_DECL genType abs(genType const &x)
Returns x if x &gt;= 0; otherwise, it returns -x.
-
GLM_FUNC_DECL genType::bool_type isinf(genType const &x)
Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...
-
GLM_FUNC_DECL genType ldexp(genType const &x, genIType const &exp)
Builds a floating-point number from x and the corresponding integral exponent of two in exp...
-
GLM_FUNC_DECL genType smoothstep(genType const &edge0, genType const &edge1, genType const &x)
Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 a...
-
GLM_FUNC_DECL genType 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 an...
-
GLM_FUNC_DECL genType max(genType const &x, genType const &y)
Returns y if x &lt; y; otherwise, it returns x.
-
GLM_FUNC_DECL genType sign(genType const &x)
Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.
-
GLM_FUNC_DECL genType min(genType const &x, genType const &y)
Returns y if y &lt; x; otherwise, it returns x.
-
GLM_FUNC_DECL genType 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...
-
- - - - diff --git a/3party/glm/doc/api/a00033_source.html b/3party/glm/doc/api/a00033_source.html deleted file mode 100755 index bb10b784ed..0000000000 --- a/3party/glm/doc/api/a00033_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -GLM: func_exponential.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
func_exponential.hpp
-
-
-
1 
-
36 #ifndef glm_core_func_exponential
-
37 #define glm_core_func_exponential
-
38 
-
39 #include "type_vec1.hpp"
-
40 #include "type_vec2.hpp"
-
41 #include "type_vec3.hpp"
-
42 #include "type_vec4.hpp"
-
43 #include <cmath>
-
44 
-
45 namespace glm
-
46 {
-
49 
-
58  template <typename genType>
-
59  GLM_FUNC_DECL genType pow(genType const & base, genType const & exponent);
-
60 
-
68  template <typename genType>
-
69  GLM_FUNC_DECL genType exp(genType const & x);
-
70 
-
80  template <typename genType>
-
81  GLM_FUNC_DECL genType log(genType const & x);
-
82 
-
90  template <typename genType>
-
91  GLM_FUNC_DECL genType exp2(genType const & x);
-
92 
-
101  template <typename genType>
-
102  GLM_FUNC_DECL genType log2(genType const & x);
-
103 
-
111  template <typename genType>
-
112  GLM_FUNC_DECL genType sqrt(genType const & x);
-
113 
-
121  template <typename genType>
-
122  GLM_FUNC_DECL genType inversesqrt(genType const & x);
-
123 
-
125 }//namespace glm
-
126 
-
127 #include "func_exponential.inl"
-
128 
-
129 #endif//glm_core_func_exponential
-
GLM_FUNC_DECL genType sqrt(genType const &x)
Returns the positive square root of x.
-
GLM_FUNC_DECL genType inversesqrt(genType const &x)
Returns the reciprocal of the positive square root of x.
-
GLM_FUNC_DECL genType exp(genType const &x)
Returns the natural exponentiation of x, i.e., e^x.
-
GLM_FUNC_DECL genType log2(genType const &x)
Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...
-
GLM_FUNC_DECL genType pow(genType const &base, genType const &exponent)
Returns &#39;base&#39; raised to the power &#39;exponent&#39;.
-
GLM_FUNC_DECL genType exp2(genType const &x)
Returns 2 raised to the x power.
-
GLM_FUNC_DECL genType log(genType const &x)
Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y...
-
- - - - diff --git a/3party/glm/doc/api/a00034_source.html b/3party/glm/doc/api/a00034_source.html deleted file mode 100755 index f57c5137d5..0000000000 --- a/3party/glm/doc/api/a00034_source.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - -GLM: func_geometric.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
func_geometric.hpp
-
-
-
1 
-
36 #ifndef glm_core_func_geometric
-
37 #define glm_core_func_geometric
-
38 
-
39 #include "type_vec3.hpp"
-
40 
-
41 namespace glm
-
42 {
-
45 
-
52  template <typename genType>
-
53  GLM_FUNC_DECL typename genType::value_type length(
-
54  genType const & x);
-
55 
-
62  template <typename genType>
-
63  GLM_FUNC_DECL typename genType::value_type distance(
-
64  genType const & p0,
-
65  genType const & p1);
-
66 
-
73  template <typename T, precision P, template <typename, precision> class vecType>
-
74  GLM_FUNC_DECL T dot(
-
75  vecType<T, P> const & x,
-
76  vecType<T, P> const & y);
-
77 
-
84  template <typename genType>
-
85  GLM_FUNC_DECL genType dot(
-
86  genType const & x,
-
87  genType const & y);
-
88 
-
95  template <typename T, precision P>
-
96  GLM_FUNC_DECL detail::tvec3<T, P> cross(
-
97  detail::tvec3<T, P> const & x,
-
98  detail::tvec3<T, P> const & y);
-
99 
-
104  template <typename genType>
-
105  GLM_FUNC_DECL genType normalize(
-
106  genType const & x);
-
107 
-
114  template <typename genType>
-
115  GLM_FUNC_DECL genType faceforward(
-
116  genType const & N,
-
117  genType const & I,
-
118  genType const & Nref);
-
119 
-
127  template <typename genType>
-
128  GLM_FUNC_DECL genType reflect(
-
129  genType const & I,
-
130  genType const & N);
-
131 
-
140  template <typename T, precision P, template <typename, precision> class vecType>
-
141  GLM_FUNC_DECL vecType<T, P> refract(
-
142  vecType<T, P> const & I,
-
143  vecType<T, P> const & N,
-
144  T const & eta);
-
145 
-
147 }//namespace glm
-
148 
-
149 #include "func_geometric.inl"
-
150 
-
151 #endif//glm_core_func_geometric
-
GLM_FUNC_DECL genType faceforward(genType const &N, genType const &I, genType const &Nref)
If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N.
-
GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the dot product of x and y, i.e., result = x * y.
-
GLM_FUNC_DECL detail::tvec3< T, P > cross(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
Returns the cross product of x and y.
-
GLM_FUNC_DECL genType normalize(genType const &x)
Returns a vector in the same direction as x but with length of 1.
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T const &eta)
For the incident vector I and surface normal N, and the ratio of indices of refraction eta...
-
GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)
For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...
-
GLM_FUNC_DECL genType::value_type distance(genType const &p0, genType const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
-
- - - - diff --git a/3party/glm/doc/api/a00035_source.html b/3party/glm/doc/api/a00035_source.html deleted file mode 100755 index 48dcadb48e..0000000000 --- a/3party/glm/doc/api/a00035_source.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -GLM: func_integer.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
func_integer.hpp
-
-
-
1 
-
38 #ifndef glm_core_func_integer
-
39 #define glm_core_func_integer
-
40 
-
41 #include "setup.hpp"
-
42 
-
43 namespace glm
-
44 {
-
47 
-
56  template <typename genUType>
-
57  GLM_FUNC_DECL genUType uaddCarry(
-
58  genUType const & x,
-
59  genUType const & y,
-
60  genUType & carry);
-
61 
-
70  template <typename genUType>
-
71  GLM_FUNC_DECL genUType usubBorrow(
-
72  genUType const & x,
-
73  genUType const & y,
-
74  genUType & borrow);
-
75 
-
84  template <typename genUType>
-
85  GLM_FUNC_DECL void umulExtended(
-
86  genUType const & x,
-
87  genUType const & y,
-
88  genUType & msb,
-
89  genUType & lsb);
-
90 
-
99  template <typename genIType>
-
100  GLM_FUNC_DECL void imulExtended(
-
101  genIType const & x,
-
102  genIType const & y,
-
103  genIType & msb,
-
104  genIType & lsb);
-
105 
-
121  template <typename genIUType>
-
122  GLM_FUNC_DECL genIUType bitfieldExtract(
-
123  genIUType const & Value,
-
124  int const & Offset,
-
125  int const & Bits);
-
126 
-
141  template <typename genIUType>
-
142  GLM_FUNC_DECL genIUType bitfieldInsert(
-
143  genIUType const & Base,
-
144  genIUType const & Insert,
-
145  int const & Offset,
-
146  int const & Bits);
-
147 
-
156  template <typename genIUType>
-
157  GLM_FUNC_DECL genIUType bitfieldReverse(genIUType const & Value);
-
158 
-
167  template <typename T, template <typename> class genIUType>
-
168  GLM_FUNC_DECL typename genIUType<T>::signed_type bitCount(genIUType<T> const & Value);
-
169 
-
180  template <typename T, template <typename> class genIUType>
-
181  GLM_FUNC_DECL typename genIUType<T>::signed_type findLSB(genIUType<T> const & Value);
-
182 
-
194  template <typename T, template <typename> class genIUType>
-
195  GLM_FUNC_DECL typename genIUType<T>::signed_type findMSB(genIUType<T> const & Value);
-
196 
-
198 }//namespace glm
-
199 
-
200 #include "func_integer.inl"
-
201 
-
202 #endif//glm_core_func_integer
-
203 
-
GLM_FUNC_DECL genIUType< T >::signed_type findLSB(genIUType< T > const &Value)
Returns the bit number of the least significant bit set to 1 in the binary representation of value...
-
GLM_FUNC_DECL genIUType< T >::signed_type bitCount(genIUType< T > const &Value)
Returns the number of bits set to 1 in the binary representation of value.
-
GLM_FUNC_DECL void imulExtended(genIType const &x, genIType const &y, genIType &msb, genIType &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.
-
GLM_FUNC_DECL genIUType 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...
-
GLM_FUNC_DECL genIUType bitfieldReverse(genIUType const &Value)
Returns the reversal of the bits of value.
-
GLM_FUNC_DECL void umulExtended(genUType const &x, genUType const &y, genUType &msb, genUType &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.
-
GLM_FUNC_DECL genIUType 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.
-
GLM_FUNC_DECL genIUType< T >::signed_type findMSB(genIUType< T > const &Value)
Returns the bit number of the most significant bit in the binary representation of value...
-
GLM_FUNC_DECL genUType uaddCarry(genUType const &x, genUType const &y, genUType &carry)
Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).
-
GLM_FUNC_DECL genUType 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.
-
- - - - diff --git a/3party/glm/doc/api/a00036_source.html b/3party/glm/doc/api/a00036_source.html deleted file mode 100755 index ac54cfd7b2..0000000000 --- a/3party/glm/doc/api/a00036_source.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - -GLM: func_matrix.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
func_matrix.hpp
-
-
-
1 
-
40 #ifndef GLM_CORE_func_matrix
-
41 #define GLM_CORE_func_matrix
-
42 
-
43 // Dependencies
-
44 #include "../detail/precision.hpp"
-
45 #include "../detail/setup.hpp"
-
46 #include "../detail/type_mat.hpp"
-
47 #include "../vec2.hpp"
-
48 #include "../vec3.hpp"
-
49 #include "../vec4.hpp"
-
50 #include "../mat2x2.hpp"
-
51 #include "../mat2x3.hpp"
-
52 #include "../mat2x4.hpp"
-
53 #include "../mat3x2.hpp"
-
54 #include "../mat3x3.hpp"
-
55 #include "../mat3x4.hpp"
-
56 #include "../mat4x2.hpp"
-
57 #include "../mat4x3.hpp"
-
58 #include "../mat4x4.hpp"
-
59 
-
60 namespace glm{
-
61 namespace detail
-
62 {
-
63  template <typename T, precision P>
-
64  struct outerProduct_trait<T, P, tvec2, tvec2>
-
65  {
-
66  typedef tmat2x2<T, P> type;
-
67  };
-
68 
-
69  template <typename T, precision P>
-
70  struct outerProduct_trait<T, P, tvec2, tvec3>
-
71  {
-
72  typedef tmat2x3<T, P> type;
-
73  };
-
74 
-
75  template <typename T, precision P>
-
76  struct outerProduct_trait<T, P, tvec2, tvec4>
-
77  {
-
78  typedef tmat2x4<T, P> type;
-
79  };
-
80 
-
81  template <typename T, precision P>
-
82  struct outerProduct_trait<T, P, tvec3, tvec2>
-
83  {
-
84  typedef tmat3x2<T, P> type;
-
85  };
-
86 
-
87  template <typename T, precision P>
-
88  struct outerProduct_trait<T, P, tvec3, tvec3>
-
89  {
-
90  typedef tmat3x3<T, P> type;
-
91  };
-
92 
-
93  template <typename T, precision P>
-
94  struct outerProduct_trait<T, P, tvec3, tvec4>
-
95  {
-
96  typedef tmat3x4<T, P> type;
-
97  };
-
98 
-
99  template <typename T, precision P>
-
100  struct outerProduct_trait<T, P, tvec4, tvec2>
-
101  {
-
102  typedef tmat4x2<T, P> type;
-
103  };
-
104 
-
105  template <typename T, precision P>
-
106  struct outerProduct_trait<T, P, tvec4, tvec3>
-
107  {
-
108  typedef tmat4x3<T, P> type;
-
109  };
-
110 
-
111  template <typename T, precision P>
-
112  struct outerProduct_trait<T, P, tvec4, tvec4>
-
113  {
-
114  typedef tmat4x4<T, P> type;
-
115  };
-
116 
-
117 }//namespace detail
-
118 
-
121 
-
129  template <typename T, precision P, template <typename, precision> class matType>
-
130  GLM_FUNC_DECL matType<T, P> matrixCompMult(matType<T, P> const & x, matType<T, P> const & y);
-
131 
-
142  template <typename T, precision P, template <typename, precision> class vecTypeA, template <typename, precision> class vecTypeB>
-
143  GLM_FUNC_DECL typename detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type outerProduct(vecTypeA<T, P> const & c, vecTypeB<T, P> const & r);
-
144 
-
151 # if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC11))
-
152  template <typename T, precision P, template <typename, precision> class matType>
-
153  GLM_FUNC_DECL typename matType<T, P>::transpose_type transpose(matType<T, P> const & x);
-
154 # endif
-
155 
-
162  template <typename T, precision P, template <typename, precision> class matType>
-
163  GLM_FUNC_DECL T determinant(matType<T, P> const & m);
-
164 
-
171  template <typename T, precision P, template <typename, precision> class matType>
-
172  GLM_FUNC_DECL matType<T, P> inverse(matType<T, P> const & m);
-
173 
-
175 }//namespace glm
-
176 
-
177 #include "func_matrix.inl"
-
178 
-
179 #endif//GLM_CORE_func_matrix
-
GLM_FUNC_DECL detail::tquat< T, P > inverse(detail::tquat< T, P > const &q)
Returns the q inverse.
-
- - - - diff --git a/3party/glm/doc/api/a00037_source.html b/3party/glm/doc/api/a00037_source.html deleted file mode 100755 index 8240faee48..0000000000 --- a/3party/glm/doc/api/a00037_source.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: func_noise.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
func_noise.hpp
-
-
-
1 
-
38 #ifndef glm_core_func_noise
-
39 #define glm_core_func_noise
-
40 
-
41 #include "type_vec1.hpp"
-
42 #include "type_vec2.hpp"
-
43 #include "type_vec3.hpp"
-
44 #include "setup.hpp"
-
45 
-
46 namespace glm
-
47 {
-
50 
-
57  template <typename genType>
-
58  GLM_FUNC_DECL typename genType::value_type noise1(genType const & x);
-
59 
-
66  template <typename genType>
-
67  GLM_FUNC_DECL detail::tvec2<typename genType::value_type, defaultp> noise2(genType const & x);
-
68 
-
75  template <typename genType>
-
76  GLM_FUNC_DECL detail::tvec3<typename genType::value_type, defaultp> noise3(genType const & x);
-
77 
-
84  template <typename genType>
-
85  GLM_FUNC_DECL detail::tvec4<typename genType::value_type, defaultp> noise4(genType const & x);
-
86 
-
88 }//namespace glm
-
89 
-
90 #include "func_noise.inl"
-
91 
-
92 #endif//glm_core_func_noise
-
GLM_FUNC_DECL genType::value_type noise1(genType const &x)
Returns a 1D noise value based on the input value x.
-
GLM_FUNC_DECL detail::tvec2< typename genType::value_type, defaultp > noise2(genType const &x)
Returns a 2D noise value based on the input value x.
-
GLM_FUNC_DECL detail::tvec4< typename genType::value_type, defaultp > noise4(genType const &x)
Returns a 4D noise value based on the input value x.
-
GLM_FUNC_DECL detail::tvec3< typename genType::value_type, defaultp > noise3(genType const &x)
Returns a 3D noise value based on the input value x.
-
- - - - diff --git a/3party/glm/doc/api/a00038_source.html b/3party/glm/doc/api/a00038_source.html deleted file mode 100755 index 72fa0e895a..0000000000 --- a/3party/glm/doc/api/a00038_source.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - -GLM: func_packing.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
func_packing.hpp
-
-
-
1 
-
36 #ifndef GLM_CORE_func_packing
-
37 #define GLM_CORE_func_packing
-
38 
-
39 #include "type_vec2.hpp"
-
40 #include "type_vec4.hpp"
-
41 
-
42 namespace glm
-
43 {
-
46 
-
58  GLM_FUNC_DECL uint packUnorm2x16(vec2 const & v);
-
59 
-
71  GLM_FUNC_DECL uint packSnorm2x16(vec2 const & v);
-
72 
-
84  GLM_FUNC_DECL uint packUnorm4x8(vec4 const & v);
-
85 
-
97  GLM_FUNC_DECL uint packSnorm4x8(vec4 const & v);
-
98 
-
110  GLM_FUNC_DECL vec2 unpackUnorm2x16(uint const & p);
-
111 
-
123  GLM_FUNC_DECL vec2 unpackSnorm2x16(uint const & p);
-
124 
-
136  GLM_FUNC_DECL vec4 unpackUnorm4x8(uint const & p);
-
137 
-
149  GLM_FUNC_DECL vec4 unpackSnorm4x8(uint const & p);
-
150 
-
159  GLM_FUNC_DECL double packDouble2x32(uvec2 const & v);
-
160 
-
168  GLM_FUNC_DECL uvec2 unpackDouble2x32(double const & v);
-
169 
-
178  GLM_FUNC_DECL uint packHalf2x16(vec2 const & v);
-
179 
-
188  GLM_FUNC_DECL vec2 unpackHalf2x16(uint const & v);
-
189 
-
191 }//namespace glm
-
192 
-
193 #include "func_packing.inl"
-
194 
-
195 #endif//GLM_CORE_func_packing
-
GLM_FUNC_DECL vec4 unpackSnorm4x8(uint 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.
-
GLM_FUNC_DECL double packDouble2x32(uvec2 const &v)
Returns a double-precision value obtained by packing the components of v into a 64-bit value...
-
GLM_FUNC_DECL vec2 unpackHalf2x16(uint const &v)
Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...
-
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:398
-
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:171
-
GLM_FUNC_DECL uint packUnorm4x8(vec4 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL vec4 unpackUnorm4x8(uint 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.
-
GLM_FUNC_DECL uint packUnorm2x16(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL vec2 unpackUnorm2x16(uint 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.
-
GLM_FUNC_DECL uint packSnorm4x8(vec4 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL vec2 unpackSnorm2x16(uint 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.
-
highp_uvec2 uvec2
2 components vector of unsigned integer numbers.
Definition: type_vec.hpp:472
-
GLM_FUNC_DECL uint packSnorm2x16(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL uint packHalf2x16(vec2 const &v)
Returns an unsigned integer obtained by converting the components of a two-component floating-point v...
-
GLM_FUNC_DECL uvec2 unpackDouble2x32(double const &v)
Returns a two-component unsigned integer vector representation of v.
-
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:388
-
- - - - diff --git a/3party/glm/doc/api/a00039_source.html b/3party/glm/doc/api/a00039_source.html deleted file mode 100755 index 3d4b36b4b7..0000000000 --- a/3party/glm/doc/api/a00039_source.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - -GLM: func_trigonometric.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
func_trigonometric.hpp
-
-
-
1 
-
40 #ifndef GLM_CORE_func_trigonometric
-
41 #define GLM_CORE_func_trigonometric
-
42 
-
43 namespace glm
-
44 {
-
47 
-
54  template <typename genType>
-
55  GLM_FUNC_DECL genType radians(genType const & degrees);
-
56 
-
63  template <typename genType>
-
64  GLM_FUNC_DECL genType degrees(genType const & radians);
-
65 
-
73  template <typename genType>
-
74  GLM_FUNC_DECL genType sin(genType const & angle);
-
75 
-
83  template <typename genType>
-
84  GLM_FUNC_DECL genType cos(genType const & angle);
-
85 
-
92  template <typename genType>
-
93  GLM_FUNC_DECL genType tan(genType const & angle);
-
94 
-
103  template <typename genType>
-
104  GLM_FUNC_DECL genType asin(genType const & x);
-
105 
-
114  template <typename genType>
-
115  GLM_FUNC_DECL genType acos(genType const & x);
-
116 
-
127  template <typename genType>
-
128  GLM_FUNC_DECL genType atan(genType const & y, genType const & x);
-
129 
-
137  template <typename genType>
-
138  GLM_FUNC_DECL genType atan(genType const & y_over_x);
-
139 
-
146  template <typename genType>
-
147  GLM_FUNC_DECL genType sinh(genType const & angle);
-
148 
-
155  template <typename genType>
-
156  GLM_FUNC_DECL genType cosh(genType const & angle);
-
157 
-
164  template <typename genType>
-
165  GLM_FUNC_DECL genType tanh(genType const & angle);
-
166 
-
173  template <typename genType>
-
174  GLM_FUNC_DECL genType asinh(genType const & x);
-
175 
-
183  template <typename genType>
-
184  GLM_FUNC_DECL genType acosh(genType const & x);
-
185 
-
193  template <typename genType>
-
194  GLM_FUNC_DECL genType atanh(genType const & x);
-
195 
-
197 }//namespace glm
-
198 
-
199 #include "func_trigonometric.inl"
-
200 
-
201 #endif//GLM_CORE_func_trigonometric
-
202 
-
203 
-
GLM_FUNC_DECL genType sinh(genType const &angle)
Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.
-
GLM_FUNC_DECL genType cos(genType const &angle)
The standard trigonometric cosine function.
-
GLM_FUNC_DECL genType atan(genType const &y, genType const &x)
Arc tangent.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL genType radians(genType const &degrees)
Converts degrees to radians and returns the result.
-
GLM_FUNC_DECL genType tanh(genType const &angle)
Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)
-
GLM_FUNC_DECL genType acos(genType const &x)
Arc cosine.
-
GLM_FUNC_DECL genType sin(genType const &angle)
The standard trigonometric sine function.
-
GLM_FUNC_DECL genType cosh(genType const &angle)
Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.
-
GLM_FUNC_DECL genType tan(genType const &angle)
The standard trigonometric tangent function.
-
GLM_FUNC_DECL genType acosh(genType const &x)
Arc hyperbolic cosine; returns the non-negative inverse of cosh.
-
GLM_FUNC_DECL genType asinh(genType const &x)
Arc hyperbolic sine; returns the inverse of sinh.
-
GLM_FUNC_DECL genType asin(genType const &x)
Arc sine.
-
GLM_FUNC_DECL genType degrees(genType const &radians)
Converts radians to degrees and returns the result.
-
GLM_FUNC_DECL genType atanh(genType const &x)
Arc hyperbolic tangent; returns the inverse of tanh.
-
- - - - diff --git a/3party/glm/doc/api/a00040_source.html b/3party/glm/doc/api/a00040_source.html deleted file mode 100755 index b22cc884fd..0000000000 --- a/3party/glm/doc/api/a00040_source.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - -GLM: func_vector_relational.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
func_vector_relational.hpp
-
-
-
1 
-
41 #ifndef GLM_CORE_func_vector_relational
-
42 #define GLM_CORE_func_vector_relational
-
43 
-
44 #include "precision.hpp"
-
45 #include "setup.hpp"
-
46 
-
47 #if !((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER <= GLM_COMPILER_VC10)) // Workaround a Visual C++ bug
-
48 
-
49 namespace glm
-
50 {
-
53 
-
60  // TODO: Mismatched
-
61  //template <typename T, precision P, template <typename, precision> class vecType>
-
62  //GLM_FUNC_DECL typename vecType<T, P>::bool_type lessThan(vecType<T, P> const & x, vecType<T, P> const & y);
-
63 
-
70  template <typename T, precision P, template <typename, precision> class vecType>
-
71  GLM_FUNC_DECL typename vecType<T, P>::bool_type lessThanEqual(vecType<T, P> const & x, vecType<T, P> const & y);
-
72 
-
79  template <typename T, precision P, template <typename, precision> class vecType>
-
80  GLM_FUNC_DECL typename vecType<T, P>::bool_type greaterThan(vecType<T, P> const & x, vecType<T, P> const & y);
-
81 
-
88  template <typename T, precision P, template <typename, precision> class vecType>
-
89  GLM_FUNC_DECL typename vecType<T, P>::bool_type greaterThanEqual(vecType<T, P> const & x, vecType<T, P> const & y);
-
90 
-
97  //TODO: conflicts with definision
-
98  //template <typename T, precision P, template <typename, precision> class vecType>
-
99  //GLM_FUNC_DECL typename vecType<T, P>::bool_type equal(vecType<T, P> const & x, vecType<T, P> const & y);
-
100 
-
107  template <typename T, precision P, template <typename, precision> class vecType>
-
108  GLM_FUNC_DECL typename vecType<T, P>::bool_type notEqual(vecType<T, P> const & x, vecType<T, P> const & y);
-
109 
-
116  template <precision P, template <typename, precision> class vecType>
-
117  GLM_FUNC_DECL bool any(vecType<bool, P> const & v);
-
118 
-
125  template <precision P, template <typename, precision> class vecType>
-
126  GLM_FUNC_DECL bool all(vecType<bool, P> const & v);
-
127 
-
135  template <precision P, template <typename, precision> class vecType>
-
136  GLM_FUNC_DECL vecType<bool, P> not_(vecType<bool, P> const & v);
-
137 
-
139 }//namespace glm
-
140 
-
141 #endif
-
142 
-
143 #include "func_vector_relational.inl"
-
144 
-
145 #endif//GLM_CORE_func_vector_relational
-
GLM_FUNC_DECL vecType< T, P >::bool_type notEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x == y.
-
GLM_FUNC_DECL bool any(vecType< bool, P > const &v)
Returns true if any component of x is true.
-
GLM_FUNC_DECL vecType< T, P >::bool_type greaterThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x &gt;= y.
-
GLM_FUNC_DECL vecType< bool, P > not_(vecType< bool, P > const &v)
Returns the component-wise logical complement of x.
-
GLM_FUNC_DECL vecType< T, P >::bool_type greaterThan(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x &gt; y.
-
GLM_FUNC_DECL vecType< T, P >::bool_type lessThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison result of x &lt; y.
-
GLM_FUNC_DECL bool all(vecType< bool, P > const &v)
Returns true if all components of x are true.
-
- - - - diff --git a/3party/glm/doc/api/a00041.html b/3party/glm/doc/api/a00041.html deleted file mode 100755 index 9e87fa082c..0000000000 --- a/3party/glm/doc/api/a00041.html +++ /dev/null @@ -1,1137 +0,0 @@ - - - - - - -GLM: fwd.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
fwd.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef highp_dquat dquat
 
typedef highp_float32_t f32
 
typedef f32mat2x2 f32mat2
 
typedef highp_f32mat2x2 f32mat2x2
 
typedef highp_f32mat2x3 f32mat2x3
 
typedef highp_f32mat2x4 f32mat2x4
 
typedef f32mat3x3 f32mat3
 
typedef highp_f32mat3x2 f32mat3x2
 
typedef highp_f32mat3x3 f32mat3x3
 
typedef highp_f32mat3x4 f32mat3x4
 
typedef f32mat4x4 f32mat4
 
typedef highp_f32mat4x2 f32mat4x2
 
typedef highp_f32mat4x3 f32mat4x3
 
typedef highp_f32mat4x4 f32mat4x4
 
typedef highp_f32quat f32quat
 
typedef highp_f32vec1 f32vec1
 
typedef highp_f32vec2 f32vec2
 
typedef highp_f32vec3 f32vec3
 
typedef highp_f32vec4 f32vec4
 
typedef highp_float64_t f64
 
typedef f64mat2x2 f64mat2
 
typedef highp_f64mat2x2 f64mat2x2
 
typedef highp_f64mat2x3 f64mat2x3
 
typedef highp_f64mat2x4 f64mat2x4
 
typedef f64mat3x3 f64mat3
 
typedef highp_f64mat3x2 f64mat3x2
 
typedef highp_f64mat3x3 f64mat3x3
 
typedef highp_f64mat3x4 f64mat3x4
 
typedef f64mat4x4 f64mat4
 
typedef highp_f64mat4x2 f64mat4x2
 
typedef highp_f64mat4x3 f64mat4x3
 
typedef highp_f64mat4x4 f64mat4x4
 
typedef highp_f64quat f64quat
 
typedef highp_f64vec1 f64vec1
 
typedef highp_f64vec2 f64vec2
 
typedef highp_f64vec3 f64vec3
 
typedef highp_f64vec4 f64vec4
 
typedef highp_float32_t float32_t
 
typedef highp_float64_t float64_t
 
typedef fmat2x2 fmat2
 
typedef highp_f32mat2x2 fmat2x2
 
typedef highp_f32mat2x3 fmat2x3
 
typedef highp_f32mat2x4 fmat2x4
 
typedef fmat3x3 fmat3
 
typedef highp_f32mat3x2 fmat3x2
 
typedef highp_f32mat3x3 fmat3x3
 
typedef highp_f32mat3x4 fmat3x4
 
typedef fmat4x4 fmat4
 
typedef highp_f32mat4x2 fmat4x2
 
typedef highp_f32mat4x3 fmat4x3
 
typedef highp_f32mat4x4 fmat4x4
 
typedef quat fquat
 
typedef highp_f32vec1 fvec1
 
typedef highp_f32vec2 fvec2
 
typedef highp_f32vec3 fvec3
 
typedef highp_f32vec4 fvec4
 
typedef detail::tquat< double,
-highp > 
highp_dquat
 
typedef float32 highp_f32
 
typedef highp_f32mat2x2 highp_f32mat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_f32mat2x4
 
typedef highp_f32mat3x3 highp_f32mat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_f32mat3x4
 
typedef highp_f32mat4x4 highp_f32mat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_f32mat4x4
 
typedef detail::tquat< f32, highp > highp_f32quat
 
typedef detail::tvec1< f32, highp > highp_f32vec1
 
typedef detail::tvec2< f32, highp > highp_f32vec2
 
typedef detail::tvec3< f32, highp > highp_f32vec3
 
typedef detail::tvec4< f32, highp > highp_f32vec4
 
typedef float64 highp_f64
 
typedef highp_f64mat2x2 highp_f64mat2
 
typedef detail::tmat2x2< f64,
-highp > 
highp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-highp > 
highp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-highp > 
highp_f64mat2x4
 
typedef highp_f64mat3x3 highp_f64mat3
 
typedef detail::tmat3x2< f64,
-highp > 
highp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-highp > 
highp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-highp > 
highp_f64mat3x4
 
typedef highp_f64mat4x4 highp_f64mat4
 
typedef detail::tmat4x2< f64,
-highp > 
highp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-highp > 
highp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-highp > 
highp_f64mat4x4
 
typedef detail::tquat< f64, highp > highp_f64quat
 
typedef detail::tvec1< f64, highp > highp_f64vec1
 
typedef detail::tvec2< f64, highp > highp_f64vec2
 
typedef detail::tvec3< f64, highp > highp_f64vec3
 
typedef detail::tvec4< f64, highp > highp_f64vec4
 
typedef detail::float32 highp_float32
 
typedef detail::float32 highp_float32_t
 
typedef detail::float64 highp_float64
 
typedef detail::float64 highp_float64_t
 
typedef highp_fmat2x2 highp_fmat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_fmat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_fmat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_fmat2x4
 
typedef highp_fmat3x3 highp_fmat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_fmat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_fmat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_fmat3x4
 
typedef highp_fmat4x4 highp_fmat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_fmat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_fmat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_fmat4x4
 
typedef highp_quat highp_fquat
 
typedef detail::tvec1< float,
-highp > 
highp_fvec1
 
typedef detail::tvec2< float,
-highp > 
highp_fvec2
 
typedef detail::tvec3< float,
-highp > 
highp_fvec3
 
typedef detail::tvec4< float,
-highp > 
highp_fvec4
 
typedef detail::int16 highp_i16
 
typedef detail::tvec1< i16, highp > highp_i16vec1
 
typedef detail::tvec2< i16, highp > highp_i16vec2
 
typedef detail::tvec3< i16, highp > highp_i16vec3
 
typedef detail::tvec4< i16, highp > highp_i16vec4
 
typedef detail::int32 highp_i32
 
typedef detail::tvec1< i32, highp > highp_i32vec1
 
typedef detail::tvec2< i32, highp > highp_i32vec2
 
typedef detail::tvec3< i32, highp > highp_i32vec3
 
typedef detail::tvec4< i32, highp > highp_i32vec4
 
typedef detail::int64 highp_i64
 
typedef detail::tvec1< i64, highp > highp_i64vec1
 
typedef detail::tvec2< i64, highp > highp_i64vec2
 
typedef detail::tvec3< i64, highp > highp_i64vec3
 
typedef detail::tvec4< i64, highp > highp_i64vec4
 
typedef detail::int8 highp_i8
 
typedef detail::tvec1< i8, highp > highp_i8vec1
 
typedef detail::tvec2< i8, highp > highp_i8vec2
 
typedef detail::tvec3< i8, highp > highp_i8vec3
 
typedef detail::tvec4< i8, highp > highp_i8vec4
 
typedef detail::int16 highp_int16
 
typedef detail::int16 highp_int16_t
 
typedef detail::int32 highp_int32
 
typedef detail::int32 highp_int32_t
 
typedef detail::int64 highp_int64
 
typedef detail::int64 highp_int64_t
 
typedef detail::int8 highp_int8
 
typedef detail::int8 highp_int8_t
 
typedef detail::tquat< float,
-highp > 
highp_quat
 
typedef detail::uint16 highp_u16
 
typedef detail::tvec1< u16, highp > highp_u16vec1
 
typedef detail::tvec2< u16, highp > highp_u16vec2
 
typedef detail::tvec3< u16, highp > highp_u16vec3
 
typedef detail::tvec4< u16, highp > highp_u16vec4
 
typedef detail::uint32 highp_u32
 
typedef detail::tvec1< u32, highp > highp_u32vec1
 
typedef detail::tvec2< u32, highp > highp_u32vec2
 
typedef detail::tvec3< u32, highp > highp_u32vec3
 
typedef detail::tvec4< u32, highp > highp_u32vec4
 
typedef detail::uint64 highp_u64
 
typedef detail::tvec1< u64, highp > highp_u64vec1
 
typedef detail::tvec2< u64, highp > highp_u64vec2
 
typedef detail::tvec3< u64, highp > highp_u64vec3
 
typedef detail::tvec4< u64, highp > highp_u64vec4
 
typedef detail::uint8 highp_u8
 
typedef detail::tvec1< u8, highp > highp_u8vec1
 
typedef detail::tvec2< u8, highp > highp_u8vec2
 
typedef detail::tvec3< u8, highp > highp_u8vec3
 
typedef detail::tvec4< u8, highp > highp_u8vec4
 
typedef detail::uint16 highp_uint16
 
typedef detail::uint16 highp_uint16_t
 
typedef detail::uint32 highp_uint32
 
typedef detail::uint32 highp_uint32_t
 
typedef detail::uint64 highp_uint64
 
typedef detail::uint64 highp_uint64_t
 
typedef detail::uint8 highp_uint8
 
typedef detail::uint8 highp_uint8_t
 
typedef detail::tvec1< float,
-highp > 
highp_vec1
 
typedef detail::int16 i16
 
typedef highp_i16vec1 i16vec1
 
typedef highp_i16vec2 i16vec2
 
typedef highp_i16vec3 i16vec3
 
typedef highp_i16vec4 i16vec4
 
typedef detail::int32 i32
 
typedef highp_i32vec1 i32vec1
 
typedef highp_i32vec2 i32vec2
 
typedef highp_i32vec3 i32vec3
 
typedef highp_i32vec4 i32vec4
 
typedef detail::int64 i64
 
typedef highp_i64vec1 i64vec1
 
typedef highp_i64vec2 i64vec2
 
typedef highp_i64vec3 i64vec3
 
typedef highp_i64vec4 i64vec4
 
typedef detail::int8 i8
 
typedef highp_i8vec1 i8vec1
 
typedef highp_i8vec2 i8vec2
 
typedef highp_i8vec3 i8vec3
 
typedef highp_i8vec4 i8vec4
 
typedef detail::int16 int16_t
 
typedef detail::int32 int32_t
 
typedef detail::int64 int64_t
 
typedef detail::int8 int8_t
 
typedef detail::tquat< double,
-lowp > 
lowp_dquat
 
typedef float32 lowp_f32
 
typedef lowp_f32mat2x2 lowp_f32mat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_f32mat2x4
 
typedef lowp_f32mat3x3 lowp_f32mat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_f32mat3x4
 
typedef lowp_f32mat4x4 lowp_f32mat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_f32mat4x4
 
typedef detail::tquat< f32, lowp > lowp_f32quat
 
typedef detail::tvec1< f32, lowp > lowp_f32vec1
 
typedef detail::tvec2< f32, lowp > lowp_f32vec2
 
typedef detail::tvec3< f32, lowp > lowp_f32vec3
 
typedef detail::tvec4< f32, lowp > lowp_f32vec4
 
typedef float64 lowp_f64
 
typedef lowp_f64mat2x2 lowp_f64mat2
 
typedef detail::tmat2x2< f64,
-lowp > 
lowp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-lowp > 
lowp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-lowp > 
lowp_f64mat2x4
 
typedef lowp_f64mat3x3 lowp_f64mat3
 
typedef detail::tmat3x2< f64,
-lowp > 
lowp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-lowp > 
lowp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-lowp > 
lowp_f64mat3x4
 
typedef lowp_f64mat4x4 lowp_f64mat4
 
typedef detail::tmat4x2< f64,
-lowp > 
lowp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-lowp > 
lowp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-lowp > 
lowp_f64mat4x4
 
typedef detail::tquat< f64, lowp > lowp_f64quat
 
typedef detail::tvec1< f64, lowp > lowp_f64vec1
 
typedef detail::tvec2< f64, lowp > lowp_f64vec2
 
typedef detail::tvec3< f64, lowp > lowp_f64vec3
 
typedef detail::tvec4< f64, lowp > lowp_f64vec4
 
typedef detail::float32 lowp_float32
 
typedef detail::float32 lowp_float32_t
 
typedef detail::float64 lowp_float64
 
typedef detail::float64 lowp_float64_t
 
typedef lowp_fmat2x2 lowp_fmat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_fmat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_fmat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_fmat2x4
 
typedef lowp_fmat3x3 lowp_fmat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_fmat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_fmat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_fmat3x4
 
typedef lowp_fmat4x4 lowp_fmat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_fmat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_fmat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_fmat4x4
 
typedef lowp_quat lowp_fquat
 
typedef detail::tvec1< float,
-lowp > 
lowp_fvec1
 
typedef detail::tvec2< float,
-lowp > 
lowp_fvec2
 
typedef detail::tvec3< float,
-lowp > 
lowp_fvec3
 
typedef detail::tvec4< float,
-lowp > 
lowp_fvec4
 
typedef detail::int16 lowp_i16
 
typedef detail::tvec1< i16, lowp > lowp_i16vec1
 
typedef detail::tvec2< i16, lowp > lowp_i16vec2
 
typedef detail::tvec3< i16, lowp > lowp_i16vec3
 
typedef detail::tvec4< i16, lowp > lowp_i16vec4
 
typedef detail::int32 lowp_i32
 
typedef detail::tvec1< i32, lowp > lowp_i32vec1
 
typedef detail::tvec2< i32, lowp > lowp_i32vec2
 
typedef detail::tvec3< i32, lowp > lowp_i32vec3
 
typedef detail::tvec4< i32, lowp > lowp_i32vec4
 
typedef detail::int64 lowp_i64
 
typedef detail::tvec1< i64, lowp > lowp_i64vec1
 
typedef detail::tvec2< i64, lowp > lowp_i64vec2
 
typedef detail::tvec3< i64, lowp > lowp_i64vec3
 
typedef detail::tvec4< i64, lowp > lowp_i64vec4
 
typedef detail::int8 lowp_i8
 
typedef detail::tvec1< i8, lowp > lowp_i8vec1
 
typedef detail::tvec2< i8, lowp > lowp_i8vec2
 
typedef detail::tvec3< i8, lowp > lowp_i8vec3
 
typedef detail::tvec4< i8, lowp > lowp_i8vec4
 
typedef detail::int16 lowp_int16
 
typedef detail::int16 lowp_int16_t
 
typedef detail::int32 lowp_int32
 
typedef detail::int32 lowp_int32_t
 
typedef detail::int64 lowp_int64
 
typedef detail::int64 lowp_int64_t
 
typedef detail::int8 lowp_int8
 
typedef detail::int8 lowp_int8_t
 
typedef detail::tquat< float,
-lowp > 
lowp_quat
 
typedef detail::uint16 lowp_u16
 
typedef detail::tvec1< u16, lowp > lowp_u16vec1
 
typedef detail::tvec2< u16, lowp > lowp_u16vec2
 
typedef detail::tvec3< u16, lowp > lowp_u16vec3
 
typedef detail::tvec4< u16, lowp > lowp_u16vec4
 
typedef detail::uint32 lowp_u32
 
typedef detail::tvec1< u32, lowp > lowp_u32vec1
 
typedef detail::tvec2< u32, lowp > lowp_u32vec2
 
typedef detail::tvec3< u32, lowp > lowp_u32vec3
 
typedef detail::tvec4< u32, lowp > lowp_u32vec4
 
typedef detail::uint64 lowp_u64
 
typedef detail::tvec1< u64, lowp > lowp_u64vec1
 
typedef detail::tvec2< u64, lowp > lowp_u64vec2
 
typedef detail::tvec3< u64, lowp > lowp_u64vec3
 
typedef detail::tvec4< u64, lowp > lowp_u64vec4
 
typedef detail::uint8 lowp_u8
 
typedef detail::tvec1< u8, lowp > lowp_u8vec1
 
typedef detail::tvec2< u8, lowp > lowp_u8vec2
 
typedef detail::tvec3< u8, lowp > lowp_u8vec3
 
typedef detail::tvec4< u8, lowp > lowp_u8vec4
 
typedef detail::uint16 lowp_uint16
 
typedef detail::uint16 lowp_uint16_t
 
typedef detail::uint32 lowp_uint32
 
typedef detail::uint32 lowp_uint32_t
 
typedef detail::uint64 lowp_uint64
 
typedef detail::uint64 lowp_uint64_t
 
typedef detail::uint8 lowp_uint8
 
typedef detail::uint8 lowp_uint8_t
 
typedef detail::tvec1< float,
-lowp > 
lowp_vec1
 
typedef detail::tquat< double,
-mediump > 
mediump_dquat
 
typedef float32 mediump_f32
 
typedef mediump_f32mat2x2 mediump_f32mat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_f32mat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_f32mat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_f32mat2x4
 
typedef mediump_f32mat3x3 mediump_f32mat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_f32mat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_f32mat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_f32mat3x4
 
typedef mediump_f32mat4x4 mediump_f32mat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_f32mat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_f32mat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_f32mat4x4
 
typedef detail::tquat< f32,
-mediump > 
mediump_f32quat
 
typedef detail::tvec1< f32,
-mediump > 
mediump_f32vec1
 
typedef detail::tvec2< f32,
-mediump > 
mediump_f32vec2
 
typedef detail::tvec3< f32,
-mediump > 
mediump_f32vec3
 
typedef detail::tvec4< f32,
-mediump > 
mediump_f32vec4
 
typedef float64 mediump_f64
 
typedef mediump_f64mat2x2 mediump_f64mat2
 
typedef detail::tmat2x2< f64,
-mediump > 
mediump_f64mat2x2
 
typedef detail::tmat2x3< f64,
-mediump > 
mediump_f64mat2x3
 
typedef detail::tmat2x4< f64,
-mediump > 
mediump_f64mat2x4
 
typedef mediump_f64mat3x3 mediump_f64mat3
 
typedef detail::tmat3x2< f64,
-mediump > 
mediump_f64mat3x2
 
typedef detail::tmat3x3< f64,
-mediump > 
mediump_f64mat3x3
 
typedef detail::tmat3x4< f64,
-mediump > 
mediump_f64mat3x4
 
typedef mediump_f64mat4x4 mediump_f64mat4
 
typedef detail::tmat4x2< f64,
-mediump > 
mediump_f64mat4x2
 
typedef detail::tmat4x3< f64,
-mediump > 
mediump_f64mat4x3
 
typedef detail::tmat4x4< f64,
-mediump > 
mediump_f64mat4x4
 
typedef detail::tquat< f64,
-mediump > 
mediump_f64quat
 
typedef detail::tvec1< f64,
-mediump > 
mediump_f64vec1
 
typedef detail::tvec2< f64,
-mediump > 
mediump_f64vec2
 
typedef detail::tvec3< f64,
-mediump > 
mediump_f64vec3
 
typedef detail::tvec4< f64,
-mediump > 
mediump_f64vec4
 
typedef detail::float32 mediump_float32
 
typedef detail::float32 mediump_float32_t
 
typedef detail::float64 mediump_float64
 
typedef detail::float64 mediump_float64_t
 
typedef mediump_fmat2x2 mediump_fmat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_fmat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_fmat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_fmat2x4
 
typedef mediump_fmat3x3 mediump_fmat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_fmat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_fmat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_fmat3x4
 
typedef mediump_fmat4x4 mediump_fmat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_fmat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_fmat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_fmat4x4
 
typedef mediump_quat mediump_fquat
 
typedef detail::tvec1< float,
-mediump > 
mediump_fvec1
 
typedef detail::tvec2< float,
-mediump > 
mediump_fvec2
 
typedef detail::tvec3< float,
-mediump > 
mediump_fvec3
 
typedef detail::tvec4< float,
-mediump > 
mediump_fvec4
 
typedef detail::int16 mediump_i16
 
typedef detail::tvec1< i16,
-mediump > 
mediump_i16vec1
 
typedef detail::tvec2< i16,
-mediump > 
mediump_i16vec2
 
typedef detail::tvec3< i16,
-mediump > 
mediump_i16vec3
 
typedef detail::tvec4< i16,
-mediump > 
mediump_i16vec4
 
typedef detail::int32 mediump_i32
 
typedef detail::tvec1< i32,
-mediump > 
mediump_i32vec1
 
typedef detail::tvec2< i32,
-mediump > 
mediump_i32vec2
 
typedef detail::tvec3< i32,
-mediump > 
mediump_i32vec3
 
typedef detail::tvec4< i32,
-mediump > 
mediump_i32vec4
 
typedef detail::int64 mediump_i64
 
typedef detail::tvec1< i64,
-mediump > 
mediump_i64vec1
 
typedef detail::tvec2< i64,
-mediump > 
mediump_i64vec2
 
typedef detail::tvec3< i64,
-mediump > 
mediump_i64vec3
 
typedef detail::tvec4< i64,
-mediump > 
mediump_i64vec4
 
typedef detail::int8 mediump_i8
 
typedef detail::tvec1< i8,
-mediump > 
mediump_i8vec1
 
typedef detail::tvec2< i8,
-mediump > 
mediump_i8vec2
 
typedef detail::tvec3< i8,
-mediump > 
mediump_i8vec3
 
typedef detail::tvec4< i8,
-mediump > 
mediump_i8vec4
 
typedef detail::int16 mediump_int16
 
typedef detail::int16 mediump_int16_t
 
typedef detail::int32 mediump_int32
 
typedef detail::int32 mediump_int32_t
 
typedef detail::int64 mediump_int64
 
typedef detail::int64 mediump_int64_t
 
typedef detail::int8 mediump_int8
 
typedef detail::int8 mediump_int8_t
 
typedef detail::tquat< float,
-mediump > 
mediump_quat
 
typedef detail::uint16 mediump_u16
 
typedef detail::tvec1< u16,
-mediump > 
mediump_u16vec1
 
typedef detail::tvec2< u16,
-mediump > 
mediump_u16vec2
 
typedef detail::tvec3< u16,
-mediump > 
mediump_u16vec3
 
typedef detail::tvec4< u16,
-mediump > 
mediump_u16vec4
 
typedef detail::uint32 mediump_u32
 
typedef detail::tvec1< u32,
-mediump > 
mediump_u32vec1
 
typedef detail::tvec2< u32,
-mediump > 
mediump_u32vec2
 
typedef detail::tvec3< u32,
-mediump > 
mediump_u32vec3
 
typedef detail::tvec4< u32,
-mediump > 
mediump_u32vec4
 
typedef detail::uint64 mediump_u64
 
typedef detail::tvec1< u64,
-mediump > 
mediump_u64vec1
 
typedef detail::tvec2< u64,
-mediump > 
mediump_u64vec2
 
typedef detail::tvec3< u64,
-mediump > 
mediump_u64vec3
 
typedef detail::tvec4< u64,
-mediump > 
mediump_u64vec4
 
typedef detail::uint8 mediump_u8
 
typedef detail::tvec1< u8,
-mediump > 
mediump_u8vec1
 
typedef detail::tvec2< u8,
-mediump > 
mediump_u8vec2
 
typedef detail::tvec3< u8,
-mediump > 
mediump_u8vec3
 
typedef detail::tvec4< u8,
-mediump > 
mediump_u8vec4
 
typedef detail::uint16 mediump_uint16
 
typedef detail::uint16 mediump_uint16_t
 
typedef detail::uint32 mediump_uint32
 
typedef detail::uint32 mediump_uint32_t
 
typedef detail::uint64 mediump_uint64
 
typedef detail::uint64 mediump_uint64_t
 
typedef detail::uint8 mediump_uint8
 
typedef detail::uint8 mediump_uint8_t
 
typedef detail::tvec1< float,
-mediump > 
mediump_vec1
 
-typedef highp_quat quat
 
typedef detail::uint16 u16
 
typedef highp_u16vec1 u16vec1
 
typedef highp_u16vec2 u16vec2
 
typedef highp_u16vec3 u16vec3
 
typedef highp_u16vec4 u16vec4
 
typedef detail::uint32 u32
 
typedef highp_u32vec1 u32vec1
 
typedef highp_u32vec2 u32vec2
 
typedef highp_u32vec3 u32vec3
 
typedef highp_u32vec4 u32vec4
 
typedef detail::uint64 u64
 
typedef highp_u64vec1 u64vec1
 
typedef highp_u64vec2 u64vec2
 
typedef highp_u64vec3 u64vec3
 
typedef highp_u64vec4 u64vec4
 
typedef detail::uint8 u8
 
typedef highp_u8vec1 u8vec1
 
typedef highp_u8vec2 u8vec2
 
typedef highp_u8vec3 u8vec3
 
typedef highp_u8vec4 u8vec4
 
typedef detail::uint16 uint16_t
 
typedef detail::uint32 uint32_t
 
typedef detail::uint64 uint64_t
 
typedef detail::uint8 uint8_t
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-03-30 / 2013-03-31
-
Author
Christophe Riccio
- -

Definition in file fwd.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00041_source.html b/3party/glm/doc/api/a00041_source.html deleted file mode 100755 index cfc889b26c..0000000000 --- a/3party/glm/doc/api/a00041_source.html +++ /dev/null @@ -1,1993 +0,0 @@ - - - - - - -GLM: fwd.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
fwd.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_FWD_INCLUDED
-
30 #define GLM_FWD_INCLUDED
-
31 
-
32 #include "detail/type_int.hpp"
-
33 #include "detail/type_float.hpp"
-
34 #include "detail/type_vec.hpp"
-
35 #include "detail/type_mat.hpp"
-
36 
-
38 // GLM_GTC_quaternion
-
39 namespace glm{
-
40 namespace detail
-
41 {
-
42  template <typename T, precision P> struct tquat;
-
43 }//namespace detail
-
44 
-
45 
-
49  typedef detail::tquat<float, lowp> lowp_quat;
-
50 
-
54  typedef detail::tquat<float, mediump> mediump_quat;
-
55 
-
59  typedef detail::tquat<float, highp> highp_quat;
-
60 
-
61 #if(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
62  typedef highp_quat quat;
-
63 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
64  typedef mediump_quat quat;
-
65 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
-
66  typedef lowp_quat quat;
-
67 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
68  typedef highp_quat quat;
-
70 #endif
-
71 
- -
76 
- -
81 
- -
86 
-
90  typedef quat fquat;
-
91 
-
92 
-
96  typedef detail::tquat<double, lowp> lowp_dquat;
-
97 
-
101  typedef detail::tquat<double, mediump> mediump_dquat;
-
102 
-
106  typedef detail::tquat<double, highp> highp_dquat;
-
107 
-
108 #if(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
109  typedef highp_dquat dquat;
-
110 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
111  typedef mediump_dquat dquat;
-
112 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))
-
113  typedef lowp_dquat dquat;
-
114 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
115  typedef highp_dquat dquat;
-
119 #endif
-
120 
-
121 }//namespace glm
-
122 
-
124 // GLM_GTC_precision
-
125 namespace glm
-
126 {
-
129 
-
132  typedef detail::int8 lowp_int8;
-
133 
-
136  typedef detail::int16 lowp_int16;
-
137 
-
140  typedef detail::int32 lowp_int32;
-
141 
-
144  typedef detail::int64 lowp_int64;
-
145 
-
148  typedef detail::int8 lowp_int8_t;
-
149 
-
152  typedef detail::int16 lowp_int16_t;
-
153 
-
156  typedef detail::int32 lowp_int32_t;
-
157 
-
160  typedef detail::int64 lowp_int64_t;
-
161 
-
164  typedef detail::int8 lowp_i8;
-
165 
-
168  typedef detail::int16 lowp_i16;
-
169 
-
172  typedef detail::int32 lowp_i32;
-
173 
-
176  typedef detail::int64 lowp_i64;
-
177 
-
180  typedef detail::int8 mediump_int8;
-
181 
-
184  typedef detail::int16 mediump_int16;
-
185 
-
188  typedef detail::int32 mediump_int32;
-
189 
-
192  typedef detail::int64 mediump_int64;
-
193 
-
196  typedef detail::int8 mediump_int8_t;
-
197 
-
200  typedef detail::int16 mediump_int16_t;
-
201 
-
204  typedef detail::int32 mediump_int32_t;
-
205 
-
208  typedef detail::int64 mediump_int64_t;
-
209 
-
212  typedef detail::int8 mediump_i8;
-
213 
-
216  typedef detail::int16 mediump_i16;
-
217 
-
220  typedef detail::int32 mediump_i32;
-
221 
-
224  typedef detail::int64 mediump_i64;
-
225 
-
228  typedef detail::int8 highp_int8;
-
229 
-
232  typedef detail::int16 highp_int16;
-
233 
-
236  typedef detail::int32 highp_int32;
-
237 
-
240  typedef detail::int64 highp_int64;
-
241 
-
244  typedef detail::int8 highp_int8_t;
-
245 
-
248  typedef detail::int16 highp_int16_t;
-
249 
-
252  typedef detail::int32 highp_int32_t;
-
253 
-
256  typedef detail::int64 highp_int64_t;
-
257 
-
260  typedef detail::int8 highp_i8;
-
261 
-
264  typedef detail::int16 highp_i16;
-
265 
-
268  typedef detail::int32 highp_i32;
-
269 
-
272  typedef detail::int64 highp_i64;
-
273 
-
274 
-
277  typedef detail::int8 int8;
-
278 
-
281  typedef detail::int16 int16;
-
282 
-
285  typedef detail::int32 int32;
-
286 
-
289  typedef detail::int64 int64;
-
290 
-
293  typedef detail::int8 int8_t;
-
294 
-
297  typedef detail::int16 int16_t;
-
298 
-
301  typedef detail::int32 int32_t;
-
302 
-
305  typedef detail::int64 int64_t;
-
306 
-
309  typedef detail::int8 i8;
-
310 
-
313  typedef detail::int16 i16;
-
314 
-
317  typedef detail::int32 i32;
-
318 
-
321  typedef detail::int64 i64;
-
322 
-
323 
-
324 
-
327  typedef detail::tvec1<i8, lowp> lowp_i8vec1;
-
328 
-
331  typedef detail::tvec2<i8, lowp> lowp_i8vec2;
-
332 
-
335  typedef detail::tvec3<i8, lowp> lowp_i8vec3;
-
336 
-
339  typedef detail::tvec4<i8, lowp> lowp_i8vec4;
-
340 
-
341 
-
344  typedef detail::tvec1<i8, mediump> mediump_i8vec1;
-
345 
-
348  typedef detail::tvec2<i8, mediump> mediump_i8vec2;
-
349 
-
352  typedef detail::tvec3<i8, mediump> mediump_i8vec3;
-
353 
-
356  typedef detail::tvec4<i8, mediump> mediump_i8vec4;
-
357 
-
358 
-
361  typedef detail::tvec1<i8, highp> highp_i8vec1;
-
362 
-
365  typedef detail::tvec2<i8, highp> highp_i8vec2;
-
366 
-
369  typedef detail::tvec3<i8, highp> highp_i8vec3;
-
370 
-
373  typedef detail::tvec4<i8, highp> highp_i8vec4;
-
374 
-
375 #if(defined(GLM_PRECISION_LOWP_INT))
-
376  typedef lowp_i8vec1 i8vec1;
-
377  typedef lowp_i8vec2 i8vec2;
-
378  typedef lowp_i8vec3 i8vec3;
-
379  typedef lowp_i8vec4 i8vec4;
-
380 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
381  typedef mediump_i8vec1 i8vec1;
-
382  typedef mediump_i8vec2 i8vec2;
-
383  typedef mediump_i8vec3 i8vec3;
-
384  typedef mediump_i8vec4 i8vec4;
-
385 #else
-
386  typedef highp_i8vec1 i8vec1;
-
389 
- -
393 
- -
397 
- -
401 #endif
-
402 
-
403 
-
406  typedef detail::tvec1<i16, lowp> lowp_i16vec1;
-
407 
-
410  typedef detail::tvec2<i16, lowp> lowp_i16vec2;
-
411 
-
414  typedef detail::tvec3<i16, lowp> lowp_i16vec3;
-
415 
-
418  typedef detail::tvec4<i16, lowp> lowp_i16vec4;
-
419 
-
420 
-
423  typedef detail::tvec1<i16, mediump> mediump_i16vec1;
-
424 
-
427  typedef detail::tvec2<i16, mediump> mediump_i16vec2;
-
428 
-
431  typedef detail::tvec3<i16, mediump> mediump_i16vec3;
-
432 
-
435  typedef detail::tvec4<i16, mediump> mediump_i16vec4;
-
436 
-
437 
-
440  typedef detail::tvec1<i16, highp> highp_i16vec1;
-
441 
-
444  typedef detail::tvec2<i16, highp> highp_i16vec2;
-
445 
-
448  typedef detail::tvec3<i16, highp> highp_i16vec3;
-
449 
-
452  typedef detail::tvec4<i16, highp> highp_i16vec4;
-
453 
-
454 
-
455 #if(defined(GLM_PRECISION_LOWP_INT))
-
456  typedef lowp_i16vec1 i16vec1;
-
457  typedef lowp_i16vec2 i16vec2;
-
458  typedef lowp_i16vec3 i16vec3;
-
459  typedef lowp_i16vec4 i16vec4;
-
460 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
461  typedef mediump_i16vec1 i16vec1;
-
462  typedef mediump_i16vec2 i16vec2;
-
463  typedef mediump_i16vec3 i16vec3;
-
464  typedef mediump_i16vec4 i16vec4;
-
465 #else
-
466  typedef highp_i16vec1 i16vec1;
-
469 
- -
473 
- -
477 
- -
481 #endif
-
482 
-
483 
-
486  typedef detail::tvec1<i32, lowp> lowp_i32vec1;
-
487 
-
490  typedef detail::tvec2<i32, lowp> lowp_i32vec2;
-
491 
-
494  typedef detail::tvec3<i32, lowp> lowp_i32vec3;
-
495 
-
498  typedef detail::tvec4<i32, lowp> lowp_i32vec4;
-
499 
-
500 
-
503  typedef detail::tvec1<i32, mediump> mediump_i32vec1;
-
504 
-
507  typedef detail::tvec2<i32, mediump> mediump_i32vec2;
-
508 
-
511  typedef detail::tvec3<i32, mediump> mediump_i32vec3;
-
512 
-
515  typedef detail::tvec4<i32, mediump> mediump_i32vec4;
-
516 
-
517 
-
520  typedef detail::tvec1<i32, highp> highp_i32vec1;
-
521 
-
524  typedef detail::tvec2<i32, highp> highp_i32vec2;
-
525 
-
528  typedef detail::tvec3<i32, highp> highp_i32vec3;
-
529 
-
532  typedef detail::tvec4<i32, highp> highp_i32vec4;
-
533 
-
534 #if(defined(GLM_PRECISION_LOWP_INT))
-
535  typedef lowp_i32vec1 i32vec1;
-
536  typedef lowp_i32vec2 i32vec2;
-
537  typedef lowp_i32vec3 i32vec3;
-
538  typedef lowp_i32vec4 i32vec4;
-
539 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
540  typedef mediump_i32vec1 i32vec1;
-
541  typedef mediump_i32vec2 i32vec2;
-
542  typedef mediump_i32vec3 i32vec3;
-
543  typedef mediump_i32vec4 i32vec4;
-
544 #else
-
545  typedef highp_i32vec1 i32vec1;
-
548 
- -
552 
- -
556 
- -
560 #endif
-
561 
-
562 
-
565  typedef detail::tvec1<i32, lowp> lowp_i32vec1;
-
566 
-
569  typedef detail::tvec2<i32, lowp> lowp_i32vec2;
-
570 
-
573  typedef detail::tvec3<i32, lowp> lowp_i32vec3;
-
574 
-
577  typedef detail::tvec4<i32, lowp> lowp_i32vec4;
-
578 
-
579 
-
582  typedef detail::tvec1<i32, mediump> mediump_i32vec1;
-
583 
-
586  typedef detail::tvec2<i32, mediump> mediump_i32vec2;
-
587 
-
590  typedef detail::tvec3<i32, mediump> mediump_i32vec3;
-
591 
-
594  typedef detail::tvec4<i32, mediump> mediump_i32vec4;
-
595 
-
596 
-
599  typedef detail::tvec1<i32, highp> highp_i32vec1;
-
600 
-
603  typedef detail::tvec2<i32, highp> highp_i32vec2;
-
604 
-
607  typedef detail::tvec3<i32, highp> highp_i32vec3;
-
608 
-
611  typedef detail::tvec4<i32, highp> highp_i32vec4;
-
612 
-
613 #if(defined(GLM_PRECISION_LOWP_INT))
-
614  typedef lowp_i32vec1 i32vec1;
-
615  typedef lowp_i32vec2 i32vec2;
-
616  typedef lowp_i32vec3 i32vec3;
-
617  typedef lowp_i32vec4 i32vec4;
-
618 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
619  typedef mediump_i32vec1 i32vec1;
-
620  typedef mediump_i32vec2 i32vec2;
-
621  typedef mediump_i32vec3 i32vec3;
-
622  typedef mediump_i32vec4 i32vec4;
-
623 #else
-
624  typedef highp_i32vec1 i32vec1;
-
627 
-
630  typedef highp_i32vec2 i32vec2;
-
631 
-
634  typedef highp_i32vec3 i32vec3;
-
635 
-
638  typedef highp_i32vec4 i32vec4;
-
639 #endif
-
640 
-
641 
-
642 
-
645  typedef detail::tvec1<i64, lowp> lowp_i64vec1;
-
646 
-
649  typedef detail::tvec2<i64, lowp> lowp_i64vec2;
-
650 
-
653  typedef detail::tvec3<i64, lowp> lowp_i64vec3;
-
654 
-
657  typedef detail::tvec4<i64, lowp> lowp_i64vec4;
-
658 
-
659 
-
662  typedef detail::tvec1<i64, mediump> mediump_i64vec1;
-
663 
-
666  typedef detail::tvec2<i64, mediump> mediump_i64vec2;
-
667 
-
670  typedef detail::tvec3<i64, mediump> mediump_i64vec3;
-
671 
-
674  typedef detail::tvec4<i64, mediump> mediump_i64vec4;
-
675 
-
676 
-
679  typedef detail::tvec1<i64, highp> highp_i64vec1;
-
680 
-
683  typedef detail::tvec2<i64, highp> highp_i64vec2;
-
684 
-
687  typedef detail::tvec3<i64, highp> highp_i64vec3;
-
688 
-
691  typedef detail::tvec4<i64, highp> highp_i64vec4;
-
692 
-
693 #if(defined(GLM_PRECISION_LOWP_INT))
-
694  typedef lowp_i64vec1 i64vec1;
-
695  typedef lowp_i64vec2 i64vec2;
-
696  typedef lowp_i64vec3 i64vec3;
-
697  typedef lowp_i64vec4 i64vec4;
-
698 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
699  typedef mediump_i64vec1 i64vec1;
-
700  typedef mediump_i64vec2 i64vec2;
-
701  typedef mediump_i64vec3 i64vec3;
-
702  typedef mediump_i64vec4 i64vec4;
-
703 #else
-
704  typedef highp_i64vec1 i64vec1;
-
707 
- -
711 
- -
715 
- -
719 #endif
-
720 
-
721 
-
723  // Unsigned int vector types
-
724 
-
727  typedef detail::uint8 lowp_uint8;
-
728 
-
731  typedef detail::uint16 lowp_uint16;
-
732 
-
735  typedef detail::uint32 lowp_uint32;
-
736 
-
739  typedef detail::uint64 lowp_uint64;
-
740 
-
741 
-
744  typedef detail::uint8 lowp_uint8_t;
-
745 
-
748  typedef detail::uint16 lowp_uint16_t;
-
749 
-
752  typedef detail::uint32 lowp_uint32_t;
-
753 
-
756  typedef detail::uint64 lowp_uint64_t;
-
757 
-
758 
-
761  typedef detail::uint8 lowp_u8;
-
762 
-
765  typedef detail::uint16 lowp_u16;
-
766 
-
769  typedef detail::uint32 lowp_u32;
-
770 
-
773  typedef detail::uint64 lowp_u64;
-
774 
-
775 
-
776 
-
779  typedef detail::uint8 mediump_uint8;
-
780 
-
783  typedef detail::uint16 mediump_uint16;
-
784 
-
787  typedef detail::uint32 mediump_uint32;
-
788 
-
791  typedef detail::uint64 mediump_uint64;
-
792 
-
795  typedef detail::uint8 mediump_uint8_t;
-
796 
-
799  typedef detail::uint16 mediump_uint16_t;
-
800 
-
803  typedef detail::uint32 mediump_uint32_t;
-
804 
-
807  typedef detail::uint64 mediump_uint64_t;
-
808 
-
811  typedef detail::uint8 mediump_u8;
-
812 
-
815  typedef detail::uint16 mediump_u16;
-
816 
-
819  typedef detail::uint32 mediump_u32;
-
820 
-
823  typedef detail::uint64 mediump_u64;
-
824 
-
825 
-
826 
-
829  typedef detail::uint8 highp_uint8;
-
830 
-
833  typedef detail::uint16 highp_uint16;
-
834 
-
837  typedef detail::uint32 highp_uint32;
-
838 
-
841  typedef detail::uint64 highp_uint64;
-
842 
-
845  typedef detail::uint8 highp_uint8_t;
-
846 
-
849  typedef detail::uint16 highp_uint16_t;
-
850 
-
853  typedef detail::uint32 highp_uint32_t;
-
854 
-
857  typedef detail::uint64 highp_uint64_t;
-
858 
-
861  typedef detail::uint8 highp_u8;
-
862 
-
865  typedef detail::uint16 highp_u16;
-
866 
-
869  typedef detail::uint32 highp_u32;
-
870 
-
873  typedef detail::uint64 highp_u64;
-
874 
-
875 
-
876 
-
879  typedef detail::uint8 uint8;
-
880 
-
883  typedef detail::uint16 uint16;
-
884 
-
887  typedef detail::uint32 uint32;
-
888 
-
891  typedef detail::uint64 uint64;
-
892 
-
895  typedef detail::uint8 uint8_t;
-
896 
-
899  typedef detail::uint16 uint16_t;
-
900 
-
903  typedef detail::uint32 uint32_t;
-
904 
-
907  typedef detail::uint64 uint64_t;
-
908 
-
911  typedef detail::uint8 u8;
-
912 
-
915  typedef detail::uint16 u16;
-
916 
-
919  typedef detail::uint32 u32;
-
920 
-
923  typedef detail::uint64 u64;
-
924 
-
925 
-
926 
-
927 
-
930  typedef detail::tvec1<u8, lowp> lowp_u8vec1;
-
931 
-
934  typedef detail::tvec2<u8, lowp> lowp_u8vec2;
-
935 
-
938  typedef detail::tvec3<u8, lowp> lowp_u8vec3;
-
939 
-
942  typedef detail::tvec4<u8, lowp> lowp_u8vec4;
-
943 
-
944 
-
947  typedef detail::tvec1<u8, mediump> mediump_u8vec1;
-
948 
-
951  typedef detail::tvec2<u8, mediump> mediump_u8vec2;
-
952 
-
955  typedef detail::tvec3<u8, mediump> mediump_u8vec3;
-
956 
-
959  typedef detail::tvec4<u8, mediump> mediump_u8vec4;
-
960 
-
961 
-
964  typedef detail::tvec1<u8, highp> highp_u8vec1;
-
965 
-
968  typedef detail::tvec2<u8, highp> highp_u8vec2;
-
969 
-
972  typedef detail::tvec3<u8, highp> highp_u8vec3;
-
973 
-
976  typedef detail::tvec4<u8, highp> highp_u8vec4;
-
977 
-
978 #if(defined(GLM_PRECISION_LOWP_INT))
-
979  typedef lowp_u8vec1 u8vec1;
-
980  typedef lowp_u8vec2 u8vec2;
-
981  typedef lowp_u8vec3 u8vec3;
-
982  typedef lowp_u8vec4 u8vec4;
-
983 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
984  typedef mediump_u8vec1 u8vec1;
-
985  typedef mediump_u8vec2 u8vec2;
-
986  typedef mediump_u8vec3 u8vec3;
-
987  typedef mediump_u8vec4 u8vec4;
-
988 #else
-
989  typedef highp_u8vec1 u8vec1;
-
992 
- -
996 
- -
1000 
- -
1004 #endif
-
1005 
-
1006 
-
1009  typedef detail::tvec1<u16, lowp> lowp_u16vec1;
-
1010 
-
1013  typedef detail::tvec2<u16, lowp> lowp_u16vec2;
-
1014 
-
1017  typedef detail::tvec3<u16, lowp> lowp_u16vec3;
-
1018 
-
1021  typedef detail::tvec4<u16, lowp> lowp_u16vec4;
-
1022 
-
1023 
-
1026  typedef detail::tvec1<u16, mediump> mediump_u16vec1;
-
1027 
-
1030  typedef detail::tvec2<u16, mediump> mediump_u16vec2;
-
1031 
-
1034  typedef detail::tvec3<u16, mediump> mediump_u16vec3;
-
1035 
-
1038  typedef detail::tvec4<u16, mediump> mediump_u16vec4;
-
1039 
-
1040 
-
1043  typedef detail::tvec1<u16, highp> highp_u16vec1;
-
1044 
-
1047  typedef detail::tvec2<u16, highp> highp_u16vec2;
-
1048 
-
1051  typedef detail::tvec3<u16, highp> highp_u16vec3;
-
1052 
-
1055  typedef detail::tvec4<u16, highp> highp_u16vec4;
-
1056 
-
1057 
-
1058 #if(defined(GLM_PRECISION_LOWP_INT))
-
1059  typedef lowp_u16vec1 u16vec1;
-
1060  typedef lowp_u16vec2 u16vec2;
-
1061  typedef lowp_u16vec3 u16vec3;
-
1062  typedef lowp_u16vec4 u16vec4;
-
1063 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
1064  typedef mediump_u16vec1 u16vec1;
-
1065  typedef mediump_u16vec2 u16vec2;
-
1066  typedef mediump_u16vec3 u16vec3;
-
1067  typedef mediump_u16vec4 u16vec4;
-
1068 #else
-
1069  typedef highp_u16vec1 u16vec1;
-
1072 
- -
1076 
- -
1080 
- -
1084 #endif
-
1085 
-
1086 
-
1089  typedef detail::tvec1<u32, lowp> lowp_u32vec1;
-
1090 
-
1093  typedef detail::tvec2<u32, lowp> lowp_u32vec2;
-
1094 
-
1097  typedef detail::tvec3<u32, lowp> lowp_u32vec3;
-
1098 
-
1101  typedef detail::tvec4<u32, lowp> lowp_u32vec4;
-
1102 
-
1103 
-
1106  typedef detail::tvec1<u32, mediump> mediump_u32vec1;
-
1107 
-
1110  typedef detail::tvec2<u32, mediump> mediump_u32vec2;
-
1111 
-
1114  typedef detail::tvec3<u32, mediump> mediump_u32vec3;
-
1115 
-
1118  typedef detail::tvec4<u32, mediump> mediump_u32vec4;
-
1119 
-
1120 
-
1123  typedef detail::tvec1<u32, highp> highp_u32vec1;
-
1124 
-
1127  typedef detail::tvec2<u32, highp> highp_u32vec2;
-
1128 
-
1131  typedef detail::tvec3<u32, highp> highp_u32vec3;
-
1132 
-
1135  typedef detail::tvec4<u32, highp> highp_u32vec4;
-
1136 
-
1137 #if(defined(GLM_PRECISION_LOWP_INT))
-
1138  typedef lowp_u32vec1 u32vec1;
-
1139  typedef lowp_u32vec2 u32vec2;
-
1140  typedef lowp_u32vec3 u32vec3;
-
1141  typedef lowp_u32vec4 u32vec4;
-
1142 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
1143  typedef mediump_u32vec1 u32vec1;
-
1144  typedef mediump_u32vec2 u32vec2;
-
1145  typedef mediump_u32vec3 u32vec3;
-
1146  typedef mediump_u32vec4 u32vec4;
-
1147 #else
-
1148  typedef highp_u32vec1 u32vec1;
-
1151 
- -
1155 
- -
1159 
- -
1163 #endif
-
1164 
-
1165 
-
1168  typedef detail::tvec1<u32, lowp> lowp_u32vec1;
-
1169 
-
1172  typedef detail::tvec2<u32, lowp> lowp_u32vec2;
-
1173 
-
1176  typedef detail::tvec3<u32, lowp> lowp_u32vec3;
-
1177 
-
1180  typedef detail::tvec4<u32, lowp> lowp_u32vec4;
-
1181 
-
1182 
-
1185  typedef detail::tvec1<u32, mediump> mediump_u32vec1;
-
1186 
-
1189  typedef detail::tvec2<u32, mediump> mediump_u32vec2;
-
1190 
-
1193  typedef detail::tvec3<u32, mediump> mediump_u32vec3;
-
1194 
-
1197  typedef detail::tvec4<u32, mediump> mediump_u32vec4;
-
1198 
-
1199 
-
1202  typedef detail::tvec1<u32, highp> highp_u32vec1;
-
1203 
-
1206  typedef detail::tvec2<u32, highp> highp_u32vec2;
-
1207 
-
1210  typedef detail::tvec3<u32, highp> highp_u32vec3;
-
1211 
-
1214  typedef detail::tvec4<u32, highp> highp_u32vec4;
-
1215 
-
1216 #if(defined(GLM_PRECISION_LOWP_INT))
-
1217  typedef lowp_u32vec1 u32vec1;
-
1218  typedef lowp_u32vec2 u32vec2;
-
1219  typedef lowp_u32vec3 u32vec3;
-
1220  typedef lowp_u32vec4 u32vec4;
-
1221 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
1222  typedef mediump_u32vec1 u32vec1;
-
1223  typedef mediump_u32vec2 u32vec2;
-
1224  typedef mediump_u32vec3 u32vec3;
-
1225  typedef mediump_u32vec4 u32vec4;
-
1226 #else
-
1227  typedef highp_u32vec1 u32vec1;
-
1230 
-
1233  typedef highp_u32vec2 u32vec2;
-
1234 
-
1237  typedef highp_u32vec3 u32vec3;
-
1238 
-
1241  typedef highp_u32vec4 u32vec4;
-
1242 #endif
-
1243 
-
1244 
-
1245 
-
1248  typedef detail::tvec1<u64, lowp> lowp_u64vec1;
-
1249 
-
1252  typedef detail::tvec2<u64, lowp> lowp_u64vec2;
-
1253 
-
1256  typedef detail::tvec3<u64, lowp> lowp_u64vec3;
-
1257 
-
1260  typedef detail::tvec4<u64, lowp> lowp_u64vec4;
-
1261 
-
1262 
-
1265  typedef detail::tvec1<u64, mediump> mediump_u64vec1;
-
1266 
-
1269  typedef detail::tvec2<u64, mediump> mediump_u64vec2;
-
1270 
-
1273  typedef detail::tvec3<u64, mediump> mediump_u64vec3;
-
1274 
-
1277  typedef detail::tvec4<u64, mediump> mediump_u64vec4;
-
1278 
-
1279 
-
1282  typedef detail::tvec1<u64, highp> highp_u64vec1;
-
1283 
-
1286  typedef detail::tvec2<u64, highp> highp_u64vec2;
-
1287 
-
1290  typedef detail::tvec3<u64, highp> highp_u64vec3;
-
1291 
-
1294  typedef detail::tvec4<u64, highp> highp_u64vec4;
-
1295 
-
1296 #if(defined(GLM_PRECISION_LOWP_UINT))
-
1297  typedef lowp_u64vec1 u64vec1;
-
1298  typedef lowp_u64vec2 u64vec2;
-
1299  typedef lowp_u64vec3 u64vec3;
-
1300  typedef lowp_u64vec4 u64vec4;
-
1301 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
-
1302  typedef mediump_u64vec1 u64vec1;
-
1303  typedef mediump_u64vec2 u64vec2;
-
1304  typedef mediump_u64vec3 u64vec3;
-
1305  typedef mediump_u64vec4 u64vec4;
-
1306 #else
-
1307  typedef highp_u64vec1 u64vec1;
-
1310 
- -
1314 
- -
1318 
- -
1322 #endif
-
1323 
-
1324 
-
1326  // Float vector types
-
1327 
-
1330  typedef detail::float32 lowp_float32;
-
1331 
-
1334  typedef detail::float64 lowp_float64;
-
1335 
-
1338  typedef detail::float32 lowp_float32_t;
-
1339 
-
1342  typedef detail::float64 lowp_float64_t;
-
1343 
- -
1347 
- -
1351 
-
1354  typedef detail::float32 lowp_float32;
-
1355 
-
1358  typedef detail::float64 lowp_float64;
-
1359 
-
1362  typedef detail::float32 lowp_float32_t;
-
1363 
-
1366  typedef detail::float64 lowp_float64_t;
-
1367 
-
1370  typedef float32 lowp_f32;
-
1371 
-
1374  typedef float64 lowp_f64;
-
1375 
-
1376 
-
1379  typedef detail::float32 lowp_float32;
-
1380 
-
1383  typedef detail::float64 lowp_float64;
-
1384 
-
1387  typedef detail::float32 lowp_float32_t;
-
1388 
-
1391  typedef detail::float64 lowp_float64_t;
-
1392 
-
1395  typedef float32 lowp_f32;
-
1396 
-
1399  typedef float64 lowp_f64;
-
1400 
-
1401 
-
1404  typedef detail::float32 mediump_float32;
-
1405 
-
1408  typedef detail::float64 mediump_float64;
-
1409 
-
1412  typedef detail::float32 mediump_float32_t;
-
1413 
-
1416  typedef detail::float64 mediump_float64_t;
-
1417 
- -
1421 
- -
1425 
-
1426 
-
1429  typedef detail::float32 highp_float32;
-
1430 
-
1433  typedef detail::float64 highp_float64;
-
1434 
-
1437  typedef detail::float32 highp_float32_t;
-
1438 
-
1441  typedef detail::float64 highp_float64_t;
-
1442 
- -
1446 
- -
1450 
-
1451 
-
1452 #if(defined(GLM_PRECISION_LOWP_FLOAT))
-
1453  typedef lowp_float32 float32;
-
1456 
-
1459  typedef lowp_float64 float64;
-
1460 
-
1463  typedef lowp_float32_t float32_t;
-
1464 
-
1467  typedef lowp_float64_t float64_t;
-
1468 
-
1471  typedef lowp_f32 f32;
-
1472 
-
1475  typedef lowp_f64 f64;
-
1476 
-
1477 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
1478 
-
1481  typedef mediump_float32 float32;
-
1482 
-
1485  typedef mediump_float64 float64;
-
1486 
-
1489  typedef mediump_float32 float32_t;
-
1490 
-
1493  typedef mediump_float64 float64_t;
-
1494 
-
1497  typedef mediump_float32 f32;
-
1498 
-
1501  typedef mediump_float64 f64;
-
1502 
-
1503 #else//(defined(GLM_PRECISION_HIGHP_FLOAT))
-
1504 
-
1507  typedef highp_float32 float32;
-
1508 
-
1511  typedef highp_float64 float64;
-
1512 
- -
1516 
- -
1520 
- -
1524 
- -
1528 #endif
-
1529 
-
1530 
-
1533  typedef detail::tvec1<float, lowp> lowp_vec1;
-
1534 
-
1537  typedef detail::tvec2<float, lowp> lowp_vec2;
-
1538 
-
1541  typedef detail::tvec3<float, lowp> lowp_vec3;
-
1542 
-
1545  typedef detail::tvec4<float, lowp> lowp_vec4;
-
1546 
-
1549  typedef detail::tvec1<float, lowp> lowp_fvec1;
-
1550 
-
1553  typedef detail::tvec2<float, lowp> lowp_fvec2;
-
1554 
-
1557  typedef detail::tvec3<float, lowp> lowp_fvec3;
-
1558 
-
1561  typedef detail::tvec4<float, lowp> lowp_fvec4;
-
1562 
-
1563 
-
1564 
-
1567  typedef detail::tvec1<float, mediump> mediump_vec1;
-
1568 
-
1571  typedef detail::tvec2<float, mediump> mediump_vec2;
-
1572 
-
1575  typedef detail::tvec3<float, mediump> mediump_vec3;
-
1576 
-
1579  typedef detail::tvec4<float, mediump> mediump_vec4;
-
1580 
-
1583  typedef detail::tvec1<float, mediump> mediump_fvec1;
-
1584 
-
1587  typedef detail::tvec2<float, mediump> mediump_fvec2;
-
1588 
-
1591  typedef detail::tvec3<float, mediump> mediump_fvec3;
-
1592 
-
1595  typedef detail::tvec4<float, mediump> mediump_fvec4;
-
1596 
-
1597 
-
1598 
-
1601  typedef detail::tvec1<float, highp> highp_vec1;
-
1602 
-
1605  typedef detail::tvec2<float, highp> highp_vec2;
-
1606 
-
1609  typedef detail::tvec3<float, highp> highp_vec3;
-
1610 
-
1613  typedef detail::tvec4<float, highp> highp_vec4;
-
1614 
-
1617  typedef detail::tvec1<float, highp> highp_fvec1;
-
1618 
-
1621  typedef detail::tvec2<float, highp> highp_fvec2;
-
1622 
-
1625  typedef detail::tvec3<float, highp> highp_fvec3;
-
1626 
-
1629  typedef detail::tvec4<float, highp> highp_fvec4;
-
1630 
-
1631 
-
1634  typedef detail::tvec1<f32, lowp> lowp_f32vec1;
-
1635 
-
1638  typedef detail::tvec2<f32, lowp> lowp_f32vec2;
-
1639 
-
1642  typedef detail::tvec3<f32, lowp> lowp_f32vec3;
-
1643 
-
1646  typedef detail::tvec4<f32, lowp> lowp_f32vec4;
-
1647 
-
1650  typedef detail::tvec1<f32, mediump> mediump_f32vec1;
-
1651 
-
1654  typedef detail::tvec2<f32, mediump> mediump_f32vec2;
-
1655 
-
1658  typedef detail::tvec3<f32, mediump> mediump_f32vec3;
-
1659 
-
1662  typedef detail::tvec4<f32, mediump> mediump_f32vec4;
-
1663 
-
1666  typedef detail::tvec1<f32, highp> highp_f32vec1;
-
1667 
-
1670  typedef detail::tvec2<f32, highp> highp_f32vec2;
-
1671 
-
1674  typedef detail::tvec3<f32, highp> highp_f32vec3;
-
1675 
-
1678  typedef detail::tvec4<f32, highp> highp_f32vec4;
-
1679 
-
1680 
-
1683  typedef detail::tvec1<f64, lowp> lowp_f64vec1;
-
1684 
-
1687  typedef detail::tvec2<f64, lowp> lowp_f64vec2;
-
1688 
-
1691  typedef detail::tvec3<f64, lowp> lowp_f64vec3;
-
1692 
-
1695  typedef detail::tvec4<f64, lowp> lowp_f64vec4;
-
1696 
-
1699  typedef detail::tvec1<f64, mediump> mediump_f64vec1;
-
1700 
-
1703  typedef detail::tvec2<f64, mediump> mediump_f64vec2;
-
1704 
-
1707  typedef detail::tvec3<f64, mediump> mediump_f64vec3;
-
1708 
-
1711  typedef detail::tvec4<f64, mediump> mediump_f64vec4;
-
1712 
-
1715  typedef detail::tvec1<f64, highp> highp_f64vec1;
-
1716 
-
1719  typedef detail::tvec2<f64, highp> highp_f64vec2;
-
1720 
-
1723  typedef detail::tvec3<f64, highp> highp_f64vec3;
-
1724 
-
1727  typedef detail::tvec4<f64, highp> highp_f64vec4;
-
1728 
-
1729 
-
1731  // Float matrix types
-
1732 
-
1735  //typedef lowp_f32 lowp_fmat1x1;
-
1736 
-
1739  typedef detail::tmat2x2<f32, lowp> lowp_fmat2x2;
-
1740 
-
1743  typedef detail::tmat2x3<f32, lowp> lowp_fmat2x3;
-
1744 
-
1747  typedef detail::tmat2x4<f32, lowp> lowp_fmat2x4;
-
1748 
-
1751  typedef detail::tmat3x2<f32, lowp> lowp_fmat3x2;
-
1752 
-
1755  typedef detail::tmat3x3<f32, lowp> lowp_fmat3x3;
-
1756 
-
1759  typedef detail::tmat3x4<f32, lowp> lowp_fmat3x4;
-
1760 
-
1763  typedef detail::tmat4x2<f32, lowp> lowp_fmat4x2;
-
1764 
-
1767  typedef detail::tmat4x3<f32, lowp> lowp_fmat4x3;
-
1768 
-
1771  typedef detail::tmat4x4<f32, lowp> lowp_fmat4x4;
-
1772 
-
1775  //typedef lowp_fmat1x1 lowp_fmat1;
-
1776 
- -
1780 
- -
1784 
- -
1788 
-
1789 
-
1792  //typedef mediump_f32 mediump_fmat1x1;
-
1793 
-
1796  typedef detail::tmat2x2<f32, mediump> mediump_fmat2x2;
-
1797 
-
1800  typedef detail::tmat2x3<f32, mediump> mediump_fmat2x3;
-
1801 
-
1804  typedef detail::tmat2x4<f32, mediump> mediump_fmat2x4;
-
1805 
-
1808  typedef detail::tmat3x2<f32, mediump> mediump_fmat3x2;
-
1809 
-
1812  typedef detail::tmat3x3<f32, mediump> mediump_fmat3x3;
-
1813 
-
1816  typedef detail::tmat3x4<f32, mediump> mediump_fmat3x4;
-
1817 
-
1820  typedef detail::tmat4x2<f32, mediump> mediump_fmat4x2;
-
1821 
-
1824  typedef detail::tmat4x3<f32, mediump> mediump_fmat4x3;
-
1825 
-
1828  typedef detail::tmat4x4<f32, mediump> mediump_fmat4x4;
-
1829 
-
1832  //typedef mediump_fmat1x1 mediump_fmat1;
-
1833 
- -
1837 
- -
1841 
- -
1845 
-
1846 
-
1847 
-
1850  //typedef highp_f32 highp_fmat1x1;
-
1851 
-
1854  typedef detail::tmat2x2<f32, highp> highp_fmat2x2;
-
1855 
-
1858  typedef detail::tmat2x3<f32, highp> highp_fmat2x3;
-
1859 
-
1862  typedef detail::tmat2x4<f32, highp> highp_fmat2x4;
-
1863 
-
1866  typedef detail::tmat3x2<f32, highp> highp_fmat3x2;
-
1867 
-
1870  typedef detail::tmat3x3<f32, highp> highp_fmat3x3;
-
1871 
-
1874  typedef detail::tmat3x4<f32, highp> highp_fmat3x4;
-
1875 
-
1878  typedef detail::tmat4x2<f32, highp> highp_fmat4x2;
-
1879 
-
1882  typedef detail::tmat4x3<f32, highp> highp_fmat4x3;
-
1883 
-
1886  typedef detail::tmat4x4<f32, highp> highp_fmat4x4;
-
1887 
-
1890  //typedef highp_fmat1x1 highp_fmat1;
-
1891 
- -
1895 
- -
1899 
- -
1903 
-
1904 
-
1907  //typedef f32 lowp_f32mat1x1;
-
1908 
-
1911  typedef detail::tmat2x2<f32, lowp> lowp_f32mat2x2;
-
1912 
-
1915  typedef detail::tmat2x3<f32, lowp> lowp_f32mat2x3;
-
1916 
-
1919  typedef detail::tmat2x4<f32, lowp> lowp_f32mat2x4;
-
1920 
-
1923  typedef detail::tmat3x2<f32, lowp> lowp_f32mat3x2;
-
1924 
-
1927  typedef detail::tmat3x3<f32, lowp> lowp_f32mat3x3;
-
1928 
-
1931  typedef detail::tmat3x4<f32, lowp> lowp_f32mat3x4;
-
1932 
-
1935  typedef detail::tmat4x2<f32, lowp> lowp_f32mat4x2;
-
1936 
-
1939  typedef detail::tmat4x3<f32, lowp> lowp_f32mat4x3;
-
1940 
-
1943  typedef detail::tmat4x4<f32, lowp> lowp_f32mat4x4;
-
1944 
-
1947  //typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;
-
1948 
- -
1952 
- -
1956 
- -
1960 
-
1961 
-
1962 
-
1965  //typedef f32 mediump_f32mat1x1;
-
1966 
-
1969  typedef detail::tmat2x2<f32, mediump> mediump_f32mat2x2;
-
1970 
-
1973  typedef detail::tmat2x3<f32, mediump> mediump_f32mat2x3;
-
1974 
-
1977  typedef detail::tmat2x4<f32, mediump> mediump_f32mat2x4;
-
1978 
-
1981  typedef detail::tmat3x2<f32, mediump> mediump_f32mat3x2;
-
1982 
-
1985  typedef detail::tmat3x3<f32, mediump> mediump_f32mat3x3;
-
1986 
-
1989  typedef detail::tmat3x4<f32, mediump> mediump_f32mat3x4;
-
1990 
-
1993  typedef detail::tmat4x2<f32, mediump> mediump_f32mat4x2;
-
1994 
-
1997  typedef detail::tmat4x3<f32, mediump> mediump_f32mat4x3;
-
1998 
-
2001  typedef detail::tmat4x4<f32, mediump> mediump_f32mat4x4;
-
2002 
-
2005  //typedef detail::tmat1x1<f32, mediump> f32mat1;
-
2006 
- -
2010 
- -
2014 
- -
2018 
-
2019 
-
2020 
-
2021 
-
2024  //typedef f32 highp_f32mat1x1;
-
2025 
-
2028  typedef detail::tmat2x2<f32, highp> highp_f32mat2x2;
-
2029 
-
2032  typedef detail::tmat2x3<f32, highp> highp_f32mat2x3;
-
2033 
-
2036  typedef detail::tmat2x4<f32, highp> highp_f32mat2x4;
-
2037 
-
2040  typedef detail::tmat3x2<f32, highp> highp_f32mat3x2;
-
2041 
-
2044  typedef detail::tmat3x3<f32, highp> highp_f32mat3x3;
-
2045 
-
2048  typedef detail::tmat3x4<f32, highp> highp_f32mat3x4;
-
2049 
-
2052  typedef detail::tmat4x2<f32, highp> highp_f32mat4x2;
-
2053 
-
2056  typedef detail::tmat4x3<f32, highp> highp_f32mat4x3;
-
2057 
-
2060  typedef detail::tmat4x4<f32, highp> highp_f32mat4x4;
-
2061 
-
2064  //typedef detail::tmat1x1<f32, highp> f32mat1;
-
2065 
- -
2069 
- -
2073 
- -
2077 
-
2078 
-
2079 
-
2082  //typedef f64 lowp_f64mat1x1;
-
2083 
-
2086  typedef detail::tmat2x2<f64, lowp> lowp_f64mat2x2;
-
2087 
-
2090  typedef detail::tmat2x3<f64, lowp> lowp_f64mat2x3;
-
2091 
-
2094  typedef detail::tmat2x4<f64, lowp> lowp_f64mat2x4;
-
2095 
-
2098  typedef detail::tmat3x2<f64, lowp> lowp_f64mat3x2;
-
2099 
-
2102  typedef detail::tmat3x3<f64, lowp> lowp_f64mat3x3;
-
2103 
-
2106  typedef detail::tmat3x4<f64, lowp> lowp_f64mat3x4;
-
2107 
-
2110  typedef detail::tmat4x2<f64, lowp> lowp_f64mat4x2;
-
2111 
-
2114  typedef detail::tmat4x3<f64, lowp> lowp_f64mat4x3;
-
2115 
-
2118  typedef detail::tmat4x4<f64, lowp> lowp_f64mat4x4;
-
2119 
-
2122  //typedef lowp_f64mat1x1 lowp_f64mat1;
-
2123 
- -
2127 
- -
2131 
- -
2135 
-
2136 
-
2137 
-
2140  //typedef f64 Highp_f64mat1x1;
-
2141 
-
2144  typedef detail::tmat2x2<f64, mediump> mediump_f64mat2x2;
-
2145 
-
2148  typedef detail::tmat2x3<f64, mediump> mediump_f64mat2x3;
-
2149 
-
2152  typedef detail::tmat2x4<f64, mediump> mediump_f64mat2x4;
-
2153 
-
2156  typedef detail::tmat3x2<f64, mediump> mediump_f64mat3x2;
-
2157 
-
2160  typedef detail::tmat3x3<f64, mediump> mediump_f64mat3x3;
-
2161 
-
2164  typedef detail::tmat3x4<f64, mediump> mediump_f64mat3x4;
-
2165 
-
2168  typedef detail::tmat4x2<f64, mediump> mediump_f64mat4x2;
-
2169 
-
2172  typedef detail::tmat4x3<f64, mediump> mediump_f64mat4x3;
-
2173 
-
2176  typedef detail::tmat4x4<f64, mediump> mediump_f64mat4x4;
-
2177 
-
2180  //typedef mediump_f64mat1x1 mediump_f64mat1;
-
2181 
- -
2185 
- -
2189 
- -
2193 
-
2196  //typedef f64 highp_f64mat1x1;
-
2197 
-
2200  typedef detail::tmat2x2<f64, highp> highp_f64mat2x2;
-
2201 
-
2204  typedef detail::tmat2x3<f64, highp> highp_f64mat2x3;
-
2205 
-
2208  typedef detail::tmat2x4<f64, highp> highp_f64mat2x4;
-
2209 
-
2212  typedef detail::tmat3x2<f64, highp> highp_f64mat3x2;
-
2213 
-
2216  typedef detail::tmat3x3<f64, highp> highp_f64mat3x3;
-
2217 
-
2220  typedef detail::tmat3x4<f64, highp> highp_f64mat3x4;
-
2221 
-
2224  typedef detail::tmat4x2<f64, highp> highp_f64mat4x2;
-
2225 
-
2228  typedef detail::tmat4x3<f64, highp> highp_f64mat4x3;
-
2229 
-
2232  typedef detail::tmat4x4<f64, highp> highp_f64mat4x4;
-
2233 
-
2236  //typedef highp_f64mat1x1 highp_f64mat1;
-
2237 
- -
2241 
- -
2245 
- -
2249 
-
2251  // Quaternion types
-
2252 
-
2255  typedef detail::tquat<f32, lowp> lowp_f32quat;
-
2256 
-
2259  typedef detail::tquat<f64, lowp> lowp_f64quat;
-
2260 
-
2263  typedef detail::tquat<f32, mediump> mediump_f32quat;
-
2264 
-
2267  typedef detail::tquat<f64, mediump> mediump_f64quat;
-
2268 
-
2271  typedef detail::tquat<f32, highp> highp_f32quat;
-
2272 
-
2275  typedef detail::tquat<f64, highp> highp_f64quat;
-
2276 
-
2277 
-
2278 #if(defined(GLM_PRECISION_LOWP_FLOAT))
-
2279  typedef lowp_f32vec1 fvec1;
-
2280  typedef lowp_f32vec2 fvec2;
-
2281  typedef lowp_f32vec3 fvec3;
-
2282  typedef lowp_f32vec4 fvec4;
-
2283  typedef lowp_f32mat2 fmat2;
-
2284  typedef lowp_f32mat3 fmat3;
-
2285  typedef lowp_f32mat4 fmat4;
-
2286  typedef lowp_f32mat2x2 fmat2x2;
-
2287  typedef lowp_f32mat3x2 fmat3x2;
-
2288  typedef lowp_f32mat4x2 fmat4x2;
-
2289  typedef lowp_f32mat2x3 fmat2x3;
-
2290  typedef lowp_f32mat3x3 fmat3x3;
-
2291  typedef lowp_f32mat4x3 fmat4x3;
-
2292  typedef lowp_f32mat2x4 fmat2x4;
-
2293  typedef lowp_f32mat3x4 fmat3x4;
-
2294  typedef lowp_f32mat4x4 fmat4x4;
-
2295  typedef lowp_f32quat fquat;
-
2296 
-
2297  typedef lowp_f32vec1 f32vec1;
-
2298  typedef lowp_f32vec2 f32vec2;
-
2299  typedef lowp_f32vec3 f32vec3;
-
2300  typedef lowp_f32vec4 f32vec4;
-
2301  typedef lowp_f32mat2 f32mat2;
-
2302  typedef lowp_f32mat3 f32mat3;
-
2303  typedef lowp_f32mat4 f32mat4;
-
2304  typedef lowp_f32mat2x2 f32mat2x2;
-
2305  typedef lowp_f32mat3x2 f32mat3x2;
-
2306  typedef lowp_f32mat4x2 f32mat4x2;
-
2307  typedef lowp_f32mat2x3 f32mat2x3;
-
2308  typedef lowp_f32mat3x3 f32mat3x3;
-
2309  typedef lowp_f32mat4x3 f32mat4x3;
-
2310  typedef lowp_f32mat2x4 f32mat2x4;
-
2311  typedef lowp_f32mat3x4 f32mat3x4;
-
2312  typedef lowp_f32mat4x4 f32mat4x4;
-
2313  typedef lowp_f32quat f32quat;
-
2314 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
2315  typedef mediump_f32vec1 fvec1;
-
2316  typedef mediump_f32vec2 fvec2;
-
2317  typedef mediump_f32vec3 fvec3;
-
2318  typedef mediump_f32vec4 fvec4;
-
2319  typedef mediump_f32mat2 fmat2;
-
2320  typedef mediump_f32mat3 fmat3;
-
2321  typedef mediump_f32mat4 fmat4;
-
2322  typedef mediump_f32mat2x2 fmat2x2;
-
2323  typedef mediump_f32mat3x2 fmat3x2;
-
2324  typedef mediump_f32mat4x2 fmat4x2;
-
2325  typedef mediump_f32mat2x3 fmat2x3;
-
2326  typedef mediump_f32mat3x3 fmat3x3;
-
2327  typedef mediump_f32mat4x3 fmat4x3;
-
2328  typedef mediump_f32mat2x4 fmat2x4;
-
2329  typedef mediump_f32mat3x4 fmat3x4;
-
2330  typedef mediump_f32mat4x4 fmat4x4;
-
2331  typedef mediump_f32quat fquat;
-
2332 
-
2333  typedef mediump_f32vec1 f32vec1;
-
2334  typedef mediump_f32vec2 f32vec2;
-
2335  typedef mediump_f32vec3 f32vec3;
-
2336  typedef mediump_f32vec4 f32vec4;
-
2337  typedef mediump_f32mat2 f32mat2;
-
2338  typedef mediump_f32mat3 f32mat3;
-
2339  typedef mediump_f32mat4 f32mat4;
-
2340  typedef mediump_f32mat2x2 f32mat2x2;
-
2341  typedef mediump_f32mat3x2 f32mat3x2;
-
2342  typedef mediump_f32mat4x2 f32mat4x2;
-
2343  typedef mediump_f32mat2x3 f32mat2x3;
-
2344  typedef mediump_f32mat3x3 f32mat3x3;
-
2345  typedef mediump_f32mat4x3 f32mat4x3;
-
2346  typedef mediump_f32mat2x4 f32mat2x4;
-
2347  typedef mediump_f32mat3x4 f32mat3x4;
-
2348  typedef mediump_f32mat4x4 f32mat4x4;
-
2349  typedef mediump_f32quat f32quat;
-
2350 #else//if(defined(GLM_PRECISION_HIGHP_FLOAT))
-
2351  typedef highp_f32vec1 fvec1;
-
2354 
- -
2358 
- -
2362 
- -
2366 
- -
2370 
- -
2374 
- -
2378 
- -
2382 
- -
2386 
- -
2390 
- -
2394 
- -
2398 
- -
2402 
-
2405  typedef fmat2x2 fmat2;
-
2406 
-
2409  typedef fmat3x3 fmat3;
-
2410 
-
2413  typedef fmat4x4 fmat4;
-
2414 
-
2417  typedef highp_fquat fquat;
-
2418 
-
2419 
-
2420 
- -
2424 
- -
2428 
- -
2432 
- -
2436 
- -
2440 
- -
2444 
- -
2448 
- -
2452 
- -
2456 
- -
2460 
- -
2464 
- -
2468 
- -
2472 
- -
2476 
- -
2480 
- -
2484 
- -
2488 #endif
-
2489 
-
2490 
-
2491 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
-
2492  typedef lowp_f64vec1 f64vec1;
-
2493  typedef lowp_f64vec2 f64vec2;
-
2494  typedef lowp_f64vec3 f64vec3;
-
2495  typedef lowp_f64vec4 f64vec4;
-
2496  typedef lowp_f64mat2 f64mat2;
-
2497  typedef lowp_f64mat3 f64mat3;
-
2498  typedef lowp_f64mat4 f64mat4;
-
2499  typedef lowp_f64mat2x2 f64mat2x2;
-
2500  typedef lowp_f64mat3x2 f64mat3x2;
-
2501  typedef lowp_f64mat4x2 f64mat4x2;
-
2502  typedef lowp_f64mat2x3 f64mat2x3;
-
2503  typedef lowp_f64mat3x3 f64mat3x3;
-
2504  typedef lowp_f64mat4x3 f64mat4x3;
-
2505  typedef lowp_f64mat2x4 f64mat2x4;
-
2506  typedef lowp_f64mat3x4 f64mat3x4;
-
2507  typedef lowp_f64mat4x4 f64mat4x4;
-
2508  typedef lowp_f64quat f64quat;
-
2509 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
-
2510  typedef mediump_f64vec1 f64vec1;
-
2511  typedef mediump_f64vec2 f64vec2;
-
2512  typedef mediump_f64vec3 f64vec3;
-
2513  typedef mediump_f64vec4 f64vec4;
-
2514  typedef mediump_f64mat2 f64mat2;
-
2515  typedef mediump_f64mat3 f64mat3;
-
2516  typedef mediump_f64mat4 f64mat4;
-
2517  typedef mediump_f64mat2x2 f64mat2x2;
-
2518  typedef mediump_f64mat3x2 f64mat3x2;
-
2519  typedef mediump_f64mat4x2 f64mat4x2;
-
2520  typedef mediump_f64mat2x3 f64mat2x3;
-
2521  typedef mediump_f64mat3x3 f64mat3x3;
-
2522  typedef mediump_f64mat4x3 f64mat4x3;
-
2523  typedef mediump_f64mat2x4 f64mat2x4;
-
2524  typedef mediump_f64mat3x4 f64mat3x4;
-
2525  typedef mediump_f64mat4x4 f64mat4x4;
-
2526  typedef mediump_f64quat f64quat;
-
2527 #else
-
2528  typedef highp_f64vec1 f64vec1;
-
2531 
- -
2535 
- -
2539 
- -
2543 
- -
2547 
- -
2551 
- -
2555 
- -
2559 
- -
2563 
- -
2567 
- -
2571 
- -
2575 
- -
2579 
- -
2583 
- -
2587 
- -
2591 
- -
2595 #endif
-
2596 }//namespace glm
-
2597 
-
2598 #endif//GLM_FWD_INCLUDED
-
highp_i16vec1 i16vec1
Default precision 16 bit signed integer scalar type.
Definition: fwd.hpp:468
-
highp_u16vec1 u16vec1
Default precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1071
-
detail::int8 mediump_int8_t
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:196
-
highp_fmat4x4 highp_fmat4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1902
-
detail::tmat4x4< f32, lowp > lowp_fmat4x4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1771
-
lowp_fmat2x2 lowp_fmat2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1779
-
highp_f32mat4x3 fmat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2397
-
detail::tvec4< float, mediump > mediump_fvec4
Medium Single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1595
-
detail::uint8 highp_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:845
-
detail::tvec1< f64, lowp > lowp_f64vec1
Low double-precision floating-point vector of 1 component.
Definition: fwd.hpp:1683
-
detail::tmat3x4< f32, mediump > mediump_fmat3x4
Medium single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1816
-
mediump_fmat2x2 mediump_fmat2
Medium single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1836
-
highp_f32vec1 fvec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2353
-
highp_u8vec3 u8vec3
Default precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:999
-
detail::tvec3< float, lowp > lowp_fvec3
Low single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1557
-
detail::int8 int8
8 bit signed integer type.
Definition: type_int.hpp:89
-
detail::tvec1< u16, highp > highp_u16vec1
High precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1043
-
highp_i64vec2 i64vec2
Default precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:710
-
detail::float32 highp_float32_t
High 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1437
-
float32 mediump_f32
Medium 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1420
-
detail::tvec1< i16, lowp > lowp_i16vec1
Low precision 16 bit signed integer scalar type.
Definition: fwd.hpp:406
-
highp_u64vec3 u64vec3
Default precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1317
-
detail::tvec2< i16, mediump > mediump_i16vec2
Medium precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:427
-
detail::tquat< f64, lowp > lowp_f64quat
Low double-precision floating-point quaternion.
Definition: fwd.hpp:2259
-
detail::uint16 mediump_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:815
-
detail::tmat2x4< f32, mediump > mediump_fmat2x4
Medium single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1804
-
detail::uint64 lowp_uint64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:739
-
detail::tvec3< i8, highp > highp_i8vec3
High precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:369
-
detail::tvec3< i32, mediump > mediump_i32vec3
Medium precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:511
-
detail::tvec2< u8, lowp > lowp_u8vec2
Low precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:934
-
detail::uint32 mediump_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:787
-
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:96
-
detail::int16 int16
16 bit signed integer type.
Definition: type_int.hpp:90
-
detail::tvec1< u64, highp > highp_u64vec1
High precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1282
-
highp_i32vec2 i32vec2
Default precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:551
-
detail::uint8 lowp_uint8_t
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:744
-
mediump_f64mat3x3 mediump_f64mat3
Medium double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2188
-
float float32
Default 32 bit single-precision floating-point scalar.
Definition: type_float.hpp:81
-
detail::tvec2< u32, lowp > lowp_u32vec2
Low precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1093
-
highp_u16vec3 u16vec3
Default precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1079
-
detail::int32 highp_int32
High precision 32 bit signed integer type.
Definition: fwd.hpp:236
-
detail::uint8 uint8_t
8 bit unsigned integer type.
Definition: fwd.hpp:895
-
highp_f32vec3 f32vec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2431
-
detail::tvec4< i64, lowp > lowp_i64vec4
Low precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:657
-
detail::tquat< f32, highp > highp_f32quat
High single-precision floating-point quaternion.
Definition: fwd.hpp:2271
-
highp_u64vec1 u64vec1
Default precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1309
-
detail::float32 mediump_float32
Medium 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1404
-
highp_fmat2x2 highp_fmat2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1894
-
detail::tvec3< i16, lowp > lowp_i16vec3
Low precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:414
-
detail::tvec1< u8, lowp > lowp_u8vec1
Low precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:930
-
detail::tmat2x4< f64, mediump > mediump_f64mat2x4
Medium double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2152
-
detail::int16 highp_int16_t
High precision 16 bit signed integer type.
Definition: fwd.hpp:248
-
highp_u8vec4 u8vec4
Default precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1003
-
detail::tmat4x2< f32, mediump > mediump_f32mat4x2
Medium single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1993
-
detail::int64 mediump_int64_t
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:208
-
detail::tmat2x2< f32, mediump > mediump_f32mat2x2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1969
-
detail::int32 lowp_int32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:140
-
detail::tvec3< float, mediump > mediump_fvec3
Medium Single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1591
-
detail::int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:305
-
detail::tvec3< f64, lowp > lowp_f64vec3
Low double-precision floating-point vector of 3 components.
Definition: fwd.hpp:1691
-
detail::tmat4x3< f32, lowp > lowp_fmat4x3
Low single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1767
-
detail::tvec1< i8, mediump > mediump_i8vec1
Medium precision 8 bit signed integer scalar type.
Definition: fwd.hpp:344
-
highp_float32_t f32
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1523
-
detail::tvec3< u64, lowp > lowp_u64vec3
Low precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1256
-
detail::uint32 uint32_t
32 bit unsigned integer type.
Definition: fwd.hpp:903
-
detail::uint8 u8
8 bit unsigned integer type.
Definition: fwd.hpp:911
-
detail::int64 int64
64 bit signed integer type.
Definition: type_int.hpp:92
-
detail::float32 lowp_float32
Low 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1330
-
detail::tvec3< i16, highp > highp_i16vec3
High precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:448
-
detail::tvec2< i64, lowp > lowp_i64vec2
Low precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:649
-
detail::uint16 lowp_u16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:765
-
highp_float32_t float32_t
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1515
-
detail::int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:252
-
highp_f32vec2 fvec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2357
-
highp_i16vec2 i16vec2
Default precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:472
-
detail::tvec4< u64, highp > highp_u64vec4
High precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1294
-
detail::float32 highp_float32
High 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1429
-
detail::tmat3x2< f32, mediump > mediump_fmat3x2
Medium single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1808
-
detail::tvec3< i64, highp > highp_i64vec3
High precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:687
-
lowp_f64mat3x3 lowp_f64mat3
Low double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2130
-
detail::tvec4< f64, lowp > lowp_f64vec4
Low double-precision floating-point vector of 4 components.
Definition: fwd.hpp:1695
-
detail::tmat4x3< f32, mediump > mediump_f32mat4x3
Medium single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1997
-
detail::tmat4x2< f32, lowp > lowp_fmat4x2
Low single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1763
-
detail::uint32 mediump_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:803
-
lowp_quat lowp_fquat
Quaternion of low single-precision floating-point numbers.
Definition: fwd.hpp:75
-
detail::uint32 highp_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:837
-
detail::tvec1< float, lowp > lowp_fvec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1549
-
detail::uint16 mediump_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:783
-
detail::tvec3< i64, lowp > lowp_i64vec3
Low precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:653
-
detail::tmat4x4< f32, mediump > mediump_f32mat4x4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2001
-
detail::tmat4x3< f32, mediump > mediump_fmat4x3
Medium single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1824
-
detail::tmat3x4< f64, lowp > lowp_f64mat3x4
Low double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2106
-
detail::tvec4< float, mediump > mediump_vec4
4 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:288
-
detail::tvec3< i32, lowp > lowp_i32vec3
Low precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:494
-
detail::uint16 lowp_uint16_t
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:748
-
detail::tvec2< u64, mediump > mediump_u64vec2
Medium precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1269
-
detail::int16 mediump_int16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:184
-
detail::tvec4< u16, highp > highp_u16vec4
High precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1055
-
detail::tquat< f64, highp > highp_f64quat
High double-precision floating-point quaternion.
Definition: fwd.hpp:2275
-
detail::tvec2< u16, lowp > lowp_u16vec2
Low precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1013
-
highp_f64mat3x4 f64mat3x4
Default double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2566
-
lowp_fmat3x3 lowp_fmat3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1783
-
detail::uint8 mediump_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:795
-
detail::tmat2x2< f32, lowp > lowp_fmat2x2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1739
-
detail::int32 i32
32 bit signed integer type.
Definition: fwd.hpp:317
-
float64 lowp_f64
Low 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1350
-
mediump_f64mat4x4 mediump_f64mat4
Medium double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2192
-
detail::tmat3x3< f32, mediump > mediump_fmat3x3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1812
-
detail::tmat4x3< f64, highp > highp_f64mat4x3
High double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2228
-
detail::tvec3< u32, highp > highp_u32vec3
High precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1131
-
mediump_f32mat2x2 mediump_f32mat2
Medium single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2009
-
quat fquat
Quaternion of default single-precision floating-point numbers.
Definition: fwd.hpp:90
-
highp_f64vec1 f64vec1
Default double-precision floating-point vector of 1 components.
Definition: fwd.hpp:2530
-
detail::int8 lowp_int8_t
Low precision 8 bit signed integer type.
Definition: fwd.hpp:148
-
detail::uint16 highp_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:833
-
detail::tvec3< u16, mediump > mediump_u16vec3
Medium precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1034
-
detail::tmat4x2< f32, highp > highp_fmat4x2
High single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1878
-
detail::tmat2x3< f64, lowp > lowp_f64mat2x3
Low double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2090
-
detail::tvec4< float, highp > highp_fvec4
High Single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1629
-
detail::tmat3x2< f64, mediump > mediump_f64mat3x2
Medium double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2156
-
highp_f64mat3x3 highp_f64mat3
High double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2244
-
detail::tvec4< u64, lowp > lowp_u64vec4
Low precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1260
-
detail::tmat3x3< f64, highp > highp_f64mat3x3
High double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2216
-
detail::uint64 mediump_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:823
-
detail::uint64 uint64_t
64 bit unsigned integer type.
Definition: fwd.hpp:907
-
detail::tvec2< i32, mediump > mediump_i32vec2
Medium precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:507
-
detail::tvec1< i8, highp > highp_i8vec1
High precision 8 bit signed integer scalar type.
Definition: fwd.hpp:361
-
detail::tvec1< i32, mediump > mediump_i32vec1
Medium precision 32 bit signed integer scalar type.
Definition: fwd.hpp:503
-
float64 highp_f64
High 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1449
-
detail::tvec2< f64, lowp > lowp_f64vec2
Low double-precision floating-point vector of 2 components.
Definition: fwd.hpp:1687
-
detail::tmat2x4< f32, mediump > mediump_f32mat2x4
Medium single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1977
-
detail::float64 mediump_float64_t
Medium 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1416
-
detail::tvec1< i64, mediump > mediump_i64vec1
Medium precision 64 bit signed integer scalar type.
Definition: fwd.hpp:662
-
highp_i64vec1 i64vec1
Default precision 64 bit signed integer scalar type.
Definition: fwd.hpp:706
-
detail::tmat3x4< f64, mediump > mediump_f64mat3x4
Medium double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2164
-
detail::int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:297
-
detail::tvec1< f32, highp > highp_f32vec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1666
-
highp_f32vec2 f32vec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2427
-
detail::tmat4x2< f32, lowp > lowp_f32mat4x2
Low single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1935
-
detail::tvec2< float, highp > highp_fvec2
High Single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1621
-
detail::tvec1< float, highp > highp_vec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1601
-
detail::tvec4< u32, highp > highp_u32vec4
High precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1135
-
detail::uint16 highp_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:865
-
detail::tvec4< i8, lowp > lowp_i8vec4
Low precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:339
-
detail::tvec4< u32, lowp > lowp_u32vec4
Low precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1101
-
highp_f64mat4x4 f64mat4x4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2578
-
highp_f64mat4x2 f64mat4x2
Default double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2570
-
detail::tvec2< i8, mediump > mediump_i8vec2
Medium precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:348
-
detail::float64 highp_float64_t
High 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1441
-
detail::tvec4< u16, lowp > lowp_u16vec4
Low precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1021
-
highp_f32vec3 fvec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2361
-
detail::tvec3< u8, mediump > mediump_u8vec3
Medium precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:955
-
detail::tmat2x2< f64, lowp > lowp_f64mat2x2
Low double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2086
-
detail::int64 i64
64 bit signed integer type.
Definition: fwd.hpp:321
-
detail::tvec2< f32, highp > highp_f32vec2
High single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1670
-
detail::tvec3< float, lowp > lowp_vec3
3 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:190
-
detail::tvec2< u8, highp > highp_u8vec2
High precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:968
-
detail::int32 mediump_int32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:188
-
detail::tmat4x4< f32, highp > highp_fmat4x4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1886
-
f32mat4x4 f32mat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2483
-
detail::tmat2x4< f32, lowp > lowp_fmat2x4
Low single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1747
-
detail::int64 lowp_i64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:176
-
detail::tvec3< float, highp > highp_vec3
3 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:176
-
detail::tvec4< i16, mediump > mediump_i16vec4
Medium precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:435
-
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:97
-
highp_quat highp_fquat
Quaternion of high single-precision floating-point numbers.
Definition: fwd.hpp:85
-
detail::tvec2< i32, highp > highp_i32vec2
High precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:524
-
detail::int64 highp_int64
High precision 64 bit signed integer type.
Definition: fwd.hpp:240
-
detail::uint32 highp_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:853
-
lowp_f64mat4x4 lowp_f64mat4
Low double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2134
-
detail::tquat< float, mediump > mediump_quat
Quaternion of medium single-precision floating-point numbers.
Definition: fwd.hpp:54
-
detail::tvec4< float, lowp > lowp_fvec4
Low single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1561
-
detail::int16 mediump_int16_t
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:200
-
detail::tmat3x3< f32, lowp > lowp_f32mat3x3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1927
-
detail::tvec3< u8, highp > highp_u8vec3
High precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:972
-
detail::tvec2< u64, highp > highp_u64vec2
High precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1286
-
detail::int16 lowp_int16_t
Low precision 16 bit signed integer type.
Definition: fwd.hpp:152
-
detail::tmat2x3< f64, highp > highp_f64mat2x3
High double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2204
-
detail::tvec1< i16, highp > highp_i16vec1
High precision 16 bit signed integer scalar type.
Definition: fwd.hpp:440
-
detail::tvec3< u64, highp > highp_u64vec3
High precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1290
-
detail::tmat3x2< f32, highp > highp_fmat3x2
High single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1866
-
highp_i8vec4 i8vec4
Default precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:400
-
detail::tmat4x3< f32, highp > highp_f32mat4x3
High single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2056
-
detail::tvec1< i32, lowp > lowp_i32vec1
Low precision 32 bit signed integer scalar type.
Definition: fwd.hpp:486
-
detail::tmat3x3< f64, lowp > lowp_f64mat3x3
Low double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2102
-
detail::int32 mediump_int32_t
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:204
-
highp_f32mat4x3 f32mat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2467
-
detail::uint16 lowp_uint16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:731
-
highp_f32mat3x4 f32mat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2459
-
mediump_f32mat4x4 mediump_f32mat4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2017
-
detail::tmat3x3< f32, highp > highp_fmat3x3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1870
-
detail::float32 mediump_float32_t
Medium 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1412
-
detail::tvec4< i16, lowp > lowp_i16vec4
Low precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:418
-
detail::int64 mediump_int64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:192
-
detail::tvec4< u8, highp > highp_u8vec4
High precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:976
-
highp_u32vec2 u32vec2
Default precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1154
-
detail::int32 lowp_int32_t
Low precision 32 bit signed integer type.
Definition: fwd.hpp:156
-
detail::float64 lowp_float64_t
Low 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1342
-
highp_f64mat2x3 f64mat2x3
Default double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2550
-
detail::uint16 highp_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:849
-
highp_f32vec4 f32vec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2435
-
detail::tmat4x4< f64, mediump > mediump_f64mat4x4
Medium double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2176
-
f64mat3x3 f64mat3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2586
-
detail::tvec3< i64, mediump > mediump_i64vec3
Medium precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:670
-
detail::uint64 highp_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:841
-
detail::tvec1< float, mediump > mediump_vec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1567
-
detail::tvec4< i32, lowp > lowp_i32vec4
Low precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:498
-
highp_dquat dquat
Quaternion of default double-precision floating-point numbers.
Definition: fwd.hpp:118
-
detail::uint64 highp_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:873
-
detail::uint8 lowp_uint8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:727
-
highp_i16vec3 i16vec3
Default precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:476
-
detail::int16 i16
16 bit signed integer type.
Definition: fwd.hpp:313
-
detail::tvec1< u16, mediump > mediump_u16vec1
Medium precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1026
-
detail::tvec1< u32, lowp > lowp_u32vec1
Low precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1089
-
detail::uint64 lowp_u64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:773
-
detail::uint64 lowp_uint64_t
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:756
-
detail::tvec1< i16, mediump > mediump_i16vec1
Medium precision 16 bit signed integer scalar type.
Definition: fwd.hpp:423
-
detail::tquat< f32, lowp > lowp_f32quat
Low single-precision floating-point quaternion.
Definition: fwd.hpp:2255
-
detail::int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:293
-
detail::tvec1< float, lowp > lowp_vec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1533
-
detail::tvec4< u8, mediump > mediump_u8vec4
Medium precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:959
-
highp_f64vec3 f64vec3
Default double-precision floating-point vector of 3 components.
Definition: fwd.hpp:2538
-
fmat4x4 fmat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2413
-
detail::tmat4x3< f32, lowp > lowp_f32mat4x3
Low single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1939
-
detail::uint16 uint16_t
16 bit unsigned integer type.
Definition: fwd.hpp:899
-
detail::tmat2x3< f64, mediump > mediump_f64mat2x3
Medium double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2148
-
detail::tmat2x2< f32, lowp > lowp_f32mat2x2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1911
-
detail::uint8 lowp_u8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:761
-
detail::tmat3x2< f64, highp > highp_f64mat3x2
High double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2212
-
detail::int8 i8
8 bit signed integer type.
Definition: fwd.hpp:309
-
detail::tvec1< i8, lowp > lowp_i8vec1
Low precision 8 bit signed integer scalar type.
Definition: fwd.hpp:327
-
highp_f32mat4x2 f32mat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2463
-
detail::tmat3x3< f32, lowp > lowp_fmat3x3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1755
-
detail::tmat2x3< f32, mediump > mediump_f32mat2x3
Medium single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1973
-
highp_quat quat
Quaternion of default single-precision floating-point numbers.
Definition: fwd.hpp:69
-
detail::uint32 lowp_uint32_t
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:752
-
mediump_fmat4x4 mediump_fmat4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1844
-
detail::tvec2< f64, mediump > mediump_f64vec2
Medium double-precision floating-point vector of 2 components.
Definition: fwd.hpp:1703
-
detail::int32 int32
32 bit signed integer type.
Definition: type_int.hpp:91
-
highp_i64vec4 i64vec4
Default precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:718
-
detail::tvec3< u16, lowp > lowp_u16vec3
Low precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1017
-
detail::tvec2< u16, highp > highp_u16vec2
High precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1047
-
f64mat4x4 f64mat4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2590
-
highp_f64mat2x4 f64mat2x4
Default double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2554
-
highp_f32mat4x2 fmat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2393
-
detail::tvec1< float, highp > highp_fvec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1617
-
detail::tmat2x2< f32, mediump > mediump_fmat2x2
Medium single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1796
-
highp_f32mat2x2 fmat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2369
-
detail::tmat4x3< f64, lowp > lowp_f64mat4x3
Low double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2114
-
detail::int32 highp_i32
High precision 32 bit signed integer type.
Definition: fwd.hpp:268
-
detail::tvec1< f64, highp > highp_f64vec1
High double-precision floating-point vector of 1 component.
Definition: fwd.hpp:1715
-
fmat2x2 fmat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2405
-
detail::tmat2x2< f32, highp > highp_fmat2x2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1854
-
detail::tquat< float, highp > highp_quat
Quaternion of high single-precision floating-point numbers.
Definition: fwd.hpp:59
-
highp_u64vec2 u64vec2
Default precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1313
-
detail::int64 highp_int64_t
High precision 64 bit signed integer type.
Definition: fwd.hpp:256
-
detail::int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:301
-
detail::tvec1< u8, highp > highp_u8vec1
High precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:964
-
detail::tvec3< u8, lowp > lowp_u8vec3
Low precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:938
-
detail::tmat2x4< f64, highp > highp_f64mat2x4
High double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2208
-
detail::tvec4< f32, mediump > mediump_f32vec4
Medium single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1662
-
lowp_f32mat4x4 lowp_f32mat4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1959
-
detail::tvec3< f32, lowp > lowp_f32vec3
Low single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1642
-
detail::tvec3< u64, mediump > mediump_u64vec3
Medium precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1273
-
highp_f32mat3x2 f32mat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2451
-
detail::tvec4< u32, mediump > mediump_u32vec4
Medium precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1118
-
highp_f64mat4x3 f64mat4x3
Default double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2574
-
float32 highp_f32
High 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1445
-
detail::tmat4x4< f32, lowp > lowp_f32mat4x4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1943
-
detail::int64 lowp_int64_t
Low precision 64 bit signed integer type.
Definition: fwd.hpp:160
-
detail::tquat< f64, mediump > mediump_f64quat
Medium double-precision floating-point quaternion.
Definition: fwd.hpp:2267
-
detail::tvec2< u8, mediump > mediump_u8vec2
Medium precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:951
-
detail::int8 mediump_int8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:180
-
detail::tvec3< i8, lowp > lowp_i8vec3
Low precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:335
-
detail::tvec2< u32, mediump > mediump_u32vec2
Medium precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1110
-
detail::float64 lowp_float64
Low 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1334
-
detail::float32 lowp_float32_t
Low 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1338
-
detail::uint32 highp_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:869
-
detail::tquat< f32, mediump > mediump_f32quat
Medium single-precision floating-point quaternion.
Definition: fwd.hpp:2263
-
highp_u16vec4 u16vec4
Default precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1083
-
detail::int16 lowp_int16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:136
-
detail::uint64 mediump_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:807
-
highp_f32mat3x3 highp_f32mat3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2072
-
highp_u16vec2 u16vec2
Default precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1075
-
detail::uint64 u64
64 bit unsigned integer type.
Definition: fwd.hpp:923
-
detail::tvec1< i32, highp > highp_i32vec1
High precision 32 bit signed integer scalar type.
Definition: fwd.hpp:520
-
f64mat2x2 f64mat2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2582
-
detail::tmat4x2< f32, highp > highp_f32mat4x2
High single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2052
-
lowp_fmat4x4 lowp_fmat4
Low single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1787
-
detail::tmat2x3< f32, highp > highp_f32mat2x3
High single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2032
-
detail::float64 mediump_float64
Medium 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1408
-
detail::tvec1< u64, lowp > lowp_u64vec1
Low precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1248
-
detail::tvec1< u8, mediump > mediump_u8vec1
Medium precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:947
-
lowp_f64mat2x2 lowp_f64mat2
Low double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2126
-
detail::tvec1< i64, lowp > lowp_i64vec1
Low precision 64 bit signed integer scalar type.
Definition: fwd.hpp:645
-
detail::tvec2< i8, lowp > lowp_i8vec2
Low precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:331
-
detail::tvec4< i8, mediump > mediump_i8vec4
Medium precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:356
-
detail::tmat3x2< f64, lowp > lowp_f64mat3x2
Low double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2098
-
mediump_f64mat2x2 mediump_f64mat2
Medium double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2184
-
highp_u64vec4 u64vec4
Default precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1321
-
detail::tquat< double, lowp > lowp_dquat
Quaternion of low double-precision floating-point numbers.
Definition: fwd.hpp:96
-
detail::uint8 mediump_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:811
-
detail::tvec2< u32, highp > highp_u32vec2
High precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1127
-
highp_f32mat4x4 f32mat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2471
-
detail::float64 highp_float64
High 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1433
-
highp_f32mat2x3 fmat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2373
-
detail::tvec4< i8, highp > highp_i8vec4
High precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:373
-
detail::tvec4< f64, highp > highp_f64vec4
High double-precision floating-point vector of 4 components.
Definition: fwd.hpp:1727
-
highp_f32mat4x4 fmat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2401
-
detail::tquat< double, highp > highp_dquat
Quaternion of high double-precision floating-point numbers.
Definition: fwd.hpp:106
-
highp_f32mat4x4 highp_f32mat4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2076
-
detail::tmat3x2< f32, lowp > lowp_fmat3x2
Low single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1751
-
detail::tvec2< f32, lowp > lowp_f32vec2
Low single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1638
-
highp_u8vec2 u8vec2
Default precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:995
-
detail::tvec4< f32, lowp > lowp_f32vec4
Low single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1646
-
detail::tvec3< f32, highp > highp_f32vec3
High single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1674
-
highp_u32vec3 u32vec3
Default precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1158
-
detail::tvec1< f32, mediump > mediump_f32vec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1650
-
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:94
-
detail::int8 lowp_int8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:132
-
detail::tmat3x3< f32, highp > highp_f32mat3x3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2044
-
detail::uint32 mediump_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:819
-
detail::tvec2< i64, mediump > mediump_i64vec2
Medium precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:666
-
detail::uint32 lowp_uint32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:735
-
highp_f64mat2x2 highp_f64mat2
High double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2240
-
detail::int32 lowp_i32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:172
-
detail::tmat3x2< f32, lowp > lowp_f32mat3x2
Low single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1923
-
lowp_f32mat3x3 lowp_f32mat3
Low single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1955
-
detail::uint32 u32
32 bit unsigned integer type.
Definition: fwd.hpp:919
-
highp_i8vec2 i8vec2
Default precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:392
-
detail::tmat4x4< f32, highp > highp_f32mat4x4
High single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2060
-
highp_i32vec3 i32vec3
Default precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:555
-
detail::tmat2x2< f64, mediump > mediump_f64mat2x2
Medium double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2144
-
detail::tmat2x4< f32, lowp > lowp_f32mat2x4
Low single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1919
-
highp_f64mat2x2 f64mat2x2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2546
-
highp_f64mat4x4 highp_f64mat4
High double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2248
-
detail::tmat2x3< f32, lowp > lowp_f32mat2x3
Low single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1915
-
highp_f32vec1 f32vec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2423
-
detail::tmat2x3< f32, highp > highp_fmat2x3
High single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1858
-
detail::tmat4x4< f32, mediump > mediump_fmat4x4
Medium single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:1828
-
detail::tmat4x3< f64, mediump > mediump_f64mat4x3
Medium double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2172
-
detail::tvec3< float, highp > highp_fvec3
High Single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1625
-
detail::tvec3< f64, mediump > mediump_f64vec3
Medium double-precision floating-point vector of 3 components.
Definition: fwd.hpp:1707
-
detail::tvec1< u16, lowp > lowp_u16vec1
Low precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1009
-
highp_f32mat2x4 fmat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2377
-
highp_fmat3x3 highp_fmat3
High single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1898
-
detail::int64 highp_i64
High precision 64 bit signed integer type.
Definition: fwd.hpp:272
-
highp_float64_t float64_t
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1519
-
detail::tmat4x2< f64, highp > highp_f64mat4x2
High double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2224
-
detail::tvec4< f32, highp > highp_f32vec4
High single-precision floating-point vector of 4 components.
Definition: fwd.hpp:1678
-
f32mat3x3 f32mat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2479
-
detail::int8 highp_i8
High precision 8 bit signed integer type.
Definition: fwd.hpp:260
-
detail::tvec4< u64, mediump > mediump_u64vec4
Medium precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1277
-
highp_i8vec3 i8vec3
Default precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:396
-
detail::tvec2< float, highp > highp_vec2
2 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:65
-
detail::int32 mediump_i32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:220
-
detail::tvec2< u64, lowp > lowp_u64vec2
Low precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1252
-
detail::tvec2< i16, highp > highp_i16vec2
High precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:444
-
detail::tvec1< u64, mediump > mediump_u64vec1
Medium precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1265
-
detail::tvec2< float, mediump > mediump_fvec2
Medium Single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1587
-
detail::tmat3x2< f32, highp > highp_f32mat3x2
High single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2040
-
detail::tvec2< i8, highp > highp_i8vec2
High precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:365
-
detail::tmat3x4< f32, lowp > lowp_f32mat3x4
Low single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1931
-
detail::tmat4x4< f64, lowp > lowp_f64mat4x4
Low double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2118
-
highp_f32quat f32quat
Default single-precision floating-point quaternion.
Definition: fwd.hpp:2487
-
highp_u8vec1 u8vec1
Default precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:991
-
detail::uint64 mediump_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:791
-
highp_i32vec1 i32vec1
Default precision 32 bit signed integer scalar type.
Definition: fwd.hpp:547
-
detail::tvec2< float, lowp > lowp_fvec2
Low single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1553
-
detail::tmat2x2< f32, highp > highp_f32mat2x2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2028
-
detail::tvec4< f64, mediump > mediump_f64vec4
Medium double-precision floating-point vector of 4 components.
Definition: fwd.hpp:1711
-
lowp_f32mat2x2 lowp_f32mat2
Low single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:1951
-
highp_u32vec4 u32vec4
Default precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1162
-
detail::uint8 highp_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:861
-
highp_f32mat2x2 f32mat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2439
-
detail::tmat3x2< f32, mediump > mediump_f32mat3x2
Medium single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:1981
-
highp_i32vec4 i32vec4
Default precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:559
-
detail::uint8 mediump_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:779
-
highp_i16vec4 i16vec4
Default precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:480
-
detail::tvec3< f32, mediump > mediump_f32vec3
Medium single-precision floating-point vector of 3 components.
Definition: fwd.hpp:1658
-
highp_float64_t f64
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1527
-
detail::tmat3x4< f32, highp > highp_fmat3x4
High single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1874
-
detail::int8 mediump_i8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:212
-
detail::int64 mediump_i64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:224
-
detail::int16 highp_int16
High precision 16 bit signed integer type.
Definition: fwd.hpp:232
-
highp_f64vec2 f64vec2
Default double-precision floating-point vector of 2 components.
Definition: fwd.hpp:2534
-
mediump_fmat3x3 mediump_fmat3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1840
-
detail::tvec3< f64, highp > highp_f64vec3
High double-precision floating-point vector of 3 components.
Definition: fwd.hpp:1723
-
highp_i8vec1 i8vec1
Default precision 8 bit signed integer scalar type.
Definition: fwd.hpp:388
-
detail::tvec2< float, lowp > lowp_vec2
2 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:79
-
highp_f64mat3x2 f64mat3x2
Default double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2558
-
detail::tmat3x4< f32, mediump > mediump_f32mat3x4
Medium single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1989
-
float64 mediump_f64
Medium 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1424
-
detail::tmat2x3< f32, lowp > lowp_fmat2x3
Low single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1743
-
highp_f32mat2x2 highp_f32mat2
High single-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2068
-
detail::uint32 lowp_u32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:769
-
detail::int16 highp_i16
High precision 16 bit signed integer type.
Definition: fwd.hpp:264
-
detail::int8 highp_int8
High precision 8 bit signed integer type.
Definition: fwd.hpp:228
-
detail::tvec2< i64, highp > highp_i64vec2
High precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:683
-
float32 lowp_f32
Low 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1346
-
detail::tvec4< u16, mediump > mediump_u16vec4
Medium precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1038
-
detail::tvec3< i8, mediump > mediump_i8vec3
Medium precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:352
-
detail::tmat2x3< f32, mediump > mediump_fmat2x3
Medium single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:1800
-
detail::tmat3x4< f64, highp > highp_f64mat3x4
High double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2220
-
detail::tmat4x3< f32, highp > highp_fmat4x3
High single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:1882
-
detail::tvec1< i64, highp > highp_i64vec1
High precision 64 bit signed integer scalar type.
Definition: fwd.hpp:679
-
detail::tmat4x2< f32, mediump > mediump_fmat4x2
Medium single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:1820
-
detail::tvec4< i32, highp > highp_i32vec4
High precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:532
-
detail::tmat2x4< f32, highp > highp_f32mat2x4
High single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2036
-
detail::tmat3x3< f32, mediump > mediump_f32mat3x3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:1985
-
detail::tvec3< i16, mediump > mediump_i16vec3
Medium precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:431
-
mediump_quat mediump_fquat
Quaternion of medium single-precision floating-point numbers.
Definition: fwd.hpp:80
-
highp_u32vec1 u32vec1
Default precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1150
-
detail::tmat3x4< f32, highp > highp_f32mat3x4
High single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2048
-
detail::uint16 u16
16 bit unsigned integer type.
Definition: fwd.hpp:915
-
fmat3x3 fmat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2409
-
detail::tvec1< f64, mediump > mediump_f64vec1
Medium double-precision floating-point vector of 1 component.
Definition: fwd.hpp:1699
-
detail::int16 lowp_i16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:168
-
detail::tmat2x4< f64, lowp > lowp_f64mat2x4
Low double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2094
-
detail::tvec3< i32, highp > highp_i32vec3
High precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:528
-
highp_f32mat2x3 f32mat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2443
-
mediump_f32mat3x3 mediump_f32mat3
Medium single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2013
-
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:95
-
highp_f32vec4 fvec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2365
-
detail::tmat3x4< f32, lowp > lowp_fmat3x4
Low single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:1759
-
detail::tmat4x4< f64, highp > highp_f64mat4x4
High double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2232
-
highp_f64quat f64quat
Default double-precision floating-point quaternion.
Definition: fwd.hpp:2594
-
detail::tvec2< i16, lowp > lowp_i16vec2
Low precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:410
-
detail::tquat< float, lowp > lowp_quat
Quaternion of low single-precision floating-point numbers.
Definition: fwd.hpp:49
-
detail::tvec1< u32, highp > highp_u32vec1
High precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1123
-
detail::tvec4< i32, mediump > mediump_i32vec4
Medium precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:515
-
detail::int8 highp_int8_t
High precision 8 bit signed integer type.
Definition: fwd.hpp:244
-
detail::tvec3< u32, lowp > lowp_u32vec3
Low precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1097
-
highp_f32mat2x4 f32mat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2447
-
f32mat2x2 f32mat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2475
-
detail::tvec2< u16, mediump > mediump_u16vec2
Medium precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1030
-
detail::tvec3< u32, mediump > mediump_u32vec3
Medium precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1114
-
detail::tvec4< float, lowp > lowp_vec4
4 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:294
-
highp_f64vec4 f64vec4
Default double-precision floating-point vector of 4 components.
Definition: fwd.hpp:2542
-
detail::tvec2< float, mediump > mediump_vec2
2 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:72
-
detail::int64 lowp_int64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:144
-
detail::tmat3x3< f64, mediump > mediump_f64mat3x3
Medium double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2160
-
detail::uint64 highp_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:857
-
detail::tquat< double, mediump > mediump_dquat
Quaternion of medium double-precision floating-point numbers.
Definition: fwd.hpp:101
-
detail::tmat2x4< f32, highp > highp_fmat2x4
High single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:1862
-
double float64
Default 64 bit double-precision floating-point scalar.
Definition: type_float.hpp:82
-
detail::tvec2< f32, mediump > mediump_f32vec2
Medium single-precision floating-point vector of 2 components.
Definition: fwd.hpp:1654
-
highp_f32mat3x3 fmat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2385
-
detail::uint8 highp_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:829
-
detail::int8 lowp_i8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:164
-
detail::tmat2x2< f64, highp > highp_f64mat2x2
High double-precision floating-point 1x1 matrix.
Definition: fwd.hpp:2200
-
detail::tvec2< f64, highp > highp_f64vec2
High double-precision floating-point vector of 2 components.
Definition: fwd.hpp:1719
-
detail::tvec3< u16, highp > highp_u16vec3
High precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1051
-
detail::tvec1< float, mediump > mediump_fvec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1583
-
detail::tvec1< f32, lowp > lowp_f32vec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1634
-
detail::tvec4< i16, highp > highp_i16vec4
High precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:452
-
detail::tvec4< i64, highp > highp_i64vec4
High precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:691
-
detail::tvec1< u32, mediump > mediump_u32vec1
Medium precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1106
-
detail::tvec4< i64, mediump > mediump_i64vec4
Medium precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:674
-
detail::tvec2< i32, lowp > lowp_i32vec2
Low precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:490
-
highp_f32mat3x3 f32mat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2455
-
highp_f64mat3x3 f64mat3x3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2562
-
highp_f32mat3x4 fmat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2389
-
detail::tvec4< float, highp > highp_vec4
4 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:282
-
detail::tvec4< u8, lowp > lowp_u8vec4
Low precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:942
-
detail::tmat4x2< f64, lowp > lowp_f64mat4x2
Low double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2110
-
detail::tmat4x2< f64, mediump > mediump_f64mat4x2
Medium double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2168
-
highp_f32mat3x2 fmat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2381
-
detail::int16 mediump_i16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:216
-
highp_i64vec3 i64vec3
Default precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:714
-
detail::uint16 mediump_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:799
-
detail::tvec3< float, mediump > mediump_vec3
3 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:183
-
- - - - diff --git a/3party/glm/doc/api/a00042.html b/3party/glm/doc/api/a00042.html deleted file mode 100755 index 67521fe582..0000000000 --- a/3party/glm/doc/api/a00042.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -GLM: geometric.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
geometric.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file geometric.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00042_source.html b/3party/glm/doc/api/a00042_source.html deleted file mode 100755 index 0a2989c34c..0000000000 --- a/3party/glm/doc/api/a00042_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: geometric.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
geometric.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_GEOMETRIC_INCLUDED
-
30 #define GLM_GEOMETRIC_INCLUDED
-
31 
-
32 #include "detail/func_geometric.hpp"
-
33 
-
34 #endif//GLM_GEOMETRIC_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00043.html b/3party/glm/doc/api/a00043.html deleted file mode 100755 index 66e956ed19..0000000000 --- a/3party/glm/doc/api/a00043.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - -GLM: glm.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
glm.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

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

GLM Core (Dependence)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

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

Definition in file glm.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00043_source.html b/3party/glm/doc/api/a00043_source.html deleted file mode 100755 index a8a518be14..0000000000 --- a/3party/glm/doc/api/a00043_source.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - -GLM: glm.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
glm.hpp
-
-
-Go to the documentation of this file.
1 
-
78 #include "detail/_fixes.hpp"
-
79 
-
80 #ifndef GLM_INCLUDED
-
81 #define GLM_INCLUDED
-
82 
-
83 #include <cmath>
-
84 #include <climits>
-
85 #include <cfloat>
-
86 #include <limits>
-
87 #include <cassert>
-
88 #include "fwd.hpp"
-
89 
-
90 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED))
-
91 # define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED
-
92 # pragma message("GLM: Core library included")
-
93 #endif//GLM_MESSAGE
-
94 
-
95 #include "vec2.hpp"
-
96 #include "vec3.hpp"
-
97 #include "vec4.hpp"
-
98 #include "mat2x2.hpp"
-
99 #include "mat2x3.hpp"
-
100 #include "mat2x4.hpp"
-
101 #include "mat3x2.hpp"
-
102 #include "mat3x3.hpp"
-
103 #include "mat3x4.hpp"
-
104 #include "mat4x2.hpp"
-
105 #include "mat4x3.hpp"
-
106 #include "mat4x4.hpp"
-
107 
-
108 #include "trigonometric.hpp"
-
109 #include "exponential.hpp"
-
110 #include "common.hpp"
-
111 #include "packing.hpp"
-
112 #include "geometric.hpp"
-
113 #include "matrix.hpp"
-
114 #include "vector_relational.hpp"
-
115 #include "integer.hpp"
-
116 
-
117 #endif//GLM_INCLUDED
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
OpenGL Mathematics (glm.g-truc.net)
-
- - - - diff --git a/3party/glm/doc/api/a00044.html b/3party/glm/doc/api/a00044.html deleted file mode 100755 index ac2b351655..0000000000 --- a/3party/glm/doc/api/a00044.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: gradient_paint.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
gradient_paint.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-Functions

template<typename T , precision P>
linearGradient (detail::tvec2< T, P > const &Point0, detail::tvec2< T, P > const &Point1, detail::tvec2< T, P > const &Position)
 
template<typename T , precision P>
radialGradient (detail::tvec2< T, P > const &Center, T const &Radius, detail::tvec2< T, P > const &Focal, detail::tvec2< T, P > const &Position)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_gradient_paint

-
Date
2009-03-06 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_optimum_pow (dependence)
- -

Definition in file gradient_paint.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00044_source.html b/3party/glm/doc/api/a00044_source.html deleted file mode 100755 index f26b6a081b..0000000000 --- a/3party/glm/doc/api/a00044_source.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - -GLM: gradient_paint.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gradient_paint.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_gradient_paint
-
39 #define GLM_GTX_gradient_paint
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 #include "../gtx/optimum_pow.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_gradient_paint extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T, precision P>
- -
58  detail::tvec2<T, P> const & Center,
-
59  T const & Radius,
-
60  detail::tvec2<T, P> const & Focal,
-
61  detail::tvec2<T, P> const & Position);
-
62 
-
65  template <typename T, precision P>
- -
67  detail::tvec2<T, P> const & Point0,
-
68  detail::tvec2<T, P> const & Point1,
-
69  detail::tvec2<T, P> const & Position);
-
70 
-
72 }// namespace glm
-
73 
-
74 #include "gradient_paint.inl"
-
75 
-
76 #endif//GLM_GTX_gradient_paint
-
T radialGradient(detail::tvec2< T, P > const &Center, T const &Radius, detail::tvec2< T, P > const &Focal, detail::tvec2< T, P > const &Position)
Return a color from a radial gradient.
-
T linearGradient(detail::tvec2< T, P > const &Point0, detail::tvec2< T, P > const &Point1, detail::tvec2< T, P > const &Position)
Return a color from a linear gradient.
-
- - - - diff --git a/3party/glm/doc/api/a00045.html b/3party/glm/doc/api/a00045.html deleted file mode 100755 index 350df17fd3..0000000000 --- a/3party/glm/doc/api/a00045.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -GLM: handed_coordinate_space.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
handed_coordinate_space.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_handed_coordinate_space

-
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/3party/glm/doc/api/a00045_source.html b/3party/glm/doc/api/a00045_source.html deleted file mode 100755 index 344184375f..0000000000 --- a/3party/glm/doc/api/a00045_source.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: handed_coordinate_space.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
handed_coordinate_space.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_handed_coordinate_space
-
39 #define GLM_GTX_handed_coordinate_space
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename T, precision P>
-
56  bool rightHanded(
-
57  detail::tvec3<T, P> const & tangent,
-
58  detail::tvec3<T, P> const & binormal,
-
59  detail::tvec3<T, P> const & normal);
-
60 
-
63  template <typename T, precision P>
-
64  bool leftHanded(
-
65  detail::tvec3<T, P> const & tangent,
-
66  detail::tvec3<T, P> const & binormal,
-
67  detail::tvec3<T, P> const & normal);
-
68 
-
70 }// namespace glm
-
71 
-
72 #include "handed_coordinate_space.inl"
-
73 
-
74 #endif//GLM_GTX_handed_coordinate_space
-
bool leftHanded(detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
Return if a trihedron left handed or not.
-
bool rightHanded(detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
Return if a trihedron right handed or not.
-
- - - - diff --git a/3party/glm/doc/api/a00046_source.html b/3party/glm/doc/api/a00046_source.html deleted file mode 100755 index 1ecd183ff5..0000000000 --- a/3party/glm/doc/api/a00046_source.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -GLM: hint.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
hint.hpp
-
-
-
1 
-
29 #ifndef glm_core_type
-
30 #define glm_core_type
-
31 
-
32 namespace glm
-
33 {
-
34  // Use dont_care, nicest and fastest to optimize implementations.
-
35  class dont_care {};
-
36  class nicest {};
-
37  class fastest {};
-
38 }//namespace glm
-
39 
-
40 #endif//glm_core_type
-
- - - - diff --git a/3party/glm/doc/api/a00047.html b/3party/glm/doc/api/a00047.html deleted file mode 100755 index fe93462e8f..0000000000 --- a/3party/glm/doc/api/a00047.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -GLM: inertia.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
inertia.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_inertia

-
Date
2006-04-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
- -

Definition in file inertia.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00047_source.html b/3party/glm/doc/api/a00047_source.html deleted file mode 100755 index f56a94926c..0000000000 --- a/3party/glm/doc/api/a00047_source.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - -GLM: inertia.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
inertia.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_inertia
-
40 #define GLM_GTX_inertia
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_inertia extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
51  /*
-
54 
-
57  template <typename T, precision P>
-
58  detail::tmat3x3<T, P> boxInertia3(
-
59  T const & Mass,
-
60  detail::tvec3<T, P> const & Scale);
-
61 
-
64  template <typename T, precision P>
-
65  detail::tmat4x4<T, P> boxInertia4(
-
66  T const & Mass,
-
67  detail::tvec3<T, P> const & Scale);
-
68 
-
71  template <typename T, precision P>
-
72  detail::tmat3x3<T, P> diskInertia3(
-
73  T const & Mass,
-
74  T const & Radius);
-
75 
-
78  template <typename T, precision P>
-
79  detail::tmat4x4<T, P> diskInertia4(
-
80  T const & Mass,
-
81  T const & Radius);
-
82 
-
85  template <typename T, precision P>
-
86  detail::tmat3x3<T, P> ballInertia3(
-
87  T const & Mass,
-
88  T const & Radius);
-
89 
-
92  template <typename T, precision P>
-
93  detail::tmat4x4<T, P> ballInertia4(
-
94  T const & Mass,
-
95  T const & Radius);
-
96 
-
99  template <typename T, precision P>
-
100  detail::tmat3x3<T, P> sphereInertia3(
-
101  T const & Mass,
-
102  T const & Radius);
-
103 
-
106  template <typename T, precision P>
-
107  detail::tmat4x4<T, P> sphereInertia4(
-
108  T const & Mass,
-
109  T const & Radius);
-
110  */
-
112 }// namespace glm
-
113 
-
114 #include "inertia.inl"
-
115 
-
116 #endif//GLM_GTX_inertia
-
- - - - diff --git a/3party/glm/doc/api/a00048_source.html b/3party/glm/doc/api/a00048_source.html deleted file mode 100755 index 261508556f..0000000000 --- a/3party/glm/doc/api/a00048_source.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - -GLM: int_10_10_10_2.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
int_10_10_10_2.hpp
-
-
-
1 
-
24 #ifndef GLM_GTX_int_10_10_10_2
-
25 #define GLM_GTX_int_10_10_10_2
-
26 
-
27 // Dependency:
-
28 #include "../glm.hpp"
-
29 #include "../gtx/raw_data.hpp"
-
30 
-
31 #if(defined(GLM_MESSAGES))
-
32 # pragma message("GLM: GLM_GTX_int_10_10_10_2 extension is deprecated, include GLM_GTC_packing (glm/gtc/packing.hpp) instead")
-
33 #endif
-
34 
-
35 namespace glm
-
36 {
-
38  GLM_DEPRECATED dword uint10_10_10_2_cast(glm::vec4 const & v);
-
39 
-
40 }//namespace glm
-
41 
-
42 #include "int_10_10_10_2.inl"
-
43 
-
44 #endif//GLM_GTX_int_10_10_10_2
-
detail::uint32 dword
Type for dword numbers.
Definition: raw_data.hpp:63
-
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:398
-
GLM_DEPRECATED dword uint10_10_10_2_cast(glm::vec4 const &v)
Deprecated, use packUnorm3x10_1x2 instead.
-
- - - - diff --git a/3party/glm/doc/api/a00049.html b/3party/glm/doc/api/a00049.html deleted file mode 100755 index fc82dad31f..0000000000 --- a/3party/glm/doc/api/a00049.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - -GLM: integer.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
gtx/integer.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - -

-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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_integer

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

Definition in file gtx/integer.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00049_source.html b/3party/glm/doc/api/a00049_source.html deleted file mode 100755 index 6c5bb31817..0000000000 --- a/3party/glm/doc/api/a00049_source.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - -GLM: integer.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtx/integer.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_integer
-
39 #define GLM_GTX_integer
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_integer extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  int pow(int x, int y);
-
56 
-
59  int sqrt(int x);
-
60 
-
63  template <typename genIUType>
-
64  genIUType log2(genIUType const & x);
-
65 
-
68  unsigned int floor_log2(unsigned int x);
-
69 
-
72  int mod(int x, int y);
-
73 
-
76  template <typename genType>
-
77  genType factorial(genType const & x);
-
78 
-
81  typedef signed int sint;
-
82 
-
85  uint pow(uint x, uint y);
-
86 
-
89  uint sqrt(uint x);
-
90 
-
93  uint mod(uint x, uint y);
-
94 
-
97  uint nlz(uint x);
-
98 
-
100 }//namespace glm
-
101 
-
102 #include "integer.inl"
-
103 
-
104 #endif//GLM_GTX_integer
-
GLM_FUNC_DECL genType sqrt(genType const &x)
Returns the positive square root of x.
-
unsigned int floor_log2(unsigned int x)
Returns the floor log2 of x.
-
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:171
-
signed int sint
32bit signed integer.
Definition: gtx/integer.hpp:81
-
GLM_FUNC_DECL genType mod(genType const &x, genType const &y)
Modulus.
-
GLM_FUNC_DECL genType log2(genType const &x)
Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...
-
genType factorial(genType const &x)
Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...
-
GLM_FUNC_DECL genType pow(genType const &base, genType const &exponent)
Returns &#39;base&#39; raised to the power &#39;exponent&#39;.
-
uint nlz(uint x)
Returns the number of leading zeros.
-
- - - - diff --git a/3party/glm/doc/api/a00050.html b/3party/glm/doc/api/a00050.html deleted file mode 100755 index 223e01e0c6..0000000000 --- a/3party/glm/doc/api/a00050.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -GLM: integer.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
integer.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file integer.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00050_source.html b/3party/glm/doc/api/a00050_source.html deleted file mode 100755 index b92d295ced..0000000000 --- a/3party/glm/doc/api/a00050_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: integer.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
integer.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_INTEGER_INCLUDED
-
30 #define GLM_INTEGER_INCLUDED
-
31 
-
32 #include "detail/func_integer.hpp"
-
33 
-
34 #endif//GLM_INTEGER_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00051.html b/3party/glm/doc/api/a00051.html deleted file mode 100755 index 32f88c8980..0000000000 --- a/3party/glm/doc/api/a00051.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -GLM: intersect.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
intersect.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 
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 intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 
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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_intersect

-
Date
2007-04-03 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_closest_point (dependence)
- -

Definition in file intersect.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00051_source.html b/3party/glm/doc/api/a00051_source.html deleted file mode 100755 index df8fa59645..0000000000 --- a/3party/glm/doc/api/a00051_source.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - -GLM: intersect.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
intersect.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_intersect
-
40 #define GLM_GTX_intersect
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/closest_point.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_closest_point extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
58  template <typename genType>
-
59  bool intersectRayPlane(
-
60  genType const & orig, genType const & dir,
-
61  genType const & planeOrig, genType const & planeNormal,
-
62  typename genType::value_type & intersectionDistance);
-
63 
-
66  template <typename genType>
- -
68  genType const & orig, genType const & dir,
-
69  genType const & vert0, genType const & vert1, genType const & vert2,
-
70  genType & baryPosition);
-
71 
-
74  template <typename genType>
- -
76  genType const & orig, genType const & dir,
-
77  genType const & vert0, genType const & vert1, genType const & vert2,
-
78  genType & position);
-
79 
-
83  template <typename genType>
-
84  bool intersectRaySphere(
-
85  genType const & rayStarting, genType const & rayNormalizedDirection,
-
86  genType const & sphereCenter, typename genType::value_type const sphereRadiusSquered,
-
87  typename genType::value_type & intersectionDistance);
-
88 
-
91  template <typename genType>
-
92  bool intersectRaySphere(
-
93  genType const & rayStarting, genType const & rayNormalizedDirection,
-
94  genType const & sphereCenter, const typename genType::value_type sphereRadius,
-
95  genType & intersectionPosition, genType & intersectionNormal);
-
96 
-
99  template <typename genType>
-
100  bool intersectLineSphere(
-
101  genType const & point0, genType const & point1,
-
102  genType const & sphereCenter, typename genType::value_type sphereRadius,
-
103  genType & intersectionPosition1, genType & intersectionNormal1,
-
104  genType & intersectionPosition2 = genType(), genType & intersectionNormal2 = genType());
-
105 
-
107 }//namespace glm
-
108 
-
109 #include "intersect.inl"
-
110 
-
111 #endif//GLM_GTX_intersect
-
bool 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.
-
bool intersectRayPlane(genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
Compute the intersection of a ray and a triangle.
-
bool intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
Compute the intersection distance of a ray and a sphere.
-
bool intersectLineSphere(genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
Compute the intersection of a line and a sphere.
-
bool 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.
-
- - - - diff --git a/3party/glm/doc/api/a00052_source.html b/3party/glm/doc/api/a00052_source.html deleted file mode 100755 index c7a53107f1..0000000000 --- a/3party/glm/doc/api/a00052_source.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - -GLM: intrinsic_common.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
intrinsic_common.hpp
-
-
-
1 
-
29 #ifndef glm_detail_intrinsic_common
-
30 #define glm_detail_intrinsic_common
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  __m128 sse_abs_ps(__m128 x);
-
42 
-
43  __m128 sse_sgn_ps(__m128 x);
-
44 
-
45  //floor
-
46  __m128 sse_flr_ps(__m128 v);
-
47 
-
48  //trunc
-
49  __m128 sse_trc_ps(__m128 v);
-
50 
-
51  //round
-
52  __m128 sse_nd_ps(__m128 v);
-
53 
-
54  //roundEven
-
55  __m128 sse_rde_ps(__m128 v);
-
56 
-
57  __m128 sse_rnd_ps(__m128 x);
-
58 
-
59  __m128 sse_ceil_ps(__m128 v);
-
60 
-
61  __m128 sse_frc_ps(__m128 x);
-
62 
-
63  __m128 sse_mod_ps(__m128 x, __m128 y);
-
64 
-
65  __m128 sse_modf_ps(__m128 x, __m128i & i);
-
66 
-
67  //GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)
-
68 
-
69  //GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)
-
70 
-
71  __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal);
-
72 
-
73  __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a);
-
74 
-
75  __m128 sse_stp_ps(__m128 edge, __m128 x);
-
76 
-
77  __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x);
-
78 
-
79  __m128 sse_nan_ps(__m128 x);
-
80 
-
81  __m128 sse_inf_ps(__m128 x);
-
82 
-
83 }//namespace detail
-
84 }//namespace glm
-
85 
-
86 #include "intrinsic_common.inl"
-
87 
-
88 #endif//GLM_ARCH
-
89 #endif//glm_detail_intrinsic_common
-
- - - - diff --git a/3party/glm/doc/api/a00053_source.html b/3party/glm/doc/api/a00053_source.html deleted file mode 100755 index 2f65e0690e..0000000000 --- a/3party/glm/doc/api/a00053_source.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - -GLM: intrinsic_exponential.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
intrinsic_exponential.hpp
-
-
-
1 
-
29 #ifndef glm_detail_intrinsic_exponential
-
30 #define glm_detail_intrinsic_exponential
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41 /*
-
42 GLM_FUNC_QUALIFIER __m128 sse_rsqrt_nr_ss(__m128 const x)
-
43 {
-
44  __m128 recip = _mm_rsqrt_ss( x ); // "estimate" opcode
-
45  const static __m128 three = { 3, 3, 3, 3 }; // aligned consts for fast load
-
46  const static __m128 half = { 0.5,0.5,0.5,0.5 };
-
47  __m128 halfrecip = _mm_mul_ss( half, recip );
-
48  __m128 threeminus_xrr = _mm_sub_ss( three, _mm_mul_ss( x, _mm_mul_ss ( recip, recip ) ) );
-
49  return _mm_mul_ss( halfrecip, threeminus_xrr );
-
50 }
-
51 
-
52 GLM_FUNC_QUALIFIER __m128 sse_normalize_fast_ps( float * RESTRICT vOut, float * RESTRICT vIn )
-
53 {
-
54  __m128 x = _mm_load_ss(&vIn[0]);
-
55  __m128 y = _mm_load_ss(&vIn[1]);
-
56  __m128 z = _mm_load_ss(&vIn[2]);
-
57 
-
58  const __m128 l = // compute x*x + y*y + z*z
-
59  _mm_add_ss(
-
60  _mm_add_ss( _mm_mul_ss(x,x),
-
61  _mm_mul_ss(y,y)
-
62  ),
-
63  _mm_mul_ss( z, z )
-
64  );
-
65 
-
66 
-
67  const __m128 rsqt = _mm_rsqrt_nr_ss( l );
-
68  _mm_store_ss( &vOut[0] , _mm_mul_ss( rsqt, x ) );
-
69  _mm_store_ss( &vOut[1] , _mm_mul_ss( rsqt, y ) );
-
70  _mm_store_ss( &vOut[2] , _mm_mul_ss( rsqt, z ) );
-
71 
-
72  return _mm_mul_ss( l , rsqt );
-
73 }
-
74 */
-
75 }//namespace detail
-
76 }//namespace glm
-
77 
-
78 #endif//GLM_ARCH
-
79 #endif//glm_detail_intrinsic_exponential
-
- - - - diff --git a/3party/glm/doc/api/a00054_source.html b/3party/glm/doc/api/a00054_source.html deleted file mode 100755 index 3cfa1ee8a5..0000000000 --- a/3party/glm/doc/api/a00054_source.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - -GLM: intrinsic_geometric.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
intrinsic_geometric.hpp
-
-
-
1 
-
29 #ifndef glm_core_intrinsic_geometric
-
30 #define glm_core_intrinsic_geometric
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 #include "intrinsic_common.hpp"
-
39 
-
40 namespace glm{
-
41 namespace detail
-
42 {
-
43  //length
-
44  __m128 sse_len_ps(__m128 x);
-
45 
-
46  //distance
-
47  __m128 sse_dst_ps(__m128 p0, __m128 p1);
-
48 
-
49  //dot
-
50  __m128 sse_dot_ps(__m128 v1, __m128 v2);
-
51 
-
52  // SSE1
-
53  __m128 sse_dot_ss(__m128 v1, __m128 v2);
-
54 
-
55  //cross
-
56  __m128 sse_xpd_ps(__m128 v1, __m128 v2);
-
57 
-
58  //normalize
-
59  __m128 sse_nrm_ps(__m128 v);
-
60 
-
61  //faceforward
-
62  __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);
-
63 
-
64  //reflect
-
65  __m128 sse_rfe_ps(__m128 I, __m128 N);
-
66 
-
67  //refract
-
68  __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);
-
69 
-
70 }//namespace detail
-
71 }//namespace glm
-
72 
-
73 #include "intrinsic_geometric.inl"
-
74 
-
75 #endif//GLM_ARCH
-
76 #endif//glm_core_intrinsic_geometric
-
- - - - diff --git a/3party/glm/doc/api/a00055_source.html b/3party/glm/doc/api/a00055_source.html deleted file mode 100755 index 4eb3c5a28b..0000000000 --- a/3party/glm/doc/api/a00055_source.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - -GLM: intrinsic_integer.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
intrinsic_integer.hpp
-
-
-
1 
-
29 #ifndef glm_detail_intrinsic_integer
-
30 #define glm_detail_intrinsic_integer
-
31 
-
32 #include "glm/glm.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  __m128i _mm_bit_interleave_si128(__m128i x);
-
42  __m128i _mm_bit_interleave_si128(__m128i x, __m128i y);
-
43 
-
44 }//namespace detail
-
45 }//namespace glm
-
46 
-
47 #include "intrinsic_integer.inl"
-
48 
-
49 #endif//GLM_ARCH
-
50 #endif//glm_detail_intrinsic_integer
-
OpenGL Mathematics (glm.g-truc.net)
-
- - - - diff --git a/3party/glm/doc/api/a00056_source.html b/3party/glm/doc/api/a00056_source.html deleted file mode 100755 index 6168368eeb..0000000000 --- a/3party/glm/doc/api/a00056_source.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - -GLM: intrinsic_matrix.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
intrinsic_matrix.hpp
-
-
-
1 
-
29 #ifndef glm_detail_intrinsic_matrix
-
30 #define glm_detail_intrinsic_matrix
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 #include "intrinsic_geometric.hpp"
-
39 
-
40 namespace glm{
-
41 namespace detail
-
42 {
-
43  void sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
-
44 
-
45  void sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
-
46 
-
47  __m128 sse_mul_ps(__m128 m[4], __m128 v);
-
48 
-
49  __m128 sse_mul_ps(__m128 v, __m128 m[4]);
-
50 
-
51  void sse_mul_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4]);
-
52 
-
53  void sse_transpose_ps(__m128 const in[4], __m128 out[4]);
-
54 
-
55  void sse_inverse_ps(__m128 const in[4], __m128 out[4]);
-
56 
-
57  void sse_rotate_ps(__m128 const in[4], float Angle, float const v[3], __m128 out[4]);
-
58 
-
59  __m128 sse_det_ps(__m128 const m[4]);
-
60 
-
61  __m128 sse_slow_det_ps(__m128 const m[4]);
-
62 
-
63 }//namespace detail
-
64 }//namespace glm
-
65 
-
66 #include "intrinsic_matrix.inl"
-
67 
-
68 #endif//GLM_ARCH
-
69 #endif//glm_detail_intrinsic_matrix
-
- - - - diff --git a/3party/glm/doc/api/a00057_source.html b/3party/glm/doc/api/a00057_source.html deleted file mode 100755 index 2c774b0800..0000000000 --- a/3party/glm/doc/api/a00057_source.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - -GLM: intrinsic_trigonometric.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
intrinsic_trigonometric.hpp
-
-
-
1 
-
29 #ifndef glm_detail_intrinsic_trigonometric
-
30 #define glm_detail_intrinsic_trigonometric
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41 
-
42 }//namespace detail
-
43 }//namespace glm
-
44 
-
45 #include "intrinsic_trigonometric.inl"
-
46 
-
47 #endif//GLM_ARCH
-
48 #endif//glm_detail_intrinsic_trigonometric
-
- - - - diff --git a/3party/glm/doc/api/a00058_source.html b/3party/glm/doc/api/a00058_source.html deleted file mode 100755 index 664447a750..0000000000 --- a/3party/glm/doc/api/a00058_source.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - -GLM: intrinsic_vector_relational.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
intrinsic_vector_relational.hpp
-
-
-
1 
-
29 #ifndef glm_detail_intrinsic_vector_relational
-
30 #define glm_detail_intrinsic_vector_relational
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
-
35 # error "SSE2 instructions not supported or enabled"
-
36 #else
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41 
-
42 }//namespace detail
-
43 }//namespace glm
-
44 
-
45 #include "intrinsic_vector_relational.inl"
-
46 
-
47 #endif//GLM_ARCH
-
48 #endif//glm_detail_intrinsic_vector_relational
-
- - - - diff --git a/3party/glm/doc/api/a00059.html b/3party/glm/doc/api/a00059.html deleted file mode 100755 index e728399712..0000000000 --- a/3party/glm/doc/api/a00059.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -GLM: io.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
io.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_io

-
Date
2013-11-22
-
Author
Jan P Springer (regni.nosp@m.rpsj.nosp@m.@gmai.nosp@m.l.co.nosp@m.m)
-
See Also
GLM Core (dependence)
-
-GLM_GTX_quaternion (dependence)
- -

Definition in file io.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00059_source.html b/3party/glm/doc/api/a00059_source.html deleted file mode 100755 index 7dab719593..0000000000 --- a/3party/glm/doc/api/a00059_source.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - -GLM: io.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
io.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_io
-
40 #define GLM_GTX_io
-
41 
-
42 // Dependency:
-
43 #include "../detail/setup.hpp"
-
44 #include "../gtc/quaternion.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_io extension included")
-
48 #endif
-
49 
-
50 #include <iosfwd> // std::basic_ostream<> (fwd)
-
51 #include <utility> // std::pair<>
-
52 
-
53 namespace glm
-
54 {
-
57 
-
58  namespace io
-
59  {
-
60 
-
61  class precision_guard {
-
62 
-
63  public:
-
64 
-
65  GLM_FUNC_DECL explicit precision_guard();
-
66  GLM_FUNC_DECL ~precision_guard();
-
67 
-
68  private:
-
69 
-
70  unsigned precision_;
-
71  unsigned value_width_;
-
72 
-
73  };
-
74 
-
75  class format_guard
-
76  {
-
77  public:
-
78  enum order_t { column_major, row_major, };
-
79 
-
80  GLM_FUNC_DECL explicit format_guard();
-
81  GLM_FUNC_DECL ~format_guard();
-
82 
-
83  private:
-
84 
-
85  order_t order_;
-
86  char cr_;
-
87  };
-
88 
-
89  // decimal places (dflt: 3)
-
90  GLM_FUNC_DECL unsigned& precision();
-
91 
-
92  // sign + value + '.' + decimals (dflt: 1 + 4 + 1 + precision())
-
93  GLM_FUNC_DECL unsigned& value_width();
-
94 
-
95  // matrix output order (dflt: row_major)
-
96  GLM_FUNC_DECL format_guard::order_t& order();
-
97 
-
98  // carriage/return char (dflt: '\n')
-
99  GLM_FUNC_DECL char& cr();
-
100 
-
101  // matrix output order -> column_major
-
102  GLM_FUNC_DECL std::ios_base& column_major(std::ios_base&);
-
103 
-
104  // matrix output order -> row_major
-
105  GLM_FUNC_DECL std::ios_base& row_major (std::ios_base&);
-
106 
-
107  // carriage/return char -> '\n'
-
108  GLM_FUNC_DECL std::ios_base& formatted (std::ios_base&);
-
109 
-
110  // carriage/return char -> ' '
-
111  GLM_FUNC_DECL std::ios_base& unformatted (std::ios_base&);
-
112 
-
113  }//namespace io
-
114 
-
115  namespace detail
-
116  {
-
117  template <typename CTy, typename CTr, typename T, precision P>
-
118  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tquat<T,P> const&);
-
119  template <typename CTy, typename CTr, typename T, precision P>
-
120  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec2<T,P> const&);
-
121  template <typename CTy, typename CTr, typename T, precision P>
-
122  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec3<T,P> const&);
-
123  template <typename CTy, typename CTr, typename T, precision P>
-
124  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec4<T,P> const&);
-
125  template <typename CTy, typename CTr, typename T, precision P>
-
126  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x2<T,P> const&);
-
127  template <typename CTy, typename CTr, typename T, precision P>
-
128  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x3<T,P> const&);
-
129  template <typename CTy, typename CTr, typename T, precision P>
-
130  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x4<T,P> const&);
-
131  template <typename CTy, typename CTr, typename T, precision P>
-
132  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x2<T,P> const&);
-
133  template <typename CTy, typename CTr, typename T, precision P>
-
134  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x3<T,P> const&);
-
135  template <typename CTy, typename CTr, typename T, precision P>
-
136  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x4<T,P> const&);
-
137  template <typename CTy, typename CTr, typename T, precision P>
-
138  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x2<T,P> const&);
-
139  template <typename CTy, typename CTr, typename T, precision P>
-
140  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x3<T,P> const&);
-
141  template <typename CTy, typename CTr, typename T, precision P>
-
142  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> const&);
-
143 
-
145 }//namespace detail
-
146 }//namespace glm
-
147 
-
148 #include "io.inl"
-
149 
-
150 #endif//GLM_GTX_io
-
- - - - diff --git a/3party/glm/doc/api/a00060.html b/3party/glm/doc/api/a00060.html deleted file mode 100755 index f06987385d..0000000000 --- a/3party/glm/doc/api/a00060.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -GLM: log_base.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
log_base.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_log_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/3party/glm/doc/api/a00060_source.html b/3party/glm/doc/api/a00060_source.html deleted file mode 100755 index 75b7b0fee5..0000000000 --- a/3party/glm/doc/api/a00060_source.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - -GLM: log_base.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
log_base.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_log_base
-
39 #define GLM_GTX_log_base
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_log_base extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename genType>
-
56  genType log(
-
57  genType const & x,
-
58  genType const & base);
-
59 
-
61 }//namespace glm
-
62 
-
63 #include "log_base.inl"
-
64 
-
65 #endif//GLM_GTX_log_base
-
GLM_FUNC_DECL genType log(genType const &x)
Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y...
-
- - - - diff --git a/3party/glm/doc/api/a00061_source.html b/3party/glm/doc/api/a00061_source.html deleted file mode 100755 index 9c9af58c77..0000000000 --- a/3party/glm/doc/api/a00061_source.html +++ /dev/null @@ -1,2373 +0,0 @@ - - - - - - -GLM: man.doxy Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
man.doxy
-
-
-
1 # Doxyfile 1.8.5
-
2 
-
3 # This file describes the settings to be used by the documentation system
-
4 # doxygen (www.doxygen.org) for a project.
-
5 #
-
6 # All text after a double hash (##) is considered a comment and is placed in
-
7 # front of the TAG it is preceding.
-
8 #
-
9 # All text after a single hash (#) is considered a comment and will be ignored.
-
10 # The format is:
-
11 # TAG = value [value, ...]
-
12 # For lists, items can also be appended using:
-
13 # TAG += value [value, ...]
-
14 # Values that contain spaces should be placed between quotes (\" \").
-
15 
-
16 #---------------------------------------------------------------------------
-
17 # Project related configuration options
-
18 #---------------------------------------------------------------------------
-
19 
-
20 # This tag specifies the encoding used for all characters in the config file
-
21 # that follow. The default is UTF-8 which is also the encoding used for all text
-
22 # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-
23 # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-
24 # for the list of possible encodings.
-
25 # The default value is: UTF-8.
-
26 
-
27 DOXYFILE_ENCODING = UTF-8
-
28 
-
29 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
-
30 # double-quotes, unless you are using Doxywizard) that should identify the
-
31 # project for which the documentation is generated. This name is used in the
-
32 # title of most generated pages and in a few other places.
-
33 # The default value is: My Project.
-
34 
-
35 PROJECT_NAME = GLM
-
36 
-
37 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
-
38 # could be handy for archiving the generated documentation or if some version
-
39 # control system is used.
-
40 
-
41 PROJECT_NUMBER = 0.9.5
-
42 
-
43 # Using the PROJECT_BRIEF tag one can provide an optional one line description
-
44 # for a project that appears at the top of each page and should give viewer a
-
45 # quick idea about the purpose of the project. Keep the description short.
-
46 
-
47 PROJECT_BRIEF =
-
48 
-
49 # With the PROJECT_LOGO tag one can specify an logo or icon that is included in
-
50 # the documentation. The maximum height of the logo should not exceed 55 pixels
-
51 # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
-
52 # to the output directory.
-
53 
-
54 PROJECT_LOGO = G:/Repository/glm/doc/logo.png
-
55 
-
56 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
-
57 # into which the generated documentation will be written. If a relative path is
-
58 # entered, it will be relative to the location where doxygen was started. If
-
59 # left blank the current directory will be used.
-
60 
-
61 OUTPUT_DIRECTORY = .
-
62 
-
63 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
-
64 # directories (in 2 levels) under the output directory of each output format and
-
65 # will distribute the generated files over these directories. Enabling this
-
66 # option can be useful when feeding doxygen a huge amount of source files, where
-
67 # putting all generated files in the same directory would otherwise causes
-
68 # performance problems for the file system.
-
69 # The default value is: NO.
-
70 
-
71 CREATE_SUBDIRS = NO
-
72 
-
73 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
-
74 # documentation generated by doxygen is written. Doxygen will use this
-
75 # information to generate all constant output in the proper language.
-
76 # Possible values are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-
-
77 # Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Farsi,
-
78 # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en,
-
79 # Korean, Korean-en, Latvian, Norwegian, Macedonian, Persian, Polish,
-
80 # Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish,
-
81 # Turkish, Ukrainian and Vietnamese.
-
82 # The default value is: English.
-
83 
-
84 OUTPUT_LANGUAGE = English
-
85 
-
86 # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
-
87 # descriptions after the members that are listed in the file and class
-
88 # documentation (similar to Javadoc). Set to NO to disable this.
-
89 # The default value is: YES.
-
90 
-
91 BRIEF_MEMBER_DESC = NO
-
92 
-
93 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
-
94 # description of a member or function before the detailed description
-
95 #
-
96 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-
97 # brief descriptions will be completely suppressed.
-
98 # The default value is: YES.
-
99 
-
100 REPEAT_BRIEF = YES
-
101 
-
102 # This tag implements a quasi-intelligent brief description abbreviator that is
-
103 # used to form the text in various listings. Each string in this list, if found
-
104 # as the leading text of the brief description, will be stripped from the text
-
105 # and the result, after processing the whole list, is used as the annotated
-
106 # text. Otherwise, the brief description is used as-is. If left blank, the
-
107 # following values are used ($name is automatically replaced with the name of
-
108 # the entity):The $name class, The $name widget, The $name file, is, provides,
-
109 # specifies, contains, represents, a, an and the.
-
110 
-
111 ABBREVIATE_BRIEF = "The $name class " \
-
112  "The $name widget " \
-
113  "The $name file " \
-
114  is \
-
115  provides \
-
116  specifies \
-
117  contains \
-
118  represents \
-
119  a \
-
120  an \
-
121  the
-
122 
-
123 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-
124 # doxygen will generate a detailed section even if there is only a brief
-
125 # description.
-
126 # The default value is: NO.
-
127 
-
128 ALWAYS_DETAILED_SEC = NO
-
129 
-
130 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-
131 # inherited members of a class in the documentation of that class as if those
-
132 # members were ordinary class members. Constructors, destructors and assignment
-
133 # operators of the base classes will not be shown.
-
134 # The default value is: NO.
-
135 
-
136 INLINE_INHERITED_MEMB = NO
-
137 
-
138 # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
-
139 # before files name in the file list and in the header files. If set to NO the
-
140 # shortest path that makes the file name unique will be used
-
141 # The default value is: YES.
-
142 
-
143 FULL_PATH_NAMES = NO
-
144 
-
145 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
-
146 # Stripping is only done if one of the specified strings matches the left-hand
-
147 # part of the path. The tag can be used to show relative paths in the file list.
-
148 # If left blank the directory from which doxygen is run is used as the path to
-
149 # strip.
-
150 #
-
151 # Note that you can specify absolute paths here, but also relative paths, which
-
152 # will be relative from the directory where doxygen is started.
-
153 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
-
154 
-
155 STRIP_FROM_PATH = "C:/Documents and Settings/Groove/ "
-
156 
-
157 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
-
158 # path mentioned in the documentation of a class, which tells the reader which
-
159 # header file to include in order to use a class. If left blank only the name of
-
160 # the header file containing the class definition is used. Otherwise one should
-
161 # specify the list of include paths that are normally passed to the compiler
-
162 # using the -I flag.
-
163 
-
164 STRIP_FROM_INC_PATH =
-
165 
-
166 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
-
167 # less readable) file names. This can be useful is your file systems doesn't
-
168 # support long names like on DOS, Mac, or CD-ROM.
-
169 # The default value is: NO.
-
170 
-
171 SHORT_NAMES = YES
-
172 
-
173 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
-
174 # first line (until the first dot) of a Javadoc-style comment as the brief
-
175 # description. If set to NO, the Javadoc-style will behave just like regular Qt-
-
176 # style comments (thus requiring an explicit @brief command for a brief
-
177 # description.)
-
178 # The default value is: NO.
-
179 
-
180 JAVADOC_AUTOBRIEF = YES
-
181 
-
182 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
-
183 # line (until the first dot) of a Qt-style comment as the brief description. If
-
184 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
-
185 # requiring an explicit \brief command for a brief description.)
-
186 # The default value is: NO.
-
187 
-
188 QT_AUTOBRIEF = NO
-
189 
-
190 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
-
191 # multi-line C++ special comment block (i.e. a block of
-
192 # a brief description. This used to be the default behavior. The new default is
-
193 # to treat a multi-line C++ comment block as a detailed description. Set this
-
194 # tag to YES if you prefer the old behavior instead.
-
195 #
-
196 # Note that setting this tag to YES also means that rational rose comments are
-
197 # not recognized any more.
-
198 # The default value is: NO.
-
199 
-
200 MULTILINE_CPP_IS_BRIEF = NO
-
201 
-
202 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
-
203 # documentation from any documented member that it re-implements.
-
204 # The default value is: YES.
-
205 
-
206 INHERIT_DOCS = YES
-
207 
-
208 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
-
209 # new page for each member. If set to NO, the documentation of a member will be
-
210 # part of the file/class/namespace that contains it.
-
211 # The default value is: NO.
-
212 
-
213 SEPARATE_MEMBER_PAGES = NO
-
214 
-
215 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
-
216 # uses this value to replace tabs by spaces in code fragments.
-
217 # Minimum value: 1, maximum value: 16, default value: 4.
-
218 
-
219 TAB_SIZE = 8
-
220 
-
221 # This tag can be used to specify a number of aliases that act as commands in
-
222 # the documentation. An alias has the form:
-
223 # name=value
-
224 # For example adding
-
225 # "sideeffect=@par Side Effects:\n"
-
226 # will allow you to put the command \sideeffect (or @sideeffect) in the
-
227 # documentation, which will result in a user-defined paragraph with heading
-
228 # "Side Effects:". You can put \n's in the value part of an alias to insert
-
229 # newlines.
-
230 
-
231 ALIASES =
-
232 
-
233 # This tag can be used to specify a number of word-keyword mappings (TCL only).
-
234 # A mapping has the form "name=value". For example adding "class=itcl::class"
-
235 # will allow you to use the command class in the itcl::class meaning.
-
236 
-
237 TCL_SUBST =
-
238 
-
239 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-
240 # only. Doxygen will then generate output that is more tailored for C. For
-
241 # instance, some of the names that are used will be different. The list of all
-
242 # members will be omitted, etc.
-
243 # The default value is: NO.
-
244 
-
245 OPTIMIZE_OUTPUT_FOR_C = NO
-
246 
-
247 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
-
248 # Python sources only. Doxygen will then generate output that is more tailored
-
249 # for that language. For instance, namespaces will be presented as packages,
-
250 # qualified scopes will look different, etc.
-
251 # The default value is: NO.
-
252 
-
253 OPTIMIZE_OUTPUT_JAVA = NO
-
254 
-
255 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-
256 # sources. Doxygen will then generate output that is tailored for Fortran.
-
257 # The default value is: NO.
-
258 
-
259 OPTIMIZE_FOR_FORTRAN = NO
-
260 
-
261 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-
262 # sources. Doxygen will then generate output that is tailored for VHDL.
-
263 # The default value is: NO.
-
264 
-
265 OPTIMIZE_OUTPUT_VHDL = NO
-
266 
-
267 # Doxygen selects the parser to use depending on the extension of the files it
-
268 # parses. With this tag you can assign which parser to use for a given
-
269 # extension. Doxygen has a built-in mapping, but you can override or extend it
-
270 # using this tag. The format is ext=language, where ext is a file extension, and
-
271 # language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-
272 # C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make
-
273 # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-
274 # (default is Fortran), use: inc=Fortran f=C.
-
275 #
-
276 # Note For files without extension you can use no_extension as a placeholder.
-
277 #
-
278 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-
279 # the files are not read by doxygen.
-
280 
-
281 EXTENSION_MAPPING =
-
282 
-
283 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
-
284 # according to the Markdown format, which allows for more readable
-
285 # documentation. See http://daringfireball.net/projects/markdown/ for details.
-
286 # The output of markdown processing is further processed by doxygen, so you can
-
287 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
-
288 # case of backward compatibilities issues.
-
289 # The default value is: YES.
-
290 
-
291 MARKDOWN_SUPPORT = YES
-
292 
-
293 # When enabled doxygen tries to link words that correspond to documented
-
294 # classes, or namespaces to their corresponding documentation. Such a link can
-
295 # be prevented in individual cases by by putting a % sign in front of the word
-
296 # or globally by setting AUTOLINK_SUPPORT to NO.
-
297 # The default value is: YES.
-
298 
-
299 AUTOLINK_SUPPORT = YES
-
300 
-
301 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-
302 # to include (a tag file for) the STL sources as input, then you should set this
-
303 # tag to YES in order to let doxygen match functions declarations and
-
304 # definitions whose arguments contain STL classes (e.g. func(std::string);
-
305 # versus func(std::string) {}). This also make the inheritance and collaboration
-
306 # diagrams that involve STL classes more complete and accurate.
-
307 # The default value is: NO.
-
308 
-
309 BUILTIN_STL_SUPPORT = NO
-
310 
-
311 # If you use Microsoft's C++/CLI language, you should set this option to YES to
-
312 # enable parsing support.
-
313 # The default value is: NO.
-
314 
-
315 CPP_CLI_SUPPORT = NO
-
316 
-
317 # Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-
318 # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
-
319 # will parse them like normal C++ but will assume all classes use public instead
-
320 # of private inheritance when no explicit protection keyword is present.
-
321 # The default value is: NO.
-
322 
-
323 SIP_SUPPORT = NO
-
324 
-
325 # For Microsoft's IDL there are propget and propput attributes to indicate
-
326 # getter and setter methods for a property. Setting this option to YES will make
-
327 # doxygen to replace the get and set methods by a property in the documentation.
-
328 # This will only work if the methods are indeed getting or setting a simple
-
329 # type. If this is not the case, or you want to show the methods anyway, you
-
330 # should set this option to NO.
-
331 # The default value is: YES.
-
332 
-
333 IDL_PROPERTY_SUPPORT = YES
-
334 
-
335 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-
336 # tag is set to YES, then doxygen will reuse the documentation of the first
-
337 # member in the group (if any) for the other members of the group. By default
-
338 # all members of a group must be documented explicitly.
-
339 # The default value is: NO.
-
340 
-
341 DISTRIBUTE_GROUP_DOC = NO
-
342 
-
343 # Set the SUBGROUPING tag to YES to allow class member groups of the same type
-
344 # (for instance a group of public functions) to be put as a subgroup of that
-
345 # type (e.g. under the Public Functions section). Set it to NO to prevent
-
346 # subgrouping. Alternatively, this can be done per class using the
-
347 # \nosubgrouping command.
-
348 # The default value is: YES.
-
349 
-
350 SUBGROUPING = NO
-
351 
-
352 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
-
353 # are shown inside the group in which they are included (e.g. using \ingroup)
-
354 # instead of on a separate page (for HTML and Man pages) or section (for LaTeX
-
355 # and RTF).
-
356 #
-
357 # Note that this feature does not work in combination with
-
358 # SEPARATE_MEMBER_PAGES.
-
359 # The default value is: NO.
-
360 
-
361 INLINE_GROUPED_CLASSES = NO
-
362 
-
363 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
-
364 # with only public data fields or simple typedef fields will be shown inline in
-
365 # the documentation of the scope in which they are defined (i.e. file,
-
366 # namespace, or group documentation), provided this scope is documented. If set
-
367 # to NO, structs, classes, and unions are shown on a separate page (for HTML and
-
368 # Man pages) or section (for LaTeX and RTF).
-
369 # The default value is: NO.
-
370 
-
371 INLINE_SIMPLE_STRUCTS = NO
-
372 
-
373 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
-
374 # enum is documented as struct, union, or enum with the name of the typedef. So
-
375 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-
376 # with name TypeT. When disabled the typedef will appear as a member of a file,
-
377 # namespace, or class. And the struct will be named TypeS. This can typically be
-
378 # useful for C code in case the coding convention dictates that all compound
-
379 # types are typedef'ed and only the typedef is referenced, never the tag name.
-
380 # The default value is: NO.
-
381 
-
382 TYPEDEF_HIDES_STRUCT = NO
-
383 
-
384 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
-
385 # cache is used to resolve symbols given their name and scope. Since this can be
-
386 # an expensive process and often the same symbol appears multiple times in the
-
387 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
-
388 # doxygen will become slower. If the cache is too large, memory is wasted. The
-
389 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
-
390 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
-
391 # symbols. At the end of a run doxygen will report the cache usage and suggest
-
392 # the optimal cache size from a speed point of view.
-
393 # Minimum value: 0, maximum value: 9, default value: 0.
-
394 
-
395 LOOKUP_CACHE_SIZE = 0
-
396 
-
397 #---------------------------------------------------------------------------
-
398 # Build related configuration options
-
399 #---------------------------------------------------------------------------
-
400 
-
401 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-
402 # documentation are documented, even if no documentation was available. Private
-
403 # class members and static file members will be hidden unless the
-
404 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
-
405 # Note: This will also disable the warnings about undocumented members that are
-
406 # normally produced when WARNINGS is set to YES.
-
407 # The default value is: NO.
-
408 
-
409 EXTRACT_ALL = NO
-
410 
-
411 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
-
412 # be included in the documentation.
-
413 # The default value is: NO.
-
414 
-
415 EXTRACT_PRIVATE = NO
-
416 
-
417 # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
-
418 # scope will be included in the documentation.
-
419 # The default value is: NO.
-
420 
-
421 EXTRACT_PACKAGE = NO
-
422 
-
423 # If the EXTRACT_STATIC tag is set to YES all static members of a file will be
-
424 # included in the documentation.
-
425 # The default value is: NO.
-
426 
-
427 EXTRACT_STATIC = YES
-
428 
-
429 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
-
430 # locally in source files will be included in the documentation. If set to NO
-
431 # only classes defined in header files are included. Does not have any effect
-
432 # for Java sources.
-
433 # The default value is: YES.
-
434 
-
435 EXTRACT_LOCAL_CLASSES = NO
-
436 
-
437 # This flag is only useful for Objective-C code. When set to YES local methods,
-
438 # which are defined in the implementation section but not in the interface are
-
439 # included in the documentation. If set to NO only methods in the interface are
-
440 # included.
-
441 # The default value is: NO.
-
442 
-
443 EXTRACT_LOCAL_METHODS = NO
-
444 
-
445 # If this flag is set to YES, the members of anonymous namespaces will be
-
446 # extracted and appear in the documentation as a namespace called
-
447 # 'anonymous_namespace{file}', where file will be replaced with the base name of
-
448 # the file that contains the anonymous namespace. By default anonymous namespace
-
449 # are hidden.
-
450 # The default value is: NO.
-
451 
-
452 EXTRACT_ANON_NSPACES = NO
-
453 
-
454 # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
-
455 # undocumented members inside documented classes or files. If set to NO these
-
456 # members will be included in the various overviews, but no documentation
-
457 # section is generated. This option has no effect if EXTRACT_ALL is enabled.
-
458 # The default value is: NO.
-
459 
-
460 HIDE_UNDOC_MEMBERS = YES
-
461 
-
462 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
-
463 # undocumented classes that are normally visible in the class hierarchy. If set
-
464 # to NO these classes will be included in the various overviews. This option has
-
465 # no effect if EXTRACT_ALL is enabled.
-
466 # The default value is: NO.
-
467 
-
468 HIDE_UNDOC_CLASSES = YES
-
469 
-
470 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-
471 # (class|struct|union) declarations. If set to NO these declarations will be
-
472 # included in the documentation.
-
473 # The default value is: NO.
-
474 
-
475 HIDE_FRIEND_COMPOUNDS = YES
-
476 
-
477 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
-
478 # documentation blocks found inside the body of a function. If set to NO these
-
479 # blocks will be appended to the function's detailed documentation block.
-
480 # The default value is: NO.
-
481 
-
482 HIDE_IN_BODY_DOCS = YES
-
483 
-
484 # The INTERNAL_DOCS tag determines if documentation that is typed after a
-
485 # \internal command is included. If the tag is set to NO then the documentation
-
486 # will be excluded. Set it to YES to include the internal documentation.
-
487 # The default value is: NO.
-
488 
-
489 INTERNAL_DOCS = NO
-
490 
-
491 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-
492 # names in lower-case letters. If set to YES upper-case letters are also
-
493 # allowed. This is useful if you have classes or files whose names only differ
-
494 # in case and if your file system supports case sensitive file names. Windows
-
495 # and Mac users are advised to set this option to NO.
-
496 # The default value is: system dependent.
-
497 
-
498 CASE_SENSE_NAMES = YES
-
499 
-
500 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
-
501 # their full class and namespace scopes in the documentation. If set to YES the
-
502 # scope will be hidden.
-
503 # The default value is: NO.
-
504 
-
505 HIDE_SCOPE_NAMES = YES
-
506 
-
507 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
-
508 # the files that are included by a file in the documentation of that file.
-
509 # The default value is: YES.
-
510 
-
511 SHOW_INCLUDE_FILES = NO
-
512 
-
513 # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
-
514 # files with double quotes in the documentation rather than with sharp brackets.
-
515 # The default value is: NO.
-
516 
-
517 FORCE_LOCAL_INCLUDES = NO
-
518 
-
519 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
-
520 # documentation for inline members.
-
521 # The default value is: YES.
-
522 
-
523 INLINE_INFO = NO
-
524 
-
525 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
-
526 # (detailed) documentation of file and class members alphabetically by member
-
527 # name. If set to NO the members will appear in declaration order.
-
528 # The default value is: YES.
-
529 
-
530 SORT_MEMBER_DOCS = YES
-
531 
-
532 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
-
533 # descriptions of file, namespace and class members alphabetically by member
-
534 # name. If set to NO the members will appear in declaration order.
-
535 # The default value is: NO.
-
536 
-
537 SORT_BRIEF_DOCS = YES
-
538 
-
539 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
-
540 # (brief and detailed) documentation of class members so that constructors and
-
541 # destructors are listed first. If set to NO the constructors will appear in the
-
542 # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
-
543 # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
-
544 # member documentation.
-
545 # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
-
546 # detailed member documentation.
-
547 # The default value is: NO.
-
548 
-
549 SORT_MEMBERS_CTORS_1ST = NO
-
550 
-
551 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
-
552 # of group names into alphabetical order. If set to NO the group names will
-
553 # appear in their defined order.
-
554 # The default value is: NO.
-
555 
-
556 SORT_GROUP_NAMES = NO
-
557 
-
558 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
-
559 # fully-qualified names, including namespaces. If set to NO, the class list will
-
560 # be sorted only by class name, not including the namespace part.
-
561 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-
562 # Note: This option applies only to the class list, not to the alphabetical
-
563 # list.
-
564 # The default value is: NO.
-
565 
-
566 SORT_BY_SCOPE_NAME = YES
-
567 
-
568 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
-
569 # type resolution of all parameters of a function it will reject a match between
-
570 # the prototype and the implementation of a member function even if there is
-
571 # only one candidate or it is obvious which candidate to choose by doing a
-
572 # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
-
573 # accept a match between prototype and implementation in such cases.
-
574 # The default value is: NO.
-
575 
-
576 STRICT_PROTO_MATCHING = NO
-
577 
-
578 # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
-
579 # todo list. This list is created by putting \todo commands in the
-
580 # documentation.
-
581 # The default value is: YES.
-
582 
-
583 GENERATE_TODOLIST = YES
-
584 
-
585 # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
-
586 # test list. This list is created by putting \test commands in the
-
587 # documentation.
-
588 # The default value is: YES.
-
589 
-
590 GENERATE_TESTLIST = YES
-
591 
-
592 # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
-
593 # list. This list is created by putting \bug commands in the documentation.
-
594 # The default value is: YES.
-
595 
-
596 GENERATE_BUGLIST = YES
-
597 
-
598 # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
-
599 # the deprecated list. This list is created by putting \deprecated commands in
-
600 # the documentation.
-
601 # The default value is: YES.
-
602 
-
603 GENERATE_DEPRECATEDLIST= YES
-
604 
-
605 # The ENABLED_SECTIONS tag can be used to enable conditional documentation
-
606 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
-
607 # ... \endcond blocks.
-
608 
-
609 ENABLED_SECTIONS =
-
610 
-
611 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
-
612 # initial value of a variable or macro / define can have for it to appear in the
-
613 # documentation. If the initializer consists of more lines than specified here
-
614 # it will be hidden. Use a value of 0 to hide initializers completely. The
-
615 # appearance of the value of individual variables and macros / defines can be
-
616 # controlled using \showinitializer or \hideinitializer command in the
-
617 # documentation regardless of this setting.
-
618 # Minimum value: 0, maximum value: 10000, default value: 30.
-
619 
-
620 MAX_INITIALIZER_LINES = 30
-
621 
-
622 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
-
623 # the bottom of the documentation of classes and structs. If set to YES the list
-
624 # will mention the files that were used to generate the documentation.
-
625 # The default value is: YES.
-
626 
-
627 SHOW_USED_FILES = NO
-
628 
-
629 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
-
630 # will remove the Files entry from the Quick Index and from the Folder Tree View
-
631 # (if specified).
-
632 # The default value is: YES.
-
633 
-
634 SHOW_FILES = YES
-
635 
-
636 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
-
637 # page. This will remove the Namespaces entry from the Quick Index and from the
-
638 # Folder Tree View (if specified).
-
639 # The default value is: YES.
-
640 
-
641 SHOW_NAMESPACES = YES
-
642 
-
643 # The FILE_VERSION_FILTER tag can be used to specify a program or script that
-
644 # doxygen should invoke to get the current version for each file (typically from
-
645 # the version control system). Doxygen will invoke the program by executing (via
-
646 # popen()) the command command input-file, where command is the value of the
-
647 # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
-
648 # by doxygen. Whatever the program writes to standard output is used as the file
-
649 # version. For an example see the documentation.
-
650 
-
651 FILE_VERSION_FILTER =
-
652 
-
653 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-
654 # by doxygen. The layout file controls the global structure of the generated
-
655 # output files in an output format independent way. To create the layout file
-
656 # that represents doxygen's defaults, run doxygen with the -l option. You can
-
657 # optionally specify a file name after the option, if omitted DoxygenLayout.xml
-
658 # will be used as the name of the layout file.
-
659 #
-
660 # Note that if you run doxygen from a directory containing a file called
-
661 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
-
662 # tag is left empty.
-
663 
-
664 LAYOUT_FILE =
-
665 
-
666 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
-
667 # the reference definitions. This must be a list of .bib files. The .bib
-
668 # extension is automatically appended if omitted. This requires the bibtex tool
-
669 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
-
670 # For LaTeX the style of the bibliography can be controlled using
-
671 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
-
672 # search path. Do not use file names with spaces, bibtex cannot handle them. See
-
673 # also \cite for info how to create references.
-
674 
-
675 CITE_BIB_FILES =
-
676 
-
677 #---------------------------------------------------------------------------
-
678 # Configuration options related to warning and progress messages
-
679 #---------------------------------------------------------------------------
-
680 
-
681 # The QUIET tag can be used to turn on/off the messages that are generated to
-
682 # standard output by doxygen. If QUIET is set to YES this implies that the
-
683 # messages are off.
-
684 # The default value is: NO.
-
685 
-
686 QUIET = NO
-
687 
-
688 # The WARNINGS tag can be used to turn on/off the warning messages that are
-
689 # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
-
690 # this implies that the warnings are on.
-
691 #
-
692 # Tip: Turn warnings on while writing the documentation.
-
693 # The default value is: YES.
-
694 
-
695 WARNINGS = YES
-
696 
-
697 # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
-
698 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
-
699 # will automatically be disabled.
-
700 # The default value is: YES.
-
701 
-
702 WARN_IF_UNDOCUMENTED = YES
-
703 
-
704 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
-
705 # potential errors in the documentation, such as not documenting some parameters
-
706 # in a documented function, or documenting parameters that don't exist or using
-
707 # markup commands wrongly.
-
708 # The default value is: YES.
-
709 
-
710 WARN_IF_DOC_ERROR = YES
-
711 
-
712 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
-
713 # are documented, but have no documentation for their parameters or return
-
714 # value. If set to NO doxygen will only warn about wrong or incomplete parameter
-
715 # documentation, but not about the absence of documentation.
-
716 # The default value is: NO.
-
717 
-
718 WARN_NO_PARAMDOC = NO
-
719 
-
720 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
-
721 # can produce. The string should contain the $file, $line, and $text tags, which
-
722 # will be replaced by the file and line number from which the warning originated
-
723 # and the warning text. Optionally the format may contain $version, which will
-
724 # be replaced by the version of the file (if it could be obtained via
-
725 # FILE_VERSION_FILTER)
-
726 # The default value is: $file:$line: $text.
-
727 
-
728 WARN_FORMAT = "$file:$line: $text"
-
729 
-
730 # The WARN_LOGFILE tag can be used to specify a file to which warning and error
-
731 # messages should be written. If left blank the output is written to standard
-
732 # error (stderr).
-
733 
-
734 WARN_LOGFILE =
-
735 
-
736 #---------------------------------------------------------------------------
-
737 # Configuration options related to the input files
-
738 #---------------------------------------------------------------------------
-
739 
-
740 # The INPUT tag is used to specify the files and/or directories that contain
-
741 # documented source files. You may enter file names like myfile.cpp or
-
742 # directories like /usr/src/myproject. Separate the files or directories with
-
743 # spaces.
-
744 # Note: If this tag is empty the current directory is searched.
-
745 
-
746 INPUT = ../glm \
-
747  .
-
748 
-
749 # This tag can be used to specify the character encoding of the source files
-
750 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
-
751 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-
752 # documentation (see: http://www.gnu.org/software/libiconv) for the list of
-
753 # possible encodings.
-
754 # The default value is: UTF-8.
-
755 
-
756 INPUT_ENCODING = UTF-8
-
757 
-
758 # If the value of the INPUT tag contains directories, you can use the
-
759 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
-
760 # *.h) to filter out the source-files in the directories. If left blank the
-
761 # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
-
762 # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
-
763 # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-
764 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-
765 # *.qsf, *.as and *.js.
-
766 
-
767 FILE_PATTERNS = *.hpp \
-
768  *.doxy
-
769 
-
770 # The RECURSIVE tag can be used to specify whether or not subdirectories should
-
771 # be searched for input files as well.
-
772 # The default value is: NO.
-
773 
-
774 RECURSIVE = YES
-
775 
-
776 # The EXCLUDE tag can be used to specify files and/or directories that should be
-
777 # excluded from the INPUT source files. This way you can easily exclude a
-
778 # subdirectory from a directory tree whose root is specified with the INPUT tag.
-
779 #
-
780 # Note that relative paths are relative to the directory from which doxygen is
-
781 # run.
-
782 
-
783 EXCLUDE =
-
784 
-
785 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-
786 # directories that are symbolic links (a Unix file system feature) are excluded
-
787 # from the input.
-
788 # The default value is: NO.
-
789 
-
790 EXCLUDE_SYMLINKS = NO
-
791 
-
792 # If the value of the INPUT tag contains directories, you can use the
-
793 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-
794 # certain files from those directories.
-
795 #
-
796 # Note that the wildcards are matched against the file with absolute path, so to
-
797 # exclude all test directories for example use the pattern */test/*
-
798 
-
799 EXCLUDE_PATTERNS =
-
800 
-
801 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-
802 # (namespaces, classes, functions, etc.) that should be excluded from the
-
803 # output. The symbol name can be a fully qualified name, a word, or if the
-
804 # wildcard * is used, a substring. Examples: ANamespace, AClass,
-
805 # AClass::ANamespace, ANamespace::*Test
-
806 #
-
807 # Note that the wildcards are matched against the file with absolute path, so to
-
808 # exclude all test directories use the pattern */test/*
-
809 
-
810 EXCLUDE_SYMBOLS =
-
811 
-
812 # The EXAMPLE_PATH tag can be used to specify one or more files or directories
-
813 # that contain example code fragments that are included (see the \include
-
814 # command).
-
815 
-
816 EXAMPLE_PATH =
-
817 
-
818 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
-
819 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
-
820 # *.h) to filter out the source-files in the directories. If left blank all
-
821 # files are included.
-
822 
-
823 EXAMPLE_PATTERNS = *
-
824 
-
825 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-
826 # searched for input files to be used with the \include or \dontinclude commands
-
827 # irrespective of the value of the RECURSIVE tag.
-
828 # The default value is: NO.
-
829 
-
830 EXAMPLE_RECURSIVE = NO
-
831 
-
832 # The IMAGE_PATH tag can be used to specify one or more files or directories
-
833 # that contain images that are to be included in the documentation (see the
-
834 # \image command).
-
835 
-
836 IMAGE_PATH =
-
837 
-
838 # The INPUT_FILTER tag can be used to specify a program that doxygen should
-
839 # invoke to filter for each input file. Doxygen will invoke the filter program
-
840 # by executing (via popen()) the command:
-
841 #
-
842 # <filter> <input-file>
-
843 #
-
844 # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
-
845 # name of an input file. Doxygen will then use the output that the filter
-
846 # program writes to standard output. If FILTER_PATTERNS is specified, this tag
-
847 # will be ignored.
-
848 #
-
849 # Note that the filter must not add or remove lines; it is applied before the
-
850 # code is scanned, but not when the output code is generated. If lines are added
-
851 # or removed, the anchors will not be placed correctly.
-
852 
-
853 INPUT_FILTER =
-
854 
-
855 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-
856 # basis. Doxygen will compare the file name with each pattern and apply the
-
857 # filter if there is a match. The filters are a list of the form: pattern=filter
-
858 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
-
859 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
-
860 # patterns match the file name, INPUT_FILTER is applied.
-
861 
-
862 FILTER_PATTERNS =
-
863 
-
864 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-
865 # INPUT_FILTER ) will also be used to filter the input files that are used for
-
866 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
867 # The default value is: NO.
-
868 
-
869 FILTER_SOURCE_FILES = NO
-
870 
-
871 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-
872 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
-
873 # it is also possible to disable source filtering for a specific pattern using
-
874 # *.ext= (so without naming a filter).
-
875 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
-
876 
-
877 FILTER_SOURCE_PATTERNS =
-
878 
-
879 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
-
880 # is part of the input, its contents will be placed on the main page
-
881 # (index.html). This can be useful if you have a project on for instance GitHub
-
882 # and want to reuse the introduction page also for the doxygen output.
-
883 
-
884 USE_MDFILE_AS_MAINPAGE =
-
885 
-
886 #---------------------------------------------------------------------------
-
887 # Configuration options related to source browsing
-
888 #---------------------------------------------------------------------------
-
889 
-
890 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be
-
891 # generated. Documented entities will be cross-referenced with these sources.
-
892 #
-
893 # Note: To get rid of all source code in the generated output, make sure that
-
894 # also VERBATIM_HEADERS is set to NO.
-
895 # The default value is: NO.
-
896 
-
897 SOURCE_BROWSER = YES
-
898 
-
899 # Setting the INLINE_SOURCES tag to YES will include the body of functions,
-
900 # classes and enums directly into the documentation.
-
901 # The default value is: NO.
-
902 
-
903 INLINE_SOURCES = NO
-
904 
-
905 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
-
906 # special comment blocks from generated source code fragments. Normal C, C++ and
-
907 # Fortran comments will always remain visible.
-
908 # The default value is: YES.
-
909 
-
910 STRIP_CODE_COMMENTS = YES
-
911 
-
912 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-
913 # function all documented functions referencing it will be listed.
-
914 # The default value is: NO.
-
915 
-
916 REFERENCED_BY_RELATION = YES
-
917 
-
918 # If the REFERENCES_RELATION tag is set to YES then for each documented function
-
919 # all documented entities called/used by that function will be listed.
-
920 # The default value is: NO.
-
921 
-
922 REFERENCES_RELATION = YES
-
923 
-
924 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
-
925 # to YES, then the hyperlinks from functions in REFERENCES_RELATION and
-
926 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
-
927 # link to the documentation.
-
928 # The default value is: YES.
-
929 
-
930 REFERENCES_LINK_SOURCE = YES
-
931 
-
932 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
-
933 # source code will show a tooltip with additional information such as prototype,
-
934 # brief description and links to the definition and documentation. Since this
-
935 # will make the HTML file larger and loading of large files a bit slower, you
-
936 # can opt to disable this feature.
-
937 # The default value is: YES.
-
938 # This tag requires that the tag SOURCE_BROWSER is set to YES.
-
939 
-
940 SOURCE_TOOLTIPS = YES
-
941 
-
942 # If the USE_HTAGS tag is set to YES then the references to source code will
-
943 # point to the HTML generated by the htags(1) tool instead of doxygen built-in
-
944 # source browser. The htags tool is part of GNU's global source tagging system
-
945 # (see http://www.gnu.org/software/global/global.html). You will need version
-
946 # 4.8.6 or higher.
-
947 #
-
948 # To use it do the following:
-
949 # - Install the latest version of global
-
950 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file
-
951 # - Make sure the INPUT points to the root of the source tree
-
952 # - Run doxygen as normal
-
953 #
-
954 # Doxygen will invoke htags (and that will in turn invoke gtags), so these
-
955 # tools must be available from the command line (i.e. in the search path).
-
956 #
-
957 # The result: instead of the source browser generated by doxygen, the links to
-
958 # source code will now point to the output of htags.
-
959 # The default value is: NO.
-
960 # This tag requires that the tag SOURCE_BROWSER is set to YES.
-
961 
-
962 USE_HTAGS = NO
-
963 
-
964 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
-
965 # verbatim copy of the header file for each class for which an include is
-
966 # specified. Set to NO to disable this.
-
967 # See also: Section \class.
-
968 # The default value is: YES.
-
969 
-
970 VERBATIM_HEADERS = YES
-
971 
-
972 # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
-
973 # clang parser (see: http://clang.llvm.org/) for more acurate parsing at the
-
974 # cost of reduced performance. This can be particularly helpful with template
-
975 # rich C++ code for which doxygen's built-in parser lacks the necessary type
-
976 # information.
-
977 # Note: The availability of this option depends on whether or not doxygen was
-
978 # compiled with the --with-libclang option.
-
979 # The default value is: NO.
-
980 
-
981 CLANG_ASSISTED_PARSING = NO
-
982 
-
983 # If clang assisted parsing is enabled you can provide the compiler with command
-
984 # line options that you would normally use when invoking the compiler. Note that
-
985 # the include paths will already be set by doxygen for the files and directories
-
986 # specified with INPUT and INCLUDE_PATH.
-
987 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
-
988 
-
989 CLANG_OPTIONS =
-
990 
-
991 #---------------------------------------------------------------------------
-
992 # Configuration options related to the alphabetical class index
-
993 #---------------------------------------------------------------------------
-
994 
-
995 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
-
996 # compounds will be generated. Enable this if the project contains a lot of
-
997 # classes, structs, unions or interfaces.
-
998 # The default value is: YES.
-
999 
-
1000 ALPHABETICAL_INDEX = NO
-
1001 
-
1002 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-
1003 # which the alphabetical index list will be split.
-
1004 # Minimum value: 1, maximum value: 20, default value: 5.
-
1005 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
1006 
-
1007 COLS_IN_ALPHA_INDEX = 5
-
1008 
-
1009 # In case all classes in a project start with a common prefix, all classes will
-
1010 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
-
1011 # can be used to specify a prefix (or a list of prefixes) that should be ignored
-
1012 # while generating the index headers.
-
1013 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
1014 
-
1015 IGNORE_PREFIX =
-
1016 
-
1017 #---------------------------------------------------------------------------
-
1018 # Configuration options related to the HTML output
-
1019 #---------------------------------------------------------------------------
-
1020 
-
1021 # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
-
1022 # The default value is: YES.
-
1023 
-
1024 GENERATE_HTML = YES
-
1025 
-
1026 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
-
1027 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1028 # it.
-
1029 # The default directory is: html.
-
1030 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1031 
-
1032 HTML_OUTPUT = html
-
1033 
-
1034 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
-
1035 # generated HTML page (for example: .htm, .php, .asp).
-
1036 # The default value is: .html.
-
1037 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1038 
-
1039 HTML_FILE_EXTENSION = .html
-
1040 
-
1041 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for
-
1042 # each generated HTML page. If the tag is left blank doxygen will generate a
-
1043 # standard header.
-
1044 #
-
1045 # To get valid HTML the header file that includes any scripts and style sheets
-
1046 # that doxygen needs, which is dependent on the configuration options used (e.g.
-
1047 # the setting GENERATE_TREEVIEW). It is highly recommended to start with a
-
1048 # default header using
-
1049 # doxygen -w html new_header.html new_footer.html new_stylesheet.css
-
1050 # YourConfigFile
-
1051 # and then modify the file new_header.html. See also section "Doxygen usage"
-
1052 # for information on how to generate the default header that doxygen normally
-
1053 # uses.
-
1054 # Note: The header is subject to change so you typically have to regenerate the
-
1055 # default header when upgrading to a newer version of doxygen. For a description
-
1056 # of the possible markers and block names see the documentation.
-
1057 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1058 
-
1059 HTML_HEADER =
-
1060 
-
1061 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
-
1062 # generated HTML page. If the tag is left blank doxygen will generate a standard
-
1063 # footer. See HTML_HEADER for more information on how to generate a default
-
1064 # footer and what special commands can be used inside the footer. See also
-
1065 # section "Doxygen usage" for information on how to generate the default footer
-
1066 # that doxygen normally uses.
-
1067 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1068 
-
1069 HTML_FOOTER =
-
1070 
-
1071 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
-
1072 # sheet that is used by each HTML page. It can be used to fine-tune the look of
-
1073 # the HTML output. If left blank doxygen will generate a default style sheet.
-
1074 # See also section "Doxygen usage" for information on how to generate the style
-
1075 # sheet that doxygen normally uses.
-
1076 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
-
1077 # it is more robust and this tag (HTML_STYLESHEET) will in the future become
-
1078 # obsolete.
-
1079 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1080 
-
1081 HTML_STYLESHEET =
-
1082 
-
1083 # The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user-
-
1084 # defined cascading style sheet that is included after the standard style sheets
-
1085 # created by doxygen. Using this option one can overrule certain style aspects.
-
1086 # This is preferred over using HTML_STYLESHEET since it does not replace the
-
1087 # standard style sheet and is therefor more robust against future updates.
-
1088 # Doxygen will copy the style sheet file to the output directory. For an example
-
1089 # see the documentation.
-
1090 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1091 
-
1092 HTML_EXTRA_STYLESHEET =
-
1093 
-
1094 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-
1095 # other source files which should be copied to the HTML output directory. Note
-
1096 # that these files will be copied to the base HTML output directory. Use the
-
1097 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-
1098 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the
-
1099 # files will be copied as-is; there are no commands or markers available.
-
1100 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1101 
-
1102 HTML_EXTRA_FILES =
-
1103 
-
1104 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
-
1105 # will adjust the colors in the stylesheet and background images according to
-
1106 # this color. Hue is specified as an angle on a colorwheel, see
-
1107 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value
-
1108 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
-
1109 # purple, and 360 is red again.
-
1110 # Minimum value: 0, maximum value: 359, default value: 220.
-
1111 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1112 
-
1113 HTML_COLORSTYLE_HUE = 220
-
1114 
-
1115 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
-
1116 # in the HTML output. For a value of 0 the output will use grayscales only. A
-
1117 # value of 255 will produce the most vivid colors.
-
1118 # Minimum value: 0, maximum value: 255, default value: 100.
-
1119 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1120 
-
1121 HTML_COLORSTYLE_SAT = 100
-
1122 
-
1123 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
-
1124 # luminance component of the colors in the HTML output. Values below 100
-
1125 # gradually make the output lighter, whereas values above 100 make the output
-
1126 # darker. The value divided by 100 is the actual gamma applied, so 80 represents
-
1127 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
-
1128 # change the gamma.
-
1129 # Minimum value: 40, maximum value: 240, default value: 80.
-
1130 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1131 
-
1132 HTML_COLORSTYLE_GAMMA = 80
-
1133 
-
1134 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-
1135 # page will contain the date and time when the page was generated. Setting this
-
1136 # to NO can help when comparing the output of multiple runs.
-
1137 # The default value is: YES.
-
1138 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1139 
-
1140 HTML_TIMESTAMP = NO
-
1141 
-
1142 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-
1143 # documentation will contain sections that can be hidden and shown after the
-
1144 # page has loaded.
-
1145 # The default value is: NO.
-
1146 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1147 
-
1148 HTML_DYNAMIC_SECTIONS = NO
-
1149 
-
1150 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
-
1151 # shown in the various tree structured indices initially; the user can expand
-
1152 # and collapse entries dynamically later on. Doxygen will expand the tree to
-
1153 # such a level that at most the specified number of entries are visible (unless
-
1154 # a fully collapsed tree already exceeds this amount). So setting the number of
-
1155 # entries 1 will produce a full collapsed tree by default. 0 is a special value
-
1156 # representing an infinite number of entries and will result in a full expanded
-
1157 # tree by default.
-
1158 # Minimum value: 0, maximum value: 9999, default value: 100.
-
1159 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1160 
-
1161 HTML_INDEX_NUM_ENTRIES = 100
-
1162 
-
1163 # If the GENERATE_DOCSET tag is set to YES, additional index files will be
-
1164 # generated that can be used as input for Apple's Xcode 3 integrated development
-
1165 # environment (see: http://developer.apple.com/tools/xcode/), introduced with
-
1166 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-
1167 # Makefile in the HTML output directory. Running make will produce the docset in
-
1168 # that directory and running make install will install the docset in
-
1169 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-
1170 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-
1171 # for more information.
-
1172 # The default value is: NO.
-
1173 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1174 
-
1175 GENERATE_DOCSET = NO
-
1176 
-
1177 # This tag determines the name of the docset feed. A documentation feed provides
-
1178 # an umbrella under which multiple documentation sets from a single provider
-
1179 # (such as a company or product suite) can be grouped.
-
1180 # The default value is: Doxygen generated docs.
-
1181 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1182 
-
1183 DOCSET_FEEDNAME = "Doxygen generated docs"
-
1184 
-
1185 # This tag specifies a string that should uniquely identify the documentation
-
1186 # set bundle. This should be a reverse domain-name style string, e.g.
-
1187 # com.mycompany.MyDocSet. Doxygen will append .docset to the name.
-
1188 # The default value is: org.doxygen.Project.
-
1189 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1190 
-
1191 DOCSET_BUNDLE_ID = org.doxygen.Project
-
1192 
-
1193 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
-
1194 # the documentation publisher. This should be a reverse domain-name style
-
1195 # string, e.g. com.mycompany.MyDocSet.documentation.
-
1196 # The default value is: org.doxygen.Publisher.
-
1197 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1198 
-
1199 DOCSET_PUBLISHER_ID = org.doxygen.Publisher
-
1200 
-
1201 # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-
1202 # The default value is: Publisher.
-
1203 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1204 
-
1205 DOCSET_PUBLISHER_NAME = Publisher
-
1206 
-
1207 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
-
1208 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
-
1209 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-
1210 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-
1211 # Windows.
-
1212 #
-
1213 # The HTML Help Workshop contains a compiler that can convert all HTML output
-
1214 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
-
1215 # files are now used as the Windows 98 help format, and will replace the old
-
1216 # Windows help format (.hlp) on all Windows platforms in the future. Compressed
-
1217 # HTML files also contain an index, a table of contents, and you can search for
-
1218 # words in the documentation. The HTML workshop also contains a viewer for
-
1219 # compressed HTML files.
-
1220 # The default value is: NO.
-
1221 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1222 
-
1223 GENERATE_HTMLHELP = NO
-
1224 
-
1225 # The CHM_FILE tag can be used to specify the file name of the resulting .chm
-
1226 # file. You can add a path in front of the file if the result should not be
-
1227 # written to the html output directory.
-
1228 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1229 
-
1230 CHM_FILE =
-
1231 
-
1232 # The HHC_LOCATION tag can be used to specify the location (absolute path
-
1233 # including file name) of the HTML help compiler ( hhc.exe). If non-empty
-
1234 # doxygen will try to run the HTML help compiler on the generated index.hhp.
-
1235 # The file has to be specified with full path.
-
1236 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1237 
-
1238 HHC_LOCATION =
-
1239 
-
1240 # The GENERATE_CHI flag controls if a separate .chi index file is generated (
-
1241 # YES) or that it should be included in the master .chm file ( NO).
-
1242 # The default value is: NO.
-
1243 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1244 
-
1245 GENERATE_CHI = NO
-
1246 
-
1247 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
-
1248 # and project file content.
-
1249 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1250 
-
1251 CHM_INDEX_ENCODING =
-
1252 
-
1253 # The BINARY_TOC flag controls whether a binary table of contents is generated (
-
1254 # YES) or a normal table of contents ( NO) in the .chm file.
-
1255 # The default value is: NO.
-
1256 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1257 
-
1258 BINARY_TOC = NO
-
1259 
-
1260 # The TOC_EXPAND flag can be set to YES to add extra items for group members to
-
1261 # the table of contents of the HTML help documentation and to the tree view.
-
1262 # The default value is: NO.
-
1263 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1264 
-
1265 TOC_EXPAND = NO
-
1266 
-
1267 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-
1268 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
-
1269 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
-
1270 # (.qch) of the generated HTML documentation.
-
1271 # The default value is: NO.
-
1272 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1273 
-
1274 GENERATE_QHP = NO
-
1275 
-
1276 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
-
1277 # the file name of the resulting .qch file. The path specified is relative to
-
1278 # the HTML output folder.
-
1279 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1280 
-
1281 QCH_FILE =
-
1282 
-
1283 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
-
1284 # Project output. For more information please see Qt Help Project / Namespace
-
1285 # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
-
1286 # The default value is: org.doxygen.Project.
-
1287 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1288 
-
1289 QHP_NAMESPACE = org.doxygen.Project
-
1290 
-
1291 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
-
1292 # Help Project output. For more information please see Qt Help Project / Virtual
-
1293 # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-
1294 # folders).
-
1295 # The default value is: doc.
-
1296 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1297 
-
1298 QHP_VIRTUAL_FOLDER = doc
-
1299 
-
1300 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
-
1301 # filter to add. For more information please see Qt Help Project / Custom
-
1302 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-
1303 # filters).
-
1304 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1305 
-
1306 QHP_CUST_FILTER_NAME =
-
1307 
-
1308 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
-
1309 # custom filter to add. For more information please see Qt Help Project / Custom
-
1310 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-
1311 # filters).
-
1312 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1313 
-
1314 QHP_CUST_FILTER_ATTRS =
-
1315 
-
1316 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-
1317 # project's filter section matches. Qt Help Project / Filter Attributes (see:
-
1318 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
-
1319 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1320 
-
1321 QHP_SECT_FILTER_ATTRS =
-
1322 
-
1323 # The QHG_LOCATION tag can be used to specify the location of Qt's
-
1324 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-
1325 # generated .qhp file.
-
1326 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1327 
-
1328 QHG_LOCATION =
-
1329 
-
1330 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
-
1331 # generated, together with the HTML files, they form an Eclipse help plugin. To
-
1332 # install this plugin and make it available under the help contents menu in
-
1333 # Eclipse, the contents of the directory containing the HTML and XML files needs
-
1334 # to be copied into the plugins directory of eclipse. The name of the directory
-
1335 # within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
-
1336 # After copying Eclipse needs to be restarted before the help appears.
-
1337 # The default value is: NO.
-
1338 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1339 
-
1340 GENERATE_ECLIPSEHELP = NO
-
1341 
-
1342 # A unique identifier for the Eclipse help plugin. When installing the plugin
-
1343 # the directory name containing the HTML and XML files should also have this
-
1344 # name. Each documentation set should have its own identifier.
-
1345 # The default value is: org.doxygen.Project.
-
1346 # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
-
1347 
-
1348 ECLIPSE_DOC_ID = org.doxygen.Project
-
1349 
-
1350 # If you want full control over the layout of the generated HTML pages it might
-
1351 # be necessary to disable the index and replace it with your own. The
-
1352 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
-
1353 # of each HTML page. A value of NO enables the index and the value YES disables
-
1354 # it. Since the tabs in the index contain the same information as the navigation
-
1355 # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
-
1356 # The default value is: NO.
-
1357 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1358 
-
1359 DISABLE_INDEX = NO
-
1360 
-
1361 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-
1362 # structure should be generated to display hierarchical information. If the tag
-
1363 # value is set to YES, a side panel will be generated containing a tree-like
-
1364 # index structure (just like the one that is generated for HTML Help). For this
-
1365 # to work a browser that supports JavaScript, DHTML, CSS and frames is required
-
1366 # (i.e. any modern browser). Windows users are probably better off using the
-
1367 # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
-
1368 # further fine-tune the look of the index. As an example, the default style
-
1369 # sheet generated by doxygen has an example that shows how to put an image at
-
1370 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has
-
1371 # the same information as the tab index, you could consider setting
-
1372 # DISABLE_INDEX to YES when enabling this option.
-
1373 # The default value is: NO.
-
1374 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1375 
-
1376 GENERATE_TREEVIEW = NO
-
1377 
-
1378 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
-
1379 # doxygen will group on one line in the generated HTML documentation.
-
1380 #
-
1381 # Note that a value of 0 will completely suppress the enum values from appearing
-
1382 # in the overview section.
-
1383 # Minimum value: 0, maximum value: 20, default value: 4.
-
1384 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1385 
-
1386 ENUM_VALUES_PER_LINE = 4
-
1387 
-
1388 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
-
1389 # to set the initial width (in pixels) of the frame in which the tree is shown.
-
1390 # Minimum value: 0, maximum value: 1500, default value: 250.
-
1391 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1392 
-
1393 TREEVIEW_WIDTH = 250
-
1394 
-
1395 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
-
1396 # external symbols imported via tag files in a separate window.
-
1397 # The default value is: NO.
-
1398 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1399 
-
1400 EXT_LINKS_IN_WINDOW = NO
-
1401 
-
1402 # Use this tag to change the font size of LaTeX formulas included as images in
-
1403 # the HTML documentation. When you change the font size after a successful
-
1404 # doxygen run you need to manually remove any form_*.png images from the HTML
-
1405 # output directory to force them to be regenerated.
-
1406 # Minimum value: 8, maximum value: 50, default value: 10.
-
1407 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1408 
-
1409 FORMULA_FONTSIZE = 10
-
1410 
-
1411 # Use the FORMULA_TRANPARENT tag to determine whether or not the images
-
1412 # generated for formulas are transparent PNGs. Transparent PNGs are not
-
1413 # supported properly for IE 6.0, but are supported on all modern browsers.
-
1414 #
-
1415 # Note that when changing this option you need to delete any form_*.png files in
-
1416 # the HTML output directory before the changes have effect.
-
1417 # The default value is: YES.
-
1418 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1419 
-
1420 FORMULA_TRANSPARENT = YES
-
1421 
-
1422 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-
1423 # http://www.mathjax.org) which uses client side Javascript for the rendering
-
1424 # instead of using prerendered bitmaps. Use this if you do not have LaTeX
-
1425 # installed or if you want to formulas look prettier in the HTML output. When
-
1426 # enabled you may also need to install MathJax separately and configure the path
-
1427 # to it using the MATHJAX_RELPATH option.
-
1428 # The default value is: NO.
-
1429 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1430 
-
1431 USE_MATHJAX = NO
-
1432 
-
1433 # When MathJax is enabled you can set the default output format to be used for
-
1434 # the MathJax output. See the MathJax site (see:
-
1435 # http://docs.mathjax.org/en/latest/output.html) for more details.
-
1436 # Possible values are: HTML-CSS (which is slower, but has the best
-
1437 # compatibility), NativeMML (i.e. MathML) and SVG.
-
1438 # The default value is: HTML-CSS.
-
1439 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1440 
-
1441 MATHJAX_FORMAT = HTML-CSS
-
1442 
-
1443 # When MathJax is enabled you need to specify the location relative to the HTML
-
1444 # output directory using the MATHJAX_RELPATH option. The destination directory
-
1445 # should contain the MathJax.js script. For instance, if the mathjax directory
-
1446 # is located at the same level as the HTML output directory, then
-
1447 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
-
1448 # Content Delivery Network so you can quickly see the result without installing
-
1449 # MathJax. However, it is strongly recommended to install a local copy of
-
1450 # MathJax from http://www.mathjax.org before deployment.
-
1451 # The default value is: http://cdn.mathjax.org/mathjax/latest.
-
1452 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1453 
-
1454 MATHJAX_RELPATH = http://www.mathjax.org/mathjax
-
1455 
-
1456 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-
1457 # extension names that should be enabled during MathJax rendering. For example
-
1458 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-
1459 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1460 
-
1461 MATHJAX_EXTENSIONS =
-
1462 
-
1463 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
-
1464 # of code that will be used on startup of the MathJax code. See the MathJax site
-
1465 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
-
1466 # example see the documentation.
-
1467 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1468 
-
1469 MATHJAX_CODEFILE =
-
1470 
-
1471 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
-
1472 # the HTML output. The underlying search engine uses javascript and DHTML and
-
1473 # should work on any modern browser. Note that when using HTML help
-
1474 # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
-
1475 # there is already a search function so this one should typically be disabled.
-
1476 # For large projects the javascript based search engine can be slow, then
-
1477 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
-
1478 # search using the keyboard; to jump to the search box use <access key> + S
-
1479 # (what the <access key> is depends on the OS and browser, but it is typically
-
1480 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
-
1481 # key> to jump into the search results window, the results can be navigated
-
1482 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
-
1483 # the search. The filter options can be selected when the cursor is inside the
-
1484 # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
-
1485 # to select a filter and <Enter> or <escape> to activate or cancel the filter
-
1486 # option.
-
1487 # The default value is: YES.
-
1488 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1489 
-
1490 SEARCHENGINE = NO
-
1491 
-
1492 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-
1493 # implemented using a web server instead of a web client using Javascript. There
-
1494 # are two flavours of web server based searching depending on the
-
1495 # EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for
-
1496 # searching and an index file used by the script. When EXTERNAL_SEARCH is
-
1497 # enabled the indexing and searching needs to be provided by external tools. See
-
1498 # the section "External Indexing and Searching" for details.
-
1499 # The default value is: NO.
-
1500 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1501 
-
1502 SERVER_BASED_SEARCH = NO
-
1503 
-
1504 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
-
1505 # script for searching. Instead the search results are written to an XML file
-
1506 # which needs to be processed by an external indexer. Doxygen will invoke an
-
1507 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the
-
1508 # search results.
-
1509 #
-
1510 # Doxygen ships with an example indexer ( doxyindexer) and search engine
-
1511 # (doxysearch.cgi) which are based on the open source search engine library
-
1512 # Xapian (see: http://xapian.org/).
-
1513 #
-
1514 # See the section "External Indexing and Searching" for details.
-
1515 # The default value is: NO.
-
1516 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1517 
-
1518 EXTERNAL_SEARCH = NO
-
1519 
-
1520 # The SEARCHENGINE_URL should point to a search engine hosted by a web server
-
1521 # which will return the search results when EXTERNAL_SEARCH is enabled.
-
1522 #
-
1523 # Doxygen ships with an example indexer ( doxyindexer) and search engine
-
1524 # (doxysearch.cgi) which are based on the open source search engine library
-
1525 # Xapian (see: http://xapian.org/). See the section "External Indexing and
-
1526 # Searching" for details.
-
1527 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1528 
-
1529 SEARCHENGINE_URL =
-
1530 
-
1531 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
-
1532 # search data is written to a file for indexing by an external tool. With the
-
1533 # SEARCHDATA_FILE tag the name of this file can be specified.
-
1534 # The default file is: searchdata.xml.
-
1535 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1536 
-
1537 SEARCHDATA_FILE = searchdata.xml
-
1538 
-
1539 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
-
1540 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
-
1541 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
-
1542 # projects and redirect the results back to the right project.
-
1543 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1544 
-
1545 EXTERNAL_SEARCH_ID =
-
1546 
-
1547 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
-
1548 # projects other than the one defined by this configuration file, but that are
-
1549 # all added to the same external search index. Each project needs to have a
-
1550 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
-
1551 # to a relative location where the documentation can be found. The format is:
-
1552 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
-
1553 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1554 
-
1555 EXTRA_SEARCH_MAPPINGS =
-
1556 
-
1557 #---------------------------------------------------------------------------
-
1558 # Configuration options related to the LaTeX output
-
1559 #---------------------------------------------------------------------------
-
1560 
-
1561 # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
-
1562 # The default value is: YES.
-
1563 
-
1564 GENERATE_LATEX = NO
-
1565 
-
1566 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
-
1567 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1568 # it.
-
1569 # The default directory is: latex.
-
1570 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1571 
-
1572 LATEX_OUTPUT = latex
-
1573 
-
1574 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-
1575 # invoked.
-
1576 #
-
1577 # Note that when enabling USE_PDFLATEX this option is only used for generating
-
1578 # bitmaps for formulas in the HTML output, but not in the Makefile that is
-
1579 # written to the output directory.
-
1580 # The default file is: latex.
-
1581 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1582 
-
1583 LATEX_CMD_NAME = latex
-
1584 
-
1585 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-
1586 # index for LaTeX.
-
1587 # The default file is: makeindex.
-
1588 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1589 
-
1590 MAKEINDEX_CMD_NAME = makeindex
-
1591 
-
1592 # If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
-
1593 # documents. This may be useful for small projects and may help to save some
-
1594 # trees in general.
-
1595 # The default value is: NO.
-
1596 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1597 
-
1598 COMPACT_LATEX = NO
-
1599 
-
1600 # The PAPER_TYPE tag can be used to set the paper type that is used by the
-
1601 # printer.
-
1602 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
-
1603 # 14 inches) and executive (7.25 x 10.5 inches).
-
1604 # The default value is: a4.
-
1605 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1606 
-
1607 PAPER_TYPE = a4wide
-
1608 
-
1609 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
-
1610 # that should be included in the LaTeX output. To get the times font for
-
1611 # instance you can specify
-
1612 # EXTRA_PACKAGES=times
-
1613 # If left blank no extra packages will be included.
-
1614 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1615 
-
1616 EXTRA_PACKAGES =
-
1617 
-
1618 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
-
1619 # generated LaTeX document. The header should contain everything until the first
-
1620 # chapter. If it is left blank doxygen will generate a standard header. See
-
1621 # section "Doxygen usage" for information on how to let doxygen write the
-
1622 # default header to a separate file.
-
1623 #
-
1624 # Note: Only use a user-defined header if you know what you are doing! The
-
1625 # following commands have a special meaning inside the header: $title,
-
1626 # $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will
-
1627 # replace them by respectively the title of the page, the current date and time,
-
1628 # only the current date, the version number of doxygen, the project name (see
-
1629 # PROJECT_NAME), or the project number (see PROJECT_NUMBER).
-
1630 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1631 
-
1632 LATEX_HEADER =
-
1633 
-
1634 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
-
1635 # generated LaTeX document. The footer should contain everything after the last
-
1636 # chapter. If it is left blank doxygen will generate a standard footer.
-
1637 #
-
1638 # Note: Only use a user-defined footer if you know what you are doing!
-
1639 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1640 
-
1641 LATEX_FOOTER =
-
1642 
-
1643 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
-
1644 # other source files which should be copied to the LATEX_OUTPUT output
-
1645 # directory. Note that the files will be copied as-is; there are no commands or
-
1646 # markers available.
-
1647 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1648 
-
1649 LATEX_EXTRA_FILES =
-
1650 
-
1651 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
-
1652 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
-
1653 # contain links (just like the HTML output) instead of page references. This
-
1654 # makes the output suitable for online browsing using a PDF viewer.
-
1655 # The default value is: YES.
-
1656 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1657 
-
1658 PDF_HYPERLINKS = NO
-
1659 
-
1660 # If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
-
1661 # the PDF file directly from the LaTeX files. Set this option to YES to get a
-
1662 # higher quality PDF documentation.
-
1663 # The default value is: YES.
-
1664 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1665 
-
1666 USE_PDFLATEX = YES
-
1667 
-
1668 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
-
1669 # command to the generated LaTeX files. This will instruct LaTeX to keep running
-
1670 # if errors occur, instead of asking the user for help. This option is also used
-
1671 # when generating formulas in HTML.
-
1672 # The default value is: NO.
-
1673 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1674 
-
1675 LATEX_BATCHMODE = NO
-
1676 
-
1677 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
-
1678 # index chapters (such as File Index, Compound Index, etc.) in the output.
-
1679 # The default value is: NO.
-
1680 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1681 
-
1682 LATEX_HIDE_INDICES = NO
-
1683 
-
1684 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-
1685 # code with syntax highlighting in the LaTeX output.
-
1686 #
-
1687 # Note that which sources are shown also depends on other settings such as
-
1688 # SOURCE_BROWSER.
-
1689 # The default value is: NO.
-
1690 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1691 
-
1692 LATEX_SOURCE_CODE = NO
-
1693 
-
1694 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-
1695 # bibliography, e.g. plainnat, or ieeetr. See
-
1696 # http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
-
1697 # The default value is: plain.
-
1698 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1699 
-
1700 LATEX_BIB_STYLE = plain
-
1701 
-
1702 #---------------------------------------------------------------------------
-
1703 # Configuration options related to the RTF output
-
1704 #---------------------------------------------------------------------------
-
1705 
-
1706 # If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
-
1707 # RTF output is optimized for Word 97 and may not look too pretty with other RTF
-
1708 # readers/editors.
-
1709 # The default value is: NO.
-
1710 
-
1711 GENERATE_RTF = NO
-
1712 
-
1713 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
-
1714 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1715 # it.
-
1716 # The default directory is: rtf.
-
1717 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1718 
-
1719 RTF_OUTPUT = glm.rtf
-
1720 
-
1721 # If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
-
1722 # documents. This may be useful for small projects and may help to save some
-
1723 # trees in general.
-
1724 # The default value is: NO.
-
1725 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1726 
-
1727 COMPACT_RTF = NO
-
1728 
-
1729 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
-
1730 # contain hyperlink fields. The RTF file will contain links (just like the HTML
-
1731 # output) instead of page references. This makes the output suitable for online
-
1732 # browsing using Word or some other Word compatible readers that support those
-
1733 # fields.
-
1734 #
-
1735 # Note: WordPad (write) and others do not support links.
-
1736 # The default value is: NO.
-
1737 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1738 
-
1739 RTF_HYPERLINKS = YES
-
1740 
-
1741 # Load stylesheet definitions from file. Syntax is similar to doxygen's config
-
1742 # file, i.e. a series of assignments. You only have to provide replacements,
-
1743 # missing definitions are set to their default value.
-
1744 #
-
1745 # See also section "Doxygen usage" for information on how to generate the
-
1746 # default style sheet that doxygen normally uses.
-
1747 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1748 
-
1749 RTF_STYLESHEET_FILE =
-
1750 
-
1751 # Set optional variables used in the generation of an RTF document. Syntax is
-
1752 # similar to doxygen's config file. A template extensions file can be generated
-
1753 # using doxygen -e rtf extensionFile.
-
1754 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1755 
-
1756 RTF_EXTENSIONS_FILE =
-
1757 
-
1758 #---------------------------------------------------------------------------
-
1759 # Configuration options related to the man page output
-
1760 #---------------------------------------------------------------------------
-
1761 
-
1762 # If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
-
1763 # classes and files.
-
1764 # The default value is: NO.
-
1765 
-
1766 GENERATE_MAN = NO
-
1767 
-
1768 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
-
1769 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1770 # it. A directory man3 will be created inside the directory specified by
-
1771 # MAN_OUTPUT.
-
1772 # The default directory is: man.
-
1773 # This tag requires that the tag GENERATE_MAN is set to YES.
-
1774 
-
1775 MAN_OUTPUT = man
-
1776 
-
1777 # The MAN_EXTENSION tag determines the extension that is added to the generated
-
1778 # man pages. In case the manual section does not start with a number, the number
-
1779 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
-
1780 # optional.
-
1781 # The default value is: .3.
-
1782 # This tag requires that the tag GENERATE_MAN is set to YES.
-
1783 
-
1784 MAN_EXTENSION = .3
-
1785 
-
1786 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
-
1787 # will generate one additional man file for each entity documented in the real
-
1788 # man page(s). These additional files only source the real man page, but without
-
1789 # them the man command would be unable to find the correct page.
-
1790 # The default value is: NO.
-
1791 # This tag requires that the tag GENERATE_MAN is set to YES.
-
1792 
-
1793 MAN_LINKS = NO
-
1794 
-
1795 #---------------------------------------------------------------------------
-
1796 # Configuration options related to the XML output
-
1797 #---------------------------------------------------------------------------
-
1798 
-
1799 # If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
-
1800 # captures the structure of the code including all documentation.
-
1801 # The default value is: NO.
-
1802 
-
1803 GENERATE_XML = NO
-
1804 
-
1805 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
-
1806 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1807 # it.
-
1808 # The default directory is: xml.
-
1809 # This tag requires that the tag GENERATE_XML is set to YES.
-
1810 
-
1811 XML_OUTPUT = xml
-
1812 
-
1813 # The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a
-
1814 # validating XML parser to check the syntax of the XML files.
-
1815 # This tag requires that the tag GENERATE_XML is set to YES.
-
1816 
-
1817 XML_SCHEMA =
-
1818 
-
1819 # The XML_DTD tag can be used to specify a XML DTD, which can be used by a
-
1820 # validating XML parser to check the syntax of the XML files.
-
1821 # This tag requires that the tag GENERATE_XML is set to YES.
-
1822 
-
1823 XML_DTD =
-
1824 
-
1825 # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
-
1826 # listings (including syntax highlighting and cross-referencing information) to
-
1827 # the XML output. Note that enabling this will significantly increase the size
-
1828 # of the XML output.
-
1829 # The default value is: YES.
-
1830 # This tag requires that the tag GENERATE_XML is set to YES.
-
1831 
-
1832 XML_PROGRAMLISTING = YES
-
1833 
-
1834 #---------------------------------------------------------------------------
-
1835 # Configuration options related to the DOCBOOK output
-
1836 #---------------------------------------------------------------------------
-
1837 
-
1838 # If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
-
1839 # that can be used to generate PDF.
-
1840 # The default value is: NO.
-
1841 
-
1842 GENERATE_DOCBOOK = NO
-
1843 
-
1844 # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
-
1845 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
-
1846 # front of it.
-
1847 # The default directory is: docbook.
-
1848 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
1849 
-
1850 DOCBOOK_OUTPUT = docbook
-
1851 
-
1852 #---------------------------------------------------------------------------
-
1853 # Configuration options for the AutoGen Definitions output
-
1854 #---------------------------------------------------------------------------
-
1855 
-
1856 # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
-
1857 # Definitions (see http://autogen.sf.net) file that captures the structure of
-
1858 # the code including all documentation. Note that this feature is still
-
1859 # experimental and incomplete at the moment.
-
1860 # The default value is: NO.
-
1861 
-
1862 GENERATE_AUTOGEN_DEF = NO
-
1863 
-
1864 #---------------------------------------------------------------------------
-
1865 # Configuration options related to the Perl module output
-
1866 #---------------------------------------------------------------------------
-
1867 
-
1868 # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
-
1869 # file that captures the structure of the code including all documentation.
-
1870 #
-
1871 # Note that this feature is still experimental and incomplete at the moment.
-
1872 # The default value is: NO.
-
1873 
-
1874 GENERATE_PERLMOD = NO
-
1875 
-
1876 # If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
-
1877 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
-
1878 # output from the Perl module output.
-
1879 # The default value is: NO.
-
1880 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
1881 
-
1882 PERLMOD_LATEX = NO
-
1883 
-
1884 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
-
1885 # formatted so it can be parsed by a human reader. This is useful if you want to
-
1886 # understand what is going on. On the other hand, if this tag is set to NO the
-
1887 # size of the Perl module output will be much smaller and Perl will parse it
-
1888 # just the same.
-
1889 # The default value is: YES.
-
1890 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
1891 
-
1892 PERLMOD_PRETTY = YES
-
1893 
-
1894 # The names of the make variables in the generated doxyrules.make file are
-
1895 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
-
1896 # so different doxyrules.make files included by the same Makefile don't
-
1897 # overwrite each other's variables.
-
1898 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
1899 
-
1900 PERLMOD_MAKEVAR_PREFIX =
-
1901 
-
1902 #---------------------------------------------------------------------------
-
1903 # Configuration options related to the preprocessor
-
1904 #---------------------------------------------------------------------------
-
1905 
-
1906 # If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
-
1907 # C-preprocessor directives found in the sources and include files.
-
1908 # The default value is: YES.
-
1909 
-
1910 ENABLE_PREPROCESSING = YES
-
1911 
-
1912 # If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
-
1913 # in the source code. If set to NO only conditional compilation will be
-
1914 # performed. Macro expansion can be done in a controlled way by setting
-
1915 # EXPAND_ONLY_PREDEF to YES.
-
1916 # The default value is: NO.
-
1917 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1918 
-
1919 MACRO_EXPANSION = NO
-
1920 
-
1921 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
-
1922 # the macro expansion is limited to the macros specified with the PREDEFINED and
-
1923 # EXPAND_AS_DEFINED tags.
-
1924 # The default value is: NO.
-
1925 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1926 
-
1927 EXPAND_ONLY_PREDEF = NO
-
1928 
-
1929 # If the SEARCH_INCLUDES tag is set to YES the includes files in the
-
1930 # INCLUDE_PATH will be searched if a #include is found.
-
1931 # The default value is: YES.
-
1932 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1933 
-
1934 SEARCH_INCLUDES = YES
-
1935 
-
1936 # The INCLUDE_PATH tag can be used to specify one or more directories that
-
1937 # contain include files that are not input files but should be processed by the
-
1938 # preprocessor.
-
1939 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
-
1940 
-
1941 INCLUDE_PATH =
-
1942 
-
1943 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-
1944 # patterns (like *.h and *.hpp) to filter out the header-files in the
-
1945 # directories. If left blank, the patterns specified with FILE_PATTERNS will be
-
1946 # used.
-
1947 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1948 
-
1949 INCLUDE_FILE_PATTERNS =
-
1950 
-
1951 # The PREDEFINED tag can be used to specify one or more macro names that are
-
1952 # defined before the preprocessor is started (similar to the -D option of e.g.
-
1953 # gcc). The argument of the tag is a list of macros of the form: name or
-
1954 # name=definition (no spaces). If the definition and the "=" are omitted, "=1"
-
1955 # is assumed. To prevent a macro definition from being undefined via #undef or
-
1956 # recursively expanded use the := operator instead of the = operator.
-
1957 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1958 
-
1959 PREDEFINED =
-
1960 
-
1961 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
-
1962 # tag can be used to specify a list of macro names that should be expanded. The
-
1963 # macro definition that is found in the sources will be used. Use the PREDEFINED
-
1964 # tag if you want to use a different macro definition that overrules the
-
1965 # definition found in the source code.
-
1966 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1967 
-
1968 EXPAND_AS_DEFINED =
-
1969 
-
1970 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
-
1971 # remove all refrences to function-like macros that are alone on a line, have an
-
1972 # all uppercase name, and do not end with a semicolon. Such function macros are
-
1973 # typically used for boiler-plate code, and will confuse the parser if not
-
1974 # removed.
-
1975 # The default value is: YES.
-
1976 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1977 
-
1978 SKIP_FUNCTION_MACROS = YES
-
1979 
-
1980 #---------------------------------------------------------------------------
-
1981 # Configuration options related to external references
-
1982 #---------------------------------------------------------------------------
-
1983 
-
1984 # The TAGFILES tag can be used to specify one or more tag files. For each tag
-
1985 # file the location of the external documentation should be added. The format of
-
1986 # a tag file without this location is as follows:
-
1987 # TAGFILES = file1 file2 ...
-
1988 # Adding location for the tag files is done as follows:
-
1989 # TAGFILES = file1=loc1 "file2 = loc2" ...
-
1990 # where loc1 and loc2 can be relative or absolute paths or URLs. See the
-
1991 # section "Linking to external documentation" for more information about the use
-
1992 # of tag files.
-
1993 # Note: Each tag file must have an unique name (where the name does NOT include
-
1994 # the path). If a tag file is not located in the directory in which doxygen is
-
1995 # run, you must also specify the path to the tagfile here.
-
1996 
-
1997 TAGFILES =
-
1998 
-
1999 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
-
2000 # tag file that is based on the input files it reads. See section "Linking to
-
2001 # external documentation" for more information about the usage of tag files.
-
2002 
-
2003 GENERATE_TAGFILE =
-
2004 
-
2005 # If the ALLEXTERNALS tag is set to YES all external class will be listed in the
-
2006 # class index. If set to NO only the inherited external classes will be listed.
-
2007 # The default value is: NO.
-
2008 
-
2009 ALLEXTERNALS = NO
-
2010 
-
2011 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
-
2012 # the modules index. If set to NO, only the current project's groups will be
-
2013 # listed.
-
2014 # The default value is: YES.
-
2015 
-
2016 EXTERNAL_GROUPS = YES
-
2017 
-
2018 # If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
-
2019 # the related pages index. If set to NO, only the current project's pages will
-
2020 # be listed.
-
2021 # The default value is: YES.
-
2022 
-
2023 EXTERNAL_PAGES = YES
-
2024 
-
2025 # The PERL_PATH should be the absolute path and name of the perl script
-
2026 # interpreter (i.e. the result of 'which perl').
-
2027 # The default file (with absolute path) is: /usr/bin/perl.
-
2028 
-
2029 PERL_PATH = /usr/bin/perl
-
2030 
-
2031 #---------------------------------------------------------------------------
-
2032 # Configuration options related to the dot tool
-
2033 #---------------------------------------------------------------------------
-
2034 
-
2035 # If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
-
2036 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-
2037 # NO turns the diagrams off. Note that this option also works with HAVE_DOT
-
2038 # disabled, but it is recommended to install and use dot, since it yields more
-
2039 # powerful graphs.
-
2040 # The default value is: YES.
-
2041 
-
2042 CLASS_DIAGRAMS = YES
-
2043 
-
2044 # You can define message sequence charts within doxygen comments using the \msc
-
2045 # command. Doxygen will then run the mscgen tool (see:
-
2046 # http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-
2047 # documentation. The MSCGEN_PATH tag allows you to specify the directory where
-
2048 # the mscgen tool resides. If left empty the tool is assumed to be found in the
-
2049 # default search path.
-
2050 
-
2051 MSCGEN_PATH =
-
2052 
-
2053 # If set to YES, the inheritance and collaboration graphs will hide inheritance
-
2054 # and usage relations if the target is undocumented or is not a class.
-
2055 # The default value is: YES.
-
2056 
-
2057 HIDE_UNDOC_RELATIONS = YES
-
2058 
-
2059 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-
2060 # available from the path. This tool is part of Graphviz (see:
-
2061 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
-
2062 # Bell Labs. The other options in this section have no effect if this option is
-
2063 # set to NO
-
2064 # The default value is: NO.
-
2065 
-
2066 HAVE_DOT = NO
-
2067 
-
2068 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
-
2069 # to run in parallel. When set to 0 doxygen will base this on the number of
-
2070 # processors available in the system. You can set it explicitly to a value
-
2071 # larger than 0 to get control over the balance between CPU load and processing
-
2072 # speed.
-
2073 # Minimum value: 0, maximum value: 32, default value: 0.
-
2074 # This tag requires that the tag HAVE_DOT is set to YES.
-
2075 
-
2076 DOT_NUM_THREADS = 0
-
2077 
-
2078 # When you want a differently looking font n the dot files that doxygen
-
2079 # generates you can specify the font name using DOT_FONTNAME. You need to make
-
2080 # sure dot is able to find the font, which can be done by putting it in a
-
2081 # standard location or by setting the DOTFONTPATH environment variable or by
-
2082 # setting DOT_FONTPATH to the directory containing the font.
-
2083 # The default value is: Helvetica.
-
2084 # This tag requires that the tag HAVE_DOT is set to YES.
-
2085 
-
2086 DOT_FONTNAME = FreeSans
-
2087 
-
2088 # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-
2089 # dot graphs.
-
2090 # Minimum value: 4, maximum value: 24, default value: 10.
-
2091 # This tag requires that the tag HAVE_DOT is set to YES.
-
2092 
-
2093 DOT_FONTSIZE = 10
-
2094 
-
2095 # By default doxygen will tell dot to use the default font as specified with
-
2096 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
-
2097 # the path where dot can find it using this tag.
-
2098 # This tag requires that the tag HAVE_DOT is set to YES.
-
2099 
-
2100 DOT_FONTPATH =
-
2101 
-
2102 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
-
2103 # each documented class showing the direct and indirect inheritance relations.
-
2104 # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-
2105 # The default value is: YES.
-
2106 # This tag requires that the tag HAVE_DOT is set to YES.
-
2107 
-
2108 CLASS_GRAPH = YES
-
2109 
-
2110 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
-
2111 # graph for each documented class showing the direct and indirect implementation
-
2112 # dependencies (inheritance, containment, and class references variables) of the
-
2113 # class with other documented classes.
-
2114 # The default value is: YES.
-
2115 # This tag requires that the tag HAVE_DOT is set to YES.
-
2116 
-
2117 COLLABORATION_GRAPH = YES
-
2118 
-
2119 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
-
2120 # groups, showing the direct groups dependencies.
-
2121 # The default value is: YES.
-
2122 # This tag requires that the tag HAVE_DOT is set to YES.
-
2123 
-
2124 GROUP_GRAPHS = YES
-
2125 
-
2126 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-
2127 # collaboration diagrams in a style similar to the OMG's Unified Modeling
-
2128 # Language.
-
2129 # The default value is: NO.
-
2130 # This tag requires that the tag HAVE_DOT is set to YES.
-
2131 
-
2132 UML_LOOK = NO
-
2133 
-
2134 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the
-
2135 # class node. If there are many fields or methods and many nodes the graph may
-
2136 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
-
2137 # number of items for each type to make the size more manageable. Set this to 0
-
2138 # for no limit. Note that the threshold may be exceeded by 50% before the limit
-
2139 # is enforced. So when you set the threshold to 10, up to 15 fields may appear,
-
2140 # but if the number exceeds 15, the total amount of fields shown is limited to
-
2141 # 10.
-
2142 # Minimum value: 0, maximum value: 100, default value: 10.
-
2143 # This tag requires that the tag HAVE_DOT is set to YES.
-
2144 
-
2145 UML_LIMIT_NUM_FIELDS = 10
-
2146 
-
2147 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
-
2148 # collaboration graphs will show the relations between templates and their
-
2149 # instances.
-
2150 # The default value is: NO.
-
2151 # This tag requires that the tag HAVE_DOT is set to YES.
-
2152 
-
2153 TEMPLATE_RELATIONS = NO
-
2154 
-
2155 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
-
2156 # YES then doxygen will generate a graph for each documented file showing the
-
2157 # direct and indirect include dependencies of the file with other documented
-
2158 # files.
-
2159 # The default value is: YES.
-
2160 # This tag requires that the tag HAVE_DOT is set to YES.
-
2161 
-
2162 INCLUDE_GRAPH = YES
-
2163 
-
2164 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
-
2165 # set to YES then doxygen will generate a graph for each documented file showing
-
2166 # the direct and indirect include dependencies of the file with other documented
-
2167 # files.
-
2168 # The default value is: YES.
-
2169 # This tag requires that the tag HAVE_DOT is set to YES.
-
2170 
-
2171 INCLUDED_BY_GRAPH = YES
-
2172 
-
2173 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call
-
2174 # dependency graph for every global function or class method.
-
2175 #
-
2176 # Note that enabling this option will significantly increase the time of a run.
-
2177 # So in most cases it will be better to enable call graphs for selected
-
2178 # functions only using the \callgraph command.
-
2179 # The default value is: NO.
-
2180 # This tag requires that the tag HAVE_DOT is set to YES.
-
2181 
-
2182 CALL_GRAPH = YES
-
2183 
-
2184 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
-
2185 # dependency graph for every global function or class method.
-
2186 #
-
2187 # Note that enabling this option will significantly increase the time of a run.
-
2188 # So in most cases it will be better to enable caller graphs for selected
-
2189 # functions only using the \callergraph command.
-
2190 # The default value is: NO.
-
2191 # This tag requires that the tag HAVE_DOT is set to YES.
-
2192 
-
2193 CALLER_GRAPH = YES
-
2194 
-
2195 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
-
2196 # hierarchy of all classes instead of a textual one.
-
2197 # The default value is: YES.
-
2198 # This tag requires that the tag HAVE_DOT is set to YES.
-
2199 
-
2200 GRAPHICAL_HIERARCHY = YES
-
2201 
-
2202 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
-
2203 # dependencies a directory has on other directories in a graphical way. The
-
2204 # dependency relations are determined by the #include relations between the
-
2205 # files in the directories.
-
2206 # The default value is: YES.
-
2207 # This tag requires that the tag HAVE_DOT is set to YES.
-
2208 
-
2209 DIRECTORY_GRAPH = YES
-
2210 
-
2211 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-
2212 # generated by dot.
-
2213 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
-
2214 # to make the SVG files visible in IE 9+ (other browsers do not have this
-
2215 # requirement).
-
2216 # Possible values are: png, jpg, gif and svg.
-
2217 # The default value is: png.
-
2218 # This tag requires that the tag HAVE_DOT is set to YES.
-
2219 
-
2220 DOT_IMAGE_FORMAT = png
-
2221 
-
2222 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-
2223 # enable generation of interactive SVG images that allow zooming and panning.
-
2224 #
-
2225 # Note that this requires a modern browser other than Internet Explorer. Tested
-
2226 # and working are Firefox, Chrome, Safari, and Opera.
-
2227 # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
-
2228 # the SVG files visible. Older versions of IE do not have SVG support.
-
2229 # The default value is: NO.
-
2230 # This tag requires that the tag HAVE_DOT is set to YES.
-
2231 
-
2232 INTERACTIVE_SVG = NO
-
2233 
-
2234 # The DOT_PATH tag can be used to specify the path where the dot tool can be
-
2235 # found. If left blank, it is assumed the dot tool can be found in the path.
-
2236 # This tag requires that the tag HAVE_DOT is set to YES.
-
2237 
-
2238 DOT_PATH =
-
2239 
-
2240 # The DOTFILE_DIRS tag can be used to specify one or more directories that
-
2241 # contain dot files that are included in the documentation (see the \dotfile
-
2242 # command).
-
2243 # This tag requires that the tag HAVE_DOT is set to YES.
-
2244 
-
2245 DOTFILE_DIRS =
-
2246 
-
2247 # The MSCFILE_DIRS tag can be used to specify one or more directories that
-
2248 # contain msc files that are included in the documentation (see the \mscfile
-
2249 # command).
-
2250 
-
2251 MSCFILE_DIRS =
-
2252 
-
2253 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
-
2254 # that will be shown in the graph. If the number of nodes in a graph becomes
-
2255 # larger than this value, doxygen will truncate the graph, which is visualized
-
2256 # by representing a node as a red box. Note that doxygen if the number of direct
-
2257 # children of the root node in a graph is already larger than
-
2258 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
-
2259 # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
2260 # Minimum value: 0, maximum value: 10000, default value: 50.
-
2261 # This tag requires that the tag HAVE_DOT is set to YES.
-
2262 
-
2263 DOT_GRAPH_MAX_NODES = 50
-
2264 
-
2265 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
-
2266 # generated by dot. A depth value of 3 means that only nodes reachable from the
-
2267 # root by following a path via at most 3 edges will be shown. Nodes that lay
-
2268 # further from the root node will be omitted. Note that setting this option to 1
-
2269 # or 2 may greatly reduce the computation time needed for large code bases. Also
-
2270 # note that the size of a graph can be further restricted by
-
2271 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
2272 # Minimum value: 0, maximum value: 1000, default value: 0.
-
2273 # This tag requires that the tag HAVE_DOT is set to YES.
-
2274 
-
2275 MAX_DOT_GRAPH_DEPTH = 1000
-
2276 
-
2277 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-
2278 # background. This is disabled by default, because dot on Windows does not seem
-
2279 # to support this out of the box.
-
2280 #
-
2281 # Warning: Depending on the platform used, enabling this option may lead to
-
2282 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-
2283 # read).
-
2284 # The default value is: NO.
-
2285 # This tag requires that the tag HAVE_DOT is set to YES.
-
2286 
-
2287 DOT_TRANSPARENT = NO
-
2288 
-
2289 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-
2290 # files in one run (i.e. multiple -o and -T options on the command line). This
-
2291 # makes dot run faster, but since only newer versions of dot (>1.8.10) support
-
2292 # this, this feature is disabled by default.
-
2293 # The default value is: NO.
-
2294 # This tag requires that the tag HAVE_DOT is set to YES.
-
2295 
-
2296 DOT_MULTI_TARGETS = NO
-
2297 
-
2298 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
-
2299 # explaining the meaning of the various boxes and arrows in the dot generated
-
2300 # graphs.
-
2301 # The default value is: YES.
-
2302 # This tag requires that the tag HAVE_DOT is set to YES.
-
2303 
-
2304 GENERATE_LEGEND = YES
-
2305 
-
2306 # If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
-
2307 # files that are used to generate the various graphs.
-
2308 # The default value is: YES.
-
2309 # This tag requires that the tag HAVE_DOT is set to YES.
-
2310 
-
2311 DOT_CLEANUP = YES
-
- - - - diff --git a/3party/glm/doc/api/a00062.html b/3party/glm/doc/api/a00062.html deleted file mode 100755 index 4078dce62b..0000000000 --- a/3party/glm/doc/api/a00062.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat2x2.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
mat2x2.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file mat2x2.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00062_source.html b/3party/glm/doc/api/a00062_source.html deleted file mode 100755 index 98aea96270..0000000000 --- a/3party/glm/doc/api/a00062_source.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -GLM: mat2x2.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
mat2x2.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT2X2_INCLUDED
-
30 #define GLM_MAT2X2_INCLUDED
-
31 
-
32 #include "detail/type_mat2x2.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat2x2<float, lowp> lowp_mat2;
-
42 
-
48  typedef detail::tmat2x2<float, mediump> mediump_mat2;
-
49 
-
55  typedef detail::tmat2x2<float, highp> highp_mat2;
-
56 
-
62  typedef detail::tmat2x2<float, lowp> lowp_mat2x2;
-
63 
-
69  typedef detail::tmat2x2<float, mediump> mediump_mat2x2;
-
70 
-
76  typedef detail::tmat2x2<float, highp> highp_mat2x2;
-
77 
-
78 }//namespace glm
-
79 
-
80 #endif//GLM_MAT2X2_INCLUDED
-
detail::tmat2x2< float, highp > highp_mat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:79
-
detail::tmat2x2< float, mediump > mediump_mat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:72
-
detail::tmat2x2< float, lowp > lowp_mat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:86
-
detail::tmat2x2< float, lowp > lowp_mat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:65
-
detail::tmat2x2< float, mediump > mediump_mat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:93
-
detail::tmat2x2< float, highp > highp_mat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:100
-
- - - - diff --git a/3party/glm/doc/api/a00063.html b/3party/glm/doc/api/a00063.html deleted file mode 100755 index f1228929bb..0000000000 --- a/3party/glm/doc/api/a00063.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat2x3.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
mat2x3.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file mat2x3.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00063_source.html b/3party/glm/doc/api/a00063_source.html deleted file mode 100755 index e091dace67..0000000000 --- a/3party/glm/doc/api/a00063_source.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat2x3.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
mat2x3.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT2X3_INCLUDED
-
30 #define GLM_MAT2X3_INCLUDED
-
31 
-
32 #include "detail/type_mat2x3.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat2x3<float, lowp> lowp_mat2x3;
-
42 
-
48  typedef detail::tmat2x3<float, mediump> mediump_mat2x3;
-
49 
-
55  typedef detail::tmat2x3<float, highp> highp_mat2x3;
-
56 
-
57 }//namespace glm
-
58 
-
59 #endif//GLM_MAT2X3_INCLUDED
-
detail::tmat2x3< float, mediump > mediump_mat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:119
-
detail::tmat2x3< float, highp > highp_mat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:126
-
detail::tmat2x3< float, lowp > lowp_mat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:112
-
- - - - diff --git a/3party/glm/doc/api/a00064.html b/3party/glm/doc/api/a00064.html deleted file mode 100755 index 2d5e254d00..0000000000 --- a/3party/glm/doc/api/a00064.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat2x4.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
mat2x4.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file mat2x4.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00064_source.html b/3party/glm/doc/api/a00064_source.html deleted file mode 100755 index 9a1c409fce..0000000000 --- a/3party/glm/doc/api/a00064_source.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat2x4.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
mat2x4.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT2X4_INCLUDED
-
30 #define GLM_MAT2X4_INCLUDED
-
31 
-
32 #include "detail/type_mat2x4.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat2x4<float, lowp> lowp_mat2x4;
-
42 
-
48  typedef detail::tmat2x4<float, mediump> mediump_mat2x4;
-
49 
-
55  typedef detail::tmat2x4<float, highp> highp_mat2x4;
-
56 
-
57 }//namespace glm
-
58 
-
59 #endif//GLM_MAT2X4_INCLUDED
-
detail::tmat2x4< float, lowp > lowp_mat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:138
-
detail::tmat2x4< float, highp > highp_mat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:152
-
detail::tmat2x4< float, mediump > mediump_mat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:145
-
- - - - diff --git a/3party/glm/doc/api/a00065.html b/3party/glm/doc/api/a00065.html deleted file mode 100755 index 29acf56ae3..0000000000 --- a/3party/glm/doc/api/a00065.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat3x2.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
mat3x2.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file mat3x2.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00065_source.html b/3party/glm/doc/api/a00065_source.html deleted file mode 100755 index d7d2a5bbee..0000000000 --- a/3party/glm/doc/api/a00065_source.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat3x2.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
mat3x2.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT3X2_INCLUDED
-
30 #define GLM_MAT3X2_INCLUDED
-
31 
-
32 #include "detail/type_mat3x2.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat3x2<float, lowp> lowp_mat3x2;
-
42 
-
48  typedef detail::tmat3x2<float, mediump> mediump_mat3x2;
-
49 
-
55  typedef detail::tmat3x2<float, highp> highp_mat3x2;
-
56 
-
57 }//namespace
-
58 
-
59 #endif//GLM_MAT3X2_INCLUDED
-
detail::tmat3x2< float, lowp > lowp_mat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:164
-
detail::tmat3x2< float, highp > highp_mat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:178
-
detail::tmat3x2< float, mediump > mediump_mat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:171
-
- - - - diff --git a/3party/glm/doc/api/a00066.html b/3party/glm/doc/api/a00066.html deleted file mode 100755 index 52b2f3e491..0000000000 --- a/3party/glm/doc/api/a00066.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat3x3.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
mat3x3.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file mat3x3.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00066_source.html b/3party/glm/doc/api/a00066_source.html deleted file mode 100755 index 9249f98108..0000000000 --- a/3party/glm/doc/api/a00066_source.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -GLM: mat3x3.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
mat3x3.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT3X3_INCLUDED
-
30 #define GLM_MAT3X3_INCLUDED
-
31 
-
32 #include "detail/type_mat3x3.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat3x3<float, lowp> lowp_mat3;
-
42 
-
48  typedef detail::tmat3x3<float, mediump> mediump_mat3;
-
49 
-
55  typedef detail::tmat3x3<float, highp> highp_mat3;
-
56 
-
62  typedef detail::tmat3x3<float, lowp> lowp_mat3x3;
-
63 
-
69  typedef detail::tmat3x3<float, mediump> mediump_mat3x3;
-
70 
-
76  typedef detail::tmat3x3<float, highp> highp_mat3x3;
-
77 
-
78 }//namespace glm
-
79 
-
80 #endif//GLM_MAT3X3_INCLUDED
-
detail::tmat3x3< float, mediump > mediump_mat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:197
-
detail::tmat3x3< float, lowp > lowp_mat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:211
-
detail::tmat3x3< float, highp > highp_mat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:204
-
detail::tmat3x3< float, lowp > lowp_mat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:190
-
detail::tmat3x3< float, mediump > mediump_mat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:218
-
detail::tmat3x3< float, highp > highp_mat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:225
-
- - - - diff --git a/3party/glm/doc/api/a00067.html b/3party/glm/doc/api/a00067.html deleted file mode 100755 index 0cf3079bbd..0000000000 --- a/3party/glm/doc/api/a00067.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat3x4.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
mat3x4.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file mat3x4.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00067_source.html b/3party/glm/doc/api/a00067_source.html deleted file mode 100755 index f6ef93b1d3..0000000000 --- a/3party/glm/doc/api/a00067_source.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat3x4.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
mat3x4.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT3X4_INCLUDED
-
30 #define GLM_MAT3X4_INCLUDED
-
31 
-
32 #include "detail/type_mat3x4.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat3x4<float, lowp> lowp_mat3x4;
-
42 
-
48  typedef detail::tmat3x4<float, mediump> mediump_mat3x4;
-
49 
-
55  typedef detail::tmat3x4<float, highp> highp_mat3x4;
-
56 
-
57 }//namespace glm
-
58 
-
59 #endif//GLM_MAT3X4_INCLUDED
-
detail::tmat3x4< float, highp > highp_mat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:251
-
detail::tmat3x4< float, lowp > lowp_mat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:237
-
detail::tmat3x4< float, mediump > mediump_mat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:244
-
- - - - diff --git a/3party/glm/doc/api/a00068.html b/3party/glm/doc/api/a00068.html deleted file mode 100755 index bed87518f3..0000000000 --- a/3party/glm/doc/api/a00068.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat4x2.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
mat4x2.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file mat4x2.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00068_source.html b/3party/glm/doc/api/a00068_source.html deleted file mode 100755 index d8531a8121..0000000000 --- a/3party/glm/doc/api/a00068_source.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat4x2.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
mat4x2.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT4X2_INCLUDED
-
30 #define GLM_MAT4X2_INCLUDED
-
31 
-
32 #include "detail/type_mat4x2.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat4x2<float, lowp> lowp_mat4x2;
-
42 
-
48  typedef detail::tmat4x2<float, mediump> mediump_mat4x2;
-
49 
-
55  typedef detail::tmat4x2<float, highp> highp_mat4x2;
-
56 
-
57 }//namespace glm
-
58 
-
59 #endif//GLM_MAT4X2_INCLUDED
-
detail::tmat4x2< float, mediump > mediump_mat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:270
-
detail::tmat4x2< float, highp > highp_mat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:277
-
detail::tmat4x2< float, lowp > lowp_mat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:263
-
- - - - diff --git a/3party/glm/doc/api/a00069_source.html b/3party/glm/doc/api/a00069_source.html deleted file mode 100755 index 2fea425bb0..0000000000 --- a/3party/glm/doc/api/a00069_source.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat4x3.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
mat4x3.hpp
-
-
-
1 
-
29 #ifndef GLM_MAT4X3_INCLUDED
-
30 #define GLM_MAT4X3_INCLUDED
-
31 
-
32 #include "detail/type_mat4x3.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat4x3<float, lowp> lowp_mat4x3;
-
42 
-
48  typedef detail::tmat4x3<float, mediump> mediump_mat4x3;
-
49 
-
55  typedef detail::tmat4x3<float, highp> highp_mat4x3;
-
56 
-
57 }//namespace glm
-
58 
-
59 #endif//GLM_MAT4X3_INCLUDED
-
detail::tmat4x3< float, mediump > mediump_mat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:296
-
detail::tmat4x3< float, highp > highp_mat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:303
-
detail::tmat4x3< float, lowp > lowp_mat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:289
-
- - - - diff --git a/3party/glm/doc/api/a00070.html b/3party/glm/doc/api/a00070.html deleted file mode 100755 index 1b3f7cfb6d..0000000000 --- a/3party/glm/doc/api/a00070.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - -GLM: mat4x4.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
mat4x4.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file mat4x4.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00070_source.html b/3party/glm/doc/api/a00070_source.html deleted file mode 100755 index a529c20f8a..0000000000 --- a/3party/glm/doc/api/a00070_source.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -GLM: mat4x4.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
mat4x4.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_MAT4X4_INCLUDED
-
30 #define GLM_MAT4X4_INCLUDED
-
31 
-
32 #include "detail/type_mat4x4.hpp"
-
33 
-
34 namespace glm
-
35 {
-
41  typedef detail::tmat4x4<float, lowp> lowp_mat4;
-
42 
-
48  typedef detail::tmat4x4<float, mediump> mediump_mat4;
-
49 
-
55  typedef detail::tmat4x4<float, highp> highp_mat4;
-
56 
-
62  typedef detail::tmat4x4<float, lowp> lowp_mat4x4;
-
63 
-
69  typedef detail::tmat4x4<float, mediump> mediump_mat4x4;
-
70 
-
76  typedef detail::tmat4x4<float, highp> highp_mat4x4;
-
77 
-
78 }//namespace glm
-
79 
-
80 #endif//GLM_MAT4X4_INCLUDED
-
detail::tmat4x4< float, highp > highp_mat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:351
-
detail::tmat4x4< float, lowp > lowp_mat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:316
-
detail::tmat4x4< float, highp > highp_mat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:330
-
detail::tmat4x4< float, mediump > mediump_mat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:344
-
detail::tmat4x4< float, mediump > mediump_mat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:323
-
detail::tmat4x4< float, lowp > lowp_mat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:337
-
- - - - diff --git a/3party/glm/doc/api/a00071.html b/3party/glm/doc/api/a00071.html deleted file mode 100755 index 1ae73438ba..0000000000 --- a/3party/glm/doc/api/a00071.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -GLM: matrix.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
matrix.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file matrix.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00071_source.html b/3party/glm/doc/api/a00071_source.html deleted file mode 100755 index 8279eddc08..0000000000 --- a/3party/glm/doc/api/a00071_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: matrix.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
matrix.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_MATRIX_INCLUDED
-
30 #define GLM_MATRIX_INCLUDED
-
31 
-
32 #include "detail/func_matrix.hpp"
-
33 
-
34 #endif//GLM_MATRIX_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00072.html b/3party/glm/doc/api/a00072.html deleted file mode 100755 index d14b7a1673..0000000000 --- a/3party/glm/doc/api/a00072.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - -GLM: matrix_access.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
matrix_access.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_matrix_access

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

Definition in file matrix_access.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00072_source.html b/3party/glm/doc/api/a00072_source.html deleted file mode 100755 index 5fa38a6b25..0000000000 --- a/3party/glm/doc/api/a00072_source.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -GLM: matrix_access.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
matrix_access.hpp
-
-
-Go to the documentation of this file.
1 
-
37 #ifndef GLM_GTC_matrix_access
-
38 #define GLM_GTC_matrix_access
-
39 
-
40 // Dependency:
-
41 #include "../detail/setup.hpp"
-
42 
-
43 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
44 # pragma message("GLM: GLM_GTC_matrix_access extension included")
-
45 #endif
-
46 
-
47 namespace glm
-
48 {
-
51 
-
54  template <typename genType>
-
55  typename genType::row_type row(
-
56  genType const & m,
-
57  length_t const & index);
-
58 
-
61  template <typename genType>
-
62  genType row(
-
63  genType const & m,
-
64  length_t const & index,
-
65  typename genType::row_type const & x);
-
66 
-
69  template <typename genType>
-
70  typename genType::col_type column(
-
71  genType const & m,
-
72  length_t const & index);
-
73 
-
76  template <typename genType>
-
77  genType column(
-
78  genType const & m,
-
79  length_t const & index,
-
80  typename genType::col_type const & x);
-
81 
-
83 }//namespace glm
-
84 
-
85 #include "matrix_access.inl"
-
86 
-
87 #endif//GLM_GTC_matrix_access
-
genType::col_type column(genType const &m, length_t const &index)
Get a specific column of a matrix.
-
genType::row_type row(genType const &m, length_t const &index)
Get a specific row of a matrix.
-
- - - - diff --git a/3party/glm/doc/api/a00073.html b/3party/glm/doc/api/a00073.html deleted file mode 100755 index 4bbe0b2389..0000000000 --- a/3party/glm/doc/api/a00073.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: matrix_cross_product.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
matrix_cross_product.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat3x3< T, P > matrixCross3 (detail::tvec3< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > matrixCross4 (detail::tvec3< T, P > const &x)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_matrix_cross_product

-
Date
2005-12-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
- -

Definition in file matrix_cross_product.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00073_source.html b/3party/glm/doc/api/a00073_source.html deleted file mode 100755 index 27c9e1b050..0000000000 --- a/3party/glm/doc/api/a00073_source.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -GLM: matrix_cross_product.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
matrix_cross_product.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_matrix_cross_product
-
40 #define GLM_GTX_matrix_cross_product
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T, precision P>
-
57  detail::tmat3x3<T, P> matrixCross3(
-
58  detail::tvec3<T, P> const & x);
-
59 
-
62  template <typename T, precision P>
-
63  detail::tmat4x4<T, P> matrixCross4(
-
64  detail::tvec3<T, P> const & x);
-
65 
-
67 }//namespace glm
-
68 
-
69 #include "matrix_cross_product.inl"
-
70 
-
71 #endif//GLM_GTX_matrix_cross_product
-
detail::tmat4x4< T, P > matrixCross4(detail::tvec3< T, P > const &x)
Build a cross product matrix.
-
detail::tmat3x3< T, P > matrixCross3(detail::tvec3< T, P > const &x)
Build a cross product matrix.
-
- - - - diff --git a/3party/glm/doc/api/a00074.html b/3party/glm/doc/api/a00074.html deleted file mode 100755 index fe3f1d7dfb..0000000000 --- a/3party/glm/doc/api/a00074.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - -GLM: matrix_integer.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
matrix_integer.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef detail::tmat2x2< int,
-highp > 
highp_imat2
 
typedef detail::tmat2x2< int,
-highp > 
highp_imat2x2
 
typedef detail::tmat2x3< int,
-highp > 
highp_imat2x3
 
typedef detail::tmat2x4< int,
-highp > 
highp_imat2x4
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3
 
typedef detail::tmat3x2< int,
-highp > 
highp_imat3x2
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3x3
 
typedef detail::tmat3x4< int,
-highp > 
highp_imat3x4
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4
 
typedef detail::tmat4x2< int,
-highp > 
highp_imat4x2
 
typedef detail::tmat4x3< int,
-highp > 
highp_imat4x3
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4x4
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2x2
 
typedef detail::tmat2x3< uint,
-highp > 
highp_umat2x3
 
typedef detail::tmat2x4< uint,
-highp > 
highp_umat2x4
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3
 
typedef detail::tmat3x2< uint,
-highp > 
highp_umat3x2
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3x3
 
typedef detail::tmat3x4< uint,
-highp > 
highp_umat3x4
 
typedef detail::tmat4x4< uint,
-highp > 
highp_umat4
 
typedef detail::tmat4x2< uint,
-highp > 
highp_umat4x2
 
typedef detail::tmat4x3< uint,
-highp > 
highp_umat4x3
 
typedef detail::tmat4x4< uint,
-highp > 
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< int,
-lowp > 
lowp_imat2
 
typedef detail::tmat2x2< int,
-lowp > 
lowp_imat2x2
 
typedef detail::tmat2x3< int,
-lowp > 
lowp_imat2x3
 
typedef detail::tmat2x4< int,
-lowp > 
lowp_imat2x4
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3
 
typedef detail::tmat3x2< int,
-lowp > 
lowp_imat3x2
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3x3
 
typedef detail::tmat3x4< int,
-lowp > 
lowp_imat3x4
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4
 
typedef detail::tmat4x2< int,
-lowp > 
lowp_imat4x2
 
typedef detail::tmat4x3< int,
-lowp > 
lowp_imat4x3
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4x4
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2x2
 
typedef detail::tmat2x3< uint,
-lowp > 
lowp_umat2x3
 
typedef detail::tmat2x4< uint,
-lowp > 
lowp_umat2x4
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3
 
typedef detail::tmat3x2< uint,
-lowp > 
lowp_umat3x2
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3x3
 
typedef detail::tmat3x4< uint,
-lowp > 
lowp_umat3x4
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4
 
typedef detail::tmat4x2< uint,
-lowp > 
lowp_umat4x2
 
typedef detail::tmat4x3< uint,
-lowp > 
lowp_umat4x3
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4x4
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2x2
 
typedef detail::tmat2x3< int,
-mediump > 
mediump_imat2x3
 
typedef detail::tmat2x4< int,
-mediump > 
mediump_imat2x4
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3
 
typedef detail::tmat3x2< int,
-mediump > 
mediump_imat3x2
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3x3
 
typedef detail::tmat3x4< int,
-mediump > 
mediump_imat3x4
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4
 
typedef detail::tmat4x2< int,
-mediump > 
mediump_imat4x2
 
typedef detail::tmat4x3< int,
-mediump > 
mediump_imat4x3
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4x4
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2x2
 
typedef detail::tmat2x3< uint,
-mediump > 
mediump_umat2x3
 
typedef detail::tmat2x4< uint,
-mediump > 
mediump_umat2x4
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3
 
typedef detail::tmat3x2< uint,
-mediump > 
mediump_umat3x2
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3x3
 
typedef detail::tmat3x4< uint,
-mediump > 
mediump_umat3x4
 
typedef detail::tmat4x4< uint,
-mediump > 
mediump_umat4
 
typedef detail::tmat4x2< uint,
-mediump > 
mediump_umat4x2
 
typedef detail::tmat4x3< uint,
-mediump > 
mediump_umat4x3
 
typedef detail::tmat4x4< uint,
-mediump > 
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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_matrix_integer

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

Definition in file matrix_integer.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00074_source.html b/3party/glm/doc/api/a00074_source.html deleted file mode 100755 index 02b9e3ddb4..0000000000 --- a/3party/glm/doc/api/a00074_source.html +++ /dev/null @@ -1,442 +0,0 @@ - - - - - - -GLM: matrix_integer.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
matrix_integer.hpp
-
-
-Go to the documentation of this file.
1 
-
37 #ifndef GLM_GTC_matrix_integer
-
38 #define GLM_GTC_matrix_integer
-
39 
-
40 // Dependency:
-
41 #include "../mat2x2.hpp"
-
42 #include "../mat2x3.hpp"
-
43 #include "../mat2x4.hpp"
-
44 #include "../mat3x2.hpp"
-
45 #include "../mat3x3.hpp"
-
46 #include "../mat3x4.hpp"
-
47 #include "../mat4x2.hpp"
-
48 #include "../mat4x3.hpp"
-
49 #include "../mat4x4.hpp"
-
50 
-
51 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
52 # pragma message("GLM: GLM_GTC_matrix_integer extension included")
-
53 #endif
-
54 
-
55 namespace glm
-
56 {
-
59 
-
62  typedef detail::tmat2x2<int, highp> highp_imat2;
-
63 
-
66  typedef detail::tmat3x3<int, highp> highp_imat3;
-
67 
-
70  typedef detail::tmat4x4<int, highp> highp_imat4;
-
71 
-
74  typedef detail::tmat2x2<int, highp> highp_imat2x2;
-
75 
-
78  typedef detail::tmat2x3<int, highp> highp_imat2x3;
-
79 
-
82  typedef detail::tmat2x4<int, highp> highp_imat2x4;
-
83 
-
86  typedef detail::tmat3x2<int, highp> highp_imat3x2;
-
87 
-
90  typedef detail::tmat3x3<int, highp> highp_imat3x3;
-
91 
-
94  typedef detail::tmat3x4<int, highp> highp_imat3x4;
-
95 
-
98  typedef detail::tmat4x2<int, highp> highp_imat4x2;
-
99 
-
102  typedef detail::tmat4x3<int, highp> highp_imat4x3;
-
103 
-
106  typedef detail::tmat4x4<int, highp> highp_imat4x4;
-
107 
-
108 
-
111  typedef detail::tmat2x2<int, mediump> mediump_imat2;
-
112 
-
115  typedef detail::tmat3x3<int, mediump> mediump_imat3;
-
116 
-
119  typedef detail::tmat4x4<int, mediump> mediump_imat4;
-
120 
-
121 
-
124  typedef detail::tmat2x2<int, mediump> mediump_imat2x2;
-
125 
-
128  typedef detail::tmat2x3<int, mediump> mediump_imat2x3;
-
129 
-
132  typedef detail::tmat2x4<int, mediump> mediump_imat2x4;
-
133 
-
136  typedef detail::tmat3x2<int, mediump> mediump_imat3x2;
-
137 
-
140  typedef detail::tmat3x3<int, mediump> mediump_imat3x3;
-
141 
-
144  typedef detail::tmat3x4<int, mediump> mediump_imat3x4;
-
145 
-
148  typedef detail::tmat4x2<int, mediump> mediump_imat4x2;
-
149 
-
152  typedef detail::tmat4x3<int, mediump> mediump_imat4x3;
-
153 
-
156  typedef detail::tmat4x4<int, mediump> mediump_imat4x4;
-
157 
-
158 
-
161  typedef detail::tmat2x2<int, lowp> lowp_imat2;
-
162 
-
165  typedef detail::tmat3x3<int, lowp> lowp_imat3;
-
166 
-
169  typedef detail::tmat4x4<int, lowp> lowp_imat4;
-
170 
-
171 
-
174  typedef detail::tmat2x2<int, lowp> lowp_imat2x2;
-
175 
-
178  typedef detail::tmat2x3<int, lowp> lowp_imat2x3;
-
179 
-
182  typedef detail::tmat2x4<int, lowp> lowp_imat2x4;
-
183 
-
186  typedef detail::tmat3x2<int, lowp> lowp_imat3x2;
-
187 
-
190  typedef detail::tmat3x3<int, lowp> lowp_imat3x3;
-
191 
-
194  typedef detail::tmat3x4<int, lowp> lowp_imat3x4;
-
195 
-
198  typedef detail::tmat4x2<int, lowp> lowp_imat4x2;
-
199 
-
202  typedef detail::tmat4x3<int, lowp> lowp_imat4x3;
-
203 
-
206  typedef detail::tmat4x4<int, lowp> lowp_imat4x4;
-
207 
-
208 
-
211  typedef detail::tmat2x2<uint, highp> highp_umat2;
-
212 
-
215  typedef detail::tmat3x3<uint, highp> highp_umat3;
-
216 
-
219  typedef detail::tmat4x4<uint, highp> highp_umat4;
-
220 
-
223  typedef detail::tmat2x2<uint, highp> highp_umat2x2;
-
224 
-
227  typedef detail::tmat2x3<uint, highp> highp_umat2x3;
-
228 
-
231  typedef detail::tmat2x4<uint, highp> highp_umat2x4;
-
232 
-
235  typedef detail::tmat3x2<uint, highp> highp_umat3x2;
-
236 
-
239  typedef detail::tmat3x3<uint, highp> highp_umat3x3;
-
240 
-
243  typedef detail::tmat3x4<uint, highp> highp_umat3x4;
-
244 
-
247  typedef detail::tmat4x2<uint, highp> highp_umat4x2;
-
248 
-
251  typedef detail::tmat4x3<uint, highp> highp_umat4x3;
-
252 
-
255  typedef detail::tmat4x4<uint, highp> highp_umat4x4;
-
256 
-
257 
-
260  typedef detail::tmat2x2<uint, mediump> mediump_umat2;
-
261 
-
264  typedef detail::tmat3x3<uint, mediump> mediump_umat3;
-
265 
-
268  typedef detail::tmat4x4<uint, mediump> mediump_umat4;
-
269 
-
270 
-
273  typedef detail::tmat2x2<uint, mediump> mediump_umat2x2;
-
274 
-
277  typedef detail::tmat2x3<uint, mediump> mediump_umat2x3;
-
278 
-
281  typedef detail::tmat2x4<uint, mediump> mediump_umat2x4;
-
282 
-
285  typedef detail::tmat3x2<uint, mediump> mediump_umat3x2;
-
286 
-
289  typedef detail::tmat3x3<uint, mediump> mediump_umat3x3;
-
290 
-
293  typedef detail::tmat3x4<uint, mediump> mediump_umat3x4;
-
294 
-
297  typedef detail::tmat4x2<uint, mediump> mediump_umat4x2;
-
298 
-
301  typedef detail::tmat4x3<uint, mediump> mediump_umat4x3;
-
302 
-
305  typedef detail::tmat4x4<uint, mediump> mediump_umat4x4;
-
306 
-
307 
-
310  typedef detail::tmat2x2<uint, lowp> lowp_umat2;
-
311 
-
314  typedef detail::tmat3x3<uint, lowp> lowp_umat3;
-
315 
-
318  typedef detail::tmat4x4<uint, lowp> lowp_umat4;
-
319 
-
320 
-
323  typedef detail::tmat2x2<uint, lowp> lowp_umat2x2;
-
324 
-
327  typedef detail::tmat2x3<uint, lowp> lowp_umat2x3;
-
328 
-
331  typedef detail::tmat2x4<uint, lowp> lowp_umat2x4;
-
332 
-
335  typedef detail::tmat3x2<uint, lowp> lowp_umat3x2;
-
336 
-
339  typedef detail::tmat3x3<uint, lowp> lowp_umat3x3;
-
340 
-
343  typedef detail::tmat3x4<uint, lowp> lowp_umat3x4;
-
344 
-
347  typedef detail::tmat4x2<uint, lowp> lowp_umat4x2;
-
348 
-
351  typedef detail::tmat4x3<uint, lowp> lowp_umat4x3;
-
352 
-
355  typedef detail::tmat4x4<uint, lowp> lowp_umat4x4;
-
356 
-
357 #if(defined(GLM_PRECISION_HIGHP_INT))
-
358  typedef highp_imat2 imat2;
-
359  typedef highp_imat3 imat3;
-
360  typedef highp_imat4 imat4;
-
361  typedef highp_imat2x2 imat2x2;
-
362  typedef highp_imat2x3 imat2x3;
-
363  typedef highp_imat2x4 imat2x4;
-
364  typedef highp_imat3x2 imat3x2;
-
365  typedef highp_imat3x3 imat3x3;
-
366  typedef highp_imat3x4 imat3x4;
-
367  typedef highp_imat4x2 imat4x2;
-
368  typedef highp_imat4x3 imat4x3;
-
369  typedef highp_imat4x4 imat4x4;
-
370 #elif(defined(GLM_PRECISION_LOWP_INT))
-
371  typedef lowp_imat2 imat2;
-
372  typedef lowp_imat3 imat3;
-
373  typedef lowp_imat4 imat4;
-
374  typedef lowp_imat2x2 imat2x2;
-
375  typedef lowp_imat2x3 imat2x3;
-
376  typedef lowp_imat2x4 imat2x4;
-
377  typedef lowp_imat3x2 imat3x2;
-
378  typedef lowp_imat3x3 imat3x3;
-
379  typedef lowp_imat3x4 imat3x4;
-
380  typedef lowp_imat4x2 imat4x2;
-
381  typedef lowp_imat4x3 imat4x3;
-
382  typedef lowp_imat4x4 imat4x4;
-
383 #else //if(defined(GLM_PRECISION_MEDIUMP_INT))
-
384 
- -
388 
- -
392 
- -
396 
- -
400 
- -
404 
- -
408 
- -
412 
- -
416 
- -
420 
- -
424 
- -
428 
- -
432 #endif//GLM_PRECISION
-
433 
-
434 #if(defined(GLM_PRECISION_HIGHP_UINT))
-
435  typedef highp_umat2 umat2;
-
436  typedef highp_umat3 umat3;
-
437  typedef highp_umat4 umat4;
-
438  typedef highp_umat2x2 umat2x2;
-
439  typedef highp_umat2x3 umat2x3;
-
440  typedef highp_umat2x4 umat2x4;
-
441  typedef highp_umat3x2 umat3x2;
-
442  typedef highp_umat3x3 umat3x3;
-
443  typedef highp_umat3x4 umat3x4;
-
444  typedef highp_umat4x2 umat4x2;
-
445  typedef highp_umat4x3 umat4x3;
-
446  typedef highp_umat4x4 umat4x4;
-
447 #elif(defined(GLM_PRECISION_LOWP_UINT))
-
448  typedef lowp_umat2 umat2;
-
449  typedef lowp_umat3 umat3;
-
450  typedef lowp_umat4 umat4;
-
451  typedef lowp_umat2x2 umat2x2;
-
452  typedef lowp_umat2x3 umat2x3;
-
453  typedef lowp_umat2x4 umat2x4;
-
454  typedef lowp_umat3x2 umat3x2;
-
455  typedef lowp_umat3x3 umat3x3;
-
456  typedef lowp_umat3x4 umat3x4;
-
457  typedef lowp_umat4x2 umat4x2;
-
458  typedef lowp_umat4x3 umat4x3;
-
459  typedef lowp_umat4x4 umat4x4;
-
460 #else //if(defined(GLM_PRECISION_MEDIUMP_UINT))
-
461 
- -
465 
- -
469 
- -
473 
- -
477 
- -
481 
- -
485 
- -
489 
- -
493 
- -
497 
- -
501 
- -
505 
- -
509 #endif//GLM_PRECISION
-
510 
-
512 }//namespace glm
-
513 
-
514 #endif//GLM_GTC_matrix_integer
-
detail::tmat4x2< int, mediump > mediump_imat4x2
Medium-precision signed integer 4x2 matrix.
-
detail::tmat3x3< uint, lowp > lowp_umat3x3
Low-precision unsigned integer 3x3 matrix.
-
detail::tmat4x3< int, mediump > mediump_imat4x3
Medium-precision signed integer 4x3 matrix.
-
detail::tmat3x3< uint, highp > highp_umat3
High-precision unsigned integer 3x3 matrix.
-
detail::tmat2x2< int, lowp > lowp_imat2x2
Low-precision signed integer 2x2 matrix.
-
detail::tmat3x3< uint, lowp > lowp_umat3
Low-precision unsigned integer 3x3 matrix.
-
mediump_umat3x2 umat3x2
Unsigned integer 3x2 matrix.
-
detail::tmat2x2< uint, lowp > lowp_umat2
Low-precision unsigned integer 2x2 matrix.
-
detail::tmat2x4< uint, highp > highp_umat2x4
High-precision unsigned integer 2x4 matrix.
-
detail::tmat3x2< uint, lowp > lowp_umat3x2
Low-precision unsigned integer 3x2 matrix.
-
detail::tmat4x4< int, mediump > mediump_imat4x4
Medium-precision signed integer 4x4 matrix.
-
mediump_imat4x2 imat4x2
Signed integer 4x2 matrix.
-
detail::tmat2x2< uint, highp > highp_umat2
High-precision unsigned integer 2x2 matrix.
-
detail::tmat3x2< int, mediump > mediump_imat3x2
Medium-precision signed integer 3x2 matrix.
-
mediump_imat4x3 imat4x3
Signed integer 4x3 matrix.
-
mediump_imat2x4 imat2x4
Signed integer 2x4 matrix.
-
detail::tmat3x4< int, highp > highp_imat3x4
High-precision signed integer 3x4 matrix.
-
mediump_umat3x4 umat3x4
Unsigned integer 3x4 matrix.
-
mediump_imat2 imat2
Signed integer 2x2 matrix.
-
detail::tmat2x3< int, mediump > mediump_imat2x3
Medium-precision signed integer 2x3 matrix.
-
detail::tmat2x3< uint, mediump > mediump_umat2x3
Medium-precision unsigned integer 2x3 matrix.
-
detail::tmat2x2< int, highp > highp_imat2
High-precision signed integer 2x2 matrix.
-
detail::tmat2x4< uint, mediump > mediump_umat2x4
Medium-precision unsigned integer 2x4 matrix.
-
detail::tmat4x4< int, highp > highp_imat4
High-precision signed integer 4x4 matrix.
-
detail::tmat4x4< uint, highp > highp_umat4
High-precision unsigned integer 4x4 matrix.
-
detail::tmat2x2< uint, lowp > lowp_umat2x2
Low-precision unsigned integer 2x2 matrix.
-
detail::tmat4x3< uint, highp > highp_umat4x3
High-precision unsigned integer 4x3 matrix.
-
detail::tmat2x2< uint, mediump > mediump_umat2
Medium-precision unsigned integer 2x2 matrix.
-
detail::tmat3x4< int, mediump > mediump_imat3x4
Medium-precision signed integer 3x4 matrix.
-
detail::tmat2x4< uint, lowp > lowp_umat2x4
Low-precision unsigned integer 2x4 matrix.
-
detail::tmat3x3< uint, mediump > mediump_umat3
Medium-precision unsigned integer 3x3 matrix.
-
detail::tmat4x2< uint, highp > highp_umat4x2
High-precision unsigned integer 4x2 matrix.
-
mediump_umat4x3 umat4x3
Unsigned integer 4x3 matrix.
-
detail::tmat2x2< uint, mediump > mediump_umat2x2
Medium-precision unsigned integer 2x2 matrix.
-
detail::tmat4x2< uint, mediump > mediump_umat4x2
Medium-precision unsigned integer 4x2 matrix.
-
detail::tmat4x4< int, lowp > lowp_imat4x4
Low-precision signed integer 4x4 matrix.
-
mediump_imat3x2 imat3x2
Signed integer 3x2 matrix.
-
detail::tmat3x4< uint, lowp > lowp_umat3x4
Low-precision unsigned integer 3x4 matrix.
-
detail::tmat3x2< int, lowp > lowp_imat3x2
Low-precision signed integer 3x2 matrix.
-
detail::tmat4x4< uint, lowp > lowp_umat4
Low-precision unsigned integer 4x4 matrix.
-
detail::tmat3x2< uint, highp > highp_umat3x2
High-precision unsigned integer 3x2 matrix.
-
detail::tmat4x2< uint, lowp > lowp_umat4x2
Low-precision unsigned integer 4x2 matrix.
-
detail::tmat3x3< uint, mediump > mediump_umat3x3
Medium-precision unsigned integer 3x3 matrix.
-
detail::tmat4x4< int, highp > highp_imat4x4
High-precision signed integer 4x4 matrix.
-
detail::tmat2x2< int, mediump > mediump_imat2
Medium-precision signed integer 2x2 matrix.
-
mediump_imat4x4 imat4x4
Signed integer 4x4 matrix.
-
mediump_umat4 umat4
Unsigned integer 4x4 matrix.
-
detail::tmat4x3< int, lowp > lowp_imat4x3
Low-precision signed integer 4x3 matrix.
-
detail::tmat2x3< int, lowp > lowp_imat2x3
Low-precision signed integer 2x3 matrix.
-
mediump_imat3x3 imat3x3
Signed integer 3x3 matrix.
-
mediump_umat3 umat3
Unsigned integer 3x3 matrix.
-
detail::tmat2x3< uint, highp > highp_umat2x3
High-precision unsigned integer 2x3 matrix.
-
detail::tmat4x3< uint, lowp > lowp_umat4x3
Low-precision unsigned integer 4x3 matrix.
-
detail::tmat3x4< int, lowp > lowp_imat3x4
Low-precision signed integer 3x4 matrix.
-
mediump_umat4x2 umat4x2
Unsigned integer 4x2 matrix.
-
detail::tmat2x4< int, lowp > lowp_imat2x4
Low-precision signed integer 2x4 matrix.
-
mediump_imat4 imat4
Signed integer 4x4 matrix.
-
detail::tmat2x4< int, highp > highp_imat2x4
High-precision signed integer 2x4 matrix.
-
detail::tmat4x4< int, mediump > mediump_imat4
Medium-precision signed integer 4x4 matrix.
-
detail::tmat3x3< int, lowp > lowp_imat3
Low-precision signed integer 3x3 matrix.
-
detail::tmat4x4< uint, highp > highp_umat4x4
High-precision unsigned integer 4x4 matrix.
-
detail::tmat4x2< int, highp > highp_imat4x2
High-precision signed integer 4x2 matrix.
-
detail::tmat2x2< int, mediump > mediump_imat2x2
Medium-precision signed integer 2x2 matrix.
-
mediump_imat2x3 imat2x3
Signed integer 2x3 matrix.
-
detail::tmat2x2< int, lowp > lowp_imat2
Low-precision signed integer 2x2 matrix.
-
detail::tmat2x4< int, mediump > mediump_imat2x4
Medium-precision signed integer 2x4 matrix.
-
detail::tmat2x2< int, highp > highp_imat2x2
High-precision signed integer 2x2 matrix.
-
detail::tmat3x2< uint, mediump > mediump_umat3x2
Medium-precision unsigned integer 3x2 matrix.
-
mediump_umat3x3 umat3x3
Unsigned integer 3x3 matrix.
-
detail::tmat3x2< int, highp > highp_imat3x2
High-precision signed integer 3x2 matrix.
-
mediump_umat2 umat2
Unsigned integer 2x2 matrix.
-
detail::tmat3x3< int, mediump > mediump_imat3
Medium-precision signed integer 3x3 matrix.
-
mediump_umat2x2 umat2x2
Unsigned integer 2x2 matrix.
-
detail::tmat3x3< int, highp > highp_imat3
High-precision signed integer 3x3 matrix.
-
detail::tmat3x3< int, mediump > mediump_imat3x3
Medium-precision signed integer 3x3 matrix.
-
detail::tmat4x3< uint, mediump > mediump_umat4x3
Medium-precision unsigned integer 4x3 matrix.
-
mediump_umat4x4 umat4x4
Unsigned integer 4x4 matrix.
-
mediump_imat3 imat3
Signed integer 3x3 matrix.
-
mediump_imat2x2 imat2x2
Signed integer 2x2 matrix.
-
detail::tmat3x3< int, highp > highp_imat3x3
High-precision signed integer 3x3 matrix.
-
detail::tmat4x4< uint, mediump > mediump_umat4
Medium-precision unsigned integer 4x4 matrix.
-
detail::tmat3x4< uint, mediump > mediump_umat3x4
Medium-precision unsigned integer 3x4 matrix.
-
detail::tmat4x3< int, highp > highp_imat4x3
High-precision signed integer 4x3 matrix.
-
detail::tmat4x4< uint, lowp > lowp_umat4x4
Low-precision unsigned integer 4x4 matrix.
-
detail::tmat2x2< uint, highp > highp_umat2x2
High-precision unsigned integer 2x2 matrix.
-
detail::tmat4x4< uint, mediump > mediump_umat4x4
Medium-precision unsigned integer 4x4 matrix.
-
detail::tmat4x2< int, lowp > lowp_imat4x2
Low-precision signed integer 4x2 matrix.
-
detail::tmat2x3< uint, lowp > lowp_umat2x3
Low-precision unsigned integer 2x3 matrix.
-
detail::tmat3x3< int, lowp > lowp_imat3x3
Low-precision signed integer 3x3 matrix.
-
mediump_umat2x4 umat2x4
Unsigned integer 2x4 matrix.
-
mediump_umat2x3 umat2x3
Unsigned integer 2x3 matrix.
-
detail::tmat3x4< uint, highp > highp_umat3x4
High-precision unsigned integer 3x4 matrix.
-
detail::tmat4x4< int, lowp > lowp_imat4
Low-precision signed integer 4x4 matrix.
-
detail::tmat3x3< uint, highp > highp_umat3x3
High-precision unsigned integer 3x3 matrix.
-
detail::tmat2x3< int, highp > highp_imat2x3
High-precision signed integer 2x3 matrix.
-
mediump_imat3x4 imat3x4
Signed integer 3x4 matrix.
-
- - - - diff --git a/3party/glm/doc/api/a00075.html b/3party/glm/doc/api/a00075.html deleted file mode 100755 index d4a8f038a6..0000000000 --- a/3party/glm/doc/api/a00075.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - -GLM: matrix_interpolation.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
matrix_interpolation.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_matrix_interpolation

-
Date
2011-03-05 / 2011-06-07
-
Author
Ghenadii Ursachi (the.a.nosp@m.ster.nosp@m.oth@g.nosp@m.mail.nosp@m..com)
-
See Also
GLM Core (dependence)
- -

Definition in file matrix_interpolation.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00075_source.html b/3party/glm/doc/api/a00075_source.html deleted file mode 100755 index 558af6fc90..0000000000 --- a/3party/glm/doc/api/a00075_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -GLM: matrix_interpolation.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
matrix_interpolation.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_matrix_interpolation
-
39 #define GLM_GTX_matrix_interpolation
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_matrix_interpolation extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename T, precision P>
-
56  void axisAngle(
-
57  detail::tmat4x4<T, P> const & mat,
-
58  detail::tvec3<T, P> & axis,
-
59  T & angle);
-
60 
-
63  template <typename T, precision P>
-
64  detail::tmat4x4<T, P> axisAngleMatrix(
-
65  detail::tvec3<T, P> const & axis,
-
66  T const angle);
-
67 
-
70  template <typename T, precision P>
-
71  detail::tmat4x4<T, P> extractMatrixRotation(
-
72  detail::tmat4x4<T, P> const & mat);
-
73 
-
77  template <typename T, precision P>
-
78  detail::tmat4x4<T, P> interpolate(
-
79  detail::tmat4x4<T, P> const & m1,
-
80  detail::tmat4x4<T, P> const & m2,
-
81  T const delta);
-
82 
-
84 }//namespace glm
-
85 
-
86 #include "matrix_interpolation.inl"
-
87 
-
88 #endif//GLM_GTX_matrix_interpolation
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
detail::tmat4x4< T, P > extractMatrixRotation(detail::tmat4x4< T, P > const &mat)
Extracts the rotation part of a matrix.
-
void axisAngle(detail::tmat4x4< T, P > const &mat, detail::tvec3< T, P > &axis, T &angle)
Get the axis and angle of the rotation from a matrix.
-
detail::tmat4x4< T, P > interpolate(detail::tmat4x4< T, P > const &m1, detail::tmat4x4< T, P > const &m2, T const delta)
Build a interpolation of 4 * 4 matrixes.
-
detail::tmat4x4< T, P > axisAngleMatrix(detail::tvec3< T, P > const &axis, T const angle)
Build a matrix from axis and angle.
-
GLM_FUNC_DECL detail::tvec3< T, P > axis(detail::tquat< T, P > const &x)
Returns the q rotation axis.
-
- - - - diff --git a/3party/glm/doc/api/a00076.html b/3party/glm/doc/api/a00076.html deleted file mode 100755 index 4479d163cb..0000000000 --- a/3party/glm/doc/api/a00076.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - -GLM: matrix_inverse.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
matrix_inverse.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_QUALIFIER 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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_matrix_inverse

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

Definition in file matrix_inverse.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00076_source.html b/3party/glm/doc/api/a00076_source.html deleted file mode 100755 index 4107b9a1fd..0000000000 --- a/3party/glm/doc/api/a00076_source.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -GLM: matrix_inverse.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
matrix_inverse.hpp
-
-
-Go to the documentation of this file.
1 
-
37 #ifndef GLM_GTC_matrix_inverse
-
38 #define GLM_GTC_matrix_inverse
-
39 
-
40 // Dependencies
-
41 #include "../detail/setup.hpp"
-
42 
-
43 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
44 # pragma message("GLM: GLM_GTC_matrix_inverse extension included")
-
45 #endif
-
46 
-
47 namespace glm
-
48 {
-
51 
-
57  template <typename genType>
-
58  GLM_FUNC_QUALIFIER genType affineInverse(genType const & m);
-
59 
-
65  template <typename genType>
-
66  GLM_FUNC_QUALIFIER typename genType::value_type inverseTranspose(
-
67  genType const & m);
-
68 
-
70 }//namespace glm
-
71 
-
72 #include "matrix_inverse.inl"
-
73 
-
74 #endif//GLM_GTC_matrix_inverse
-
GLM_FUNC_QUALIFIER genType affineInverse(genType const &m)
Fast matrix inverse for affine matrix.
-
GLM_FUNC_QUALIFIER genType::value_type inverseTranspose(genType const &m)
Compute the inverse transpose of a matrix.
-
- - - - diff --git a/3party/glm/doc/api/a00077.html b/3party/glm/doc/api/a00077.html deleted file mode 100755 index e1701842ef..0000000000 --- a/3party/glm/doc/api/a00077.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - -GLM: matrix_major_storage.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
matrix_major_storage.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_matrix_major_storage

-
Date
2006-04-19 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
- -

Definition in file matrix_major_storage.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00077_source.html b/3party/glm/doc/api/a00077_source.html deleted file mode 100755 index dc6a851a46..0000000000 --- a/3party/glm/doc/api/a00077_source.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - -GLM: matrix_major_storage.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
matrix_major_storage.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_matrix_major_storage
-
40 #define GLM_GTX_matrix_major_storage
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_matrix_major_storage extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T, precision P>
-
57  detail::tmat2x2<T, P> rowMajor2(
-
58  detail::tvec2<T, P> const & v1,
-
59  detail::tvec2<T, P> const & v2);
-
60 
-
63  template <typename T, precision P>
-
64  detail::tmat2x2<T, P> rowMajor2(
-
65  detail::tmat2x2<T, P> const & m);
-
66 
-
69  template <typename T, precision P>
-
70  detail::tmat3x3<T, P> rowMajor3(
-
71  detail::tvec3<T, P> const & v1,
-
72  detail::tvec3<T, P> const & v2,
-
73  detail::tvec3<T, P> const & v3);
-
74 
-
77  template <typename T, precision P>
-
78  detail::tmat3x3<T, P> rowMajor3(
-
79  detail::tmat3x3<T, P> const & m);
-
80 
-
83  template <typename T, precision P>
-
84  detail::tmat4x4<T, P> rowMajor4(
-
85  detail::tvec4<T, P> const & v1,
-
86  detail::tvec4<T, P> const & v2,
-
87  detail::tvec4<T, P> const & v3,
-
88  detail::tvec4<T, P> const & v4);
-
89 
-
92  template <typename T, precision P>
-
93  detail::tmat4x4<T, P> rowMajor4(
-
94  detail::tmat4x4<T, P> const & m);
-
95 
-
98  template <typename T, precision P>
-
99  detail::tmat2x2<T, P> colMajor2(
-
100  detail::tvec2<T, P> const & v1,
-
101  detail::tvec2<T, P> const & v2);
-
102 
-
105  template <typename T, precision P>
-
106  detail::tmat2x2<T, P> colMajor2(
-
107  detail::tmat2x2<T, P> const & m);
-
108 
-
111  template <typename T, precision P>
-
112  detail::tmat3x3<T, P> colMajor3(
-
113  detail::tvec3<T, P> const & v1,
-
114  detail::tvec3<T, P> const & v2,
-
115  detail::tvec3<T, P> const & v3);
-
116 
-
119  template <typename T, precision P>
-
120  detail::tmat3x3<T, P> colMajor3(
-
121  detail::tmat3x3<T, P> const & m);
-
122 
-
125  template <typename T, precision P>
-
126  detail::tmat4x4<T, P> colMajor4(
-
127  detail::tvec4<T, P> const & v1,
-
128  detail::tvec4<T, P> const & v2,
-
129  detail::tvec4<T, P> const & v3,
-
130  detail::tvec4<T, P> const & v4);
-
131 
-
134  template <typename T, precision P>
-
135  detail::tmat4x4<T, P> colMajor4(
-
136  detail::tmat4x4<T, P> const & m);
-
137 
-
139 }//namespace glm
-
140 
-
141 #include "matrix_major_storage.inl"
-
142 
-
143 #endif//GLM_GTX_matrix_major_storage
-
detail::tmat4x4< T, P > rowMajor4(detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
Build a row major matrix from row vectors.
-
detail::tmat2x2< T, P > rowMajor2(detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
Build a row major matrix from row vectors.
-
detail::tmat3x3< T, P > rowMajor3(detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
Build a row major matrix from row vectors.
-
detail::tmat2x2< T, P > colMajor2(detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
Build a column major matrix from column vectors.
-
detail::tmat3x3< T, P > colMajor3(detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
Build a column major matrix from column vectors.
-
detail::tmat4x4< T, P > colMajor4(detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
Build a column major matrix from column vectors.
-
- - - - diff --git a/3party/glm/doc/api/a00078.html b/3party/glm/doc/api/a00078.html deleted file mode 100755 index f8088e021d..0000000000 --- a/3party/glm/doc/api/a00078.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - -GLM: matrix_operation.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
matrix_operation.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_matrix_operation

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

Definition in file matrix_operation.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00078_source.html b/3party/glm/doc/api/a00078_source.html deleted file mode 100755 index d39a15b4a8..0000000000 --- a/3party/glm/doc/api/a00078_source.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - -GLM: matrix_operation.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
matrix_operation.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_matrix_operation
-
39 #define GLM_GTX_matrix_operation
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_matrix_operation extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename T, precision P>
-
56  detail::tmat2x2<T, P> diagonal2x2(
-
57  detail::tvec2<T, P> const & v);
-
58 
-
61  template <typename T, precision P>
-
62  detail::tmat2x3<T, P> diagonal2x3(
-
63  detail::tvec2<T, P> const & v);
-
64 
-
67  template <typename T, precision P>
-
68  detail::tmat2x4<T, P> diagonal2x4(
-
69  detail::tvec2<T, P> const & v);
-
70 
-
73  template <typename T, precision P>
-
74  detail::tmat3x2<T, P> diagonal3x2(
-
75  detail::tvec2<T, P> const & v);
-
76 
-
79  template <typename T, precision P>
-
80  detail::tmat3x3<T, P> diagonal3x3(
-
81  detail::tvec3<T, P> const & v);
-
82 
-
85  template <typename T, precision P>
-
86  detail::tmat3x4<T, P> diagonal3x4(
-
87  detail::tvec3<T, P> const & v);
-
88 
-
91  template <typename T, precision P>
-
92  detail::tmat4x2<T, P> diagonal4x2(
-
93  detail::tvec2<T, P> const & v);
-
94 
-
97  template <typename T, precision P>
-
98  detail::tmat4x3<T, P> diagonal4x3(
-
99  detail::tvec3<T, P> const & v);
-
100 
-
103  template <typename T, precision P>
-
104  detail::tmat4x4<T, P> diagonal4x4(
-
105  detail::tvec4<T, P> const & v);
-
106 
-
108 }//namespace glm
-
109 
-
110 #include "matrix_operation.inl"
-
111 
-
112 #endif//GLM_GTX_matrix_operation
-
detail::tmat4x3< T, P > diagonal4x3(detail::tvec3< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat2x3< T, P > diagonal2x3(detail::tvec2< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat3x4< T, P > diagonal3x4(detail::tvec3< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat3x2< T, P > diagonal3x2(detail::tvec2< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat4x4< T, P > diagonal4x4(detail::tvec4< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat3x3< T, P > diagonal3x3(detail::tvec3< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat2x4< T, P > diagonal2x4(detail::tvec2< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat4x2< T, P > diagonal4x2(detail::tvec2< T, P > const &v)
Build a diagonal matrix.
-
detail::tmat2x2< T, P > diagonal2x2(detail::tvec2< T, P > const &v)
Build a diagonal matrix.
-
- - - - diff --git a/3party/glm/doc/api/a00079.html b/3party/glm/doc/api/a00079.html deleted file mode 100755 index 3c8ad56bc9..0000000000 --- a/3party/glm/doc/api/a00079.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - -GLM: matrix_query.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
matrix_query.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P, template< typename, precision > class matType>
bool isIdentity (matType< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class matType>
bool isOrthogonal (matType< T, P > const &m, T const &epsilon)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_matrix_query

-
Date
2007-03-05 / 2011-08-28
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_vector_query (dependence)
- -

Definition in file matrix_query.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00079_source.html b/3party/glm/doc/api/a00079_source.html deleted file mode 100755 index c32d3575f4..0000000000 --- a/3party/glm/doc/api/a00079_source.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - -GLM: matrix_query.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
matrix_query.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_matrix_query
-
40 #define GLM_GTX_matrix_query
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/vector_query.hpp"
-
45 #include <limits>
-
46 
-
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTX_matrix_query extension included")
-
49 #endif
-
50 
-
51 namespace glm
-
52 {
-
55 
-
58  template<typename T, precision P>
-
59  bool isNull(detail::tmat2x2<T, P> const & m, T const & epsilon);
-
60 
-
63  template<typename T, precision P>
-
64  bool isNull(detail::tmat3x3<T, P> const & m, T const & epsilon);
-
65 
-
68  template<typename T, precision P>
-
69  bool isNull(detail::tmat4x4<T, P> const & m, T const & epsilon);
-
70 
-
73  template<typename T, precision P, template <typename, precision> class matType>
-
74  bool isIdentity(matType<T, P> const & m, T const & epsilon);
-
75 
-
78  template<typename T, precision P>
-
79  bool isNormalized(detail::tmat2x2<T, P> const & m, T const & epsilon);
-
80 
-
83  template<typename T, precision P>
-
84  bool isNormalized(detail::tmat3x3<T, P> const & m, T const & epsilon);
-
85 
-
88  template<typename T, precision P>
-
89  bool isNormalized(detail::tmat4x4<T, P> const & m, T const & epsilon);
-
90 
-
93  template<typename T, precision P, template <typename, precision> class matType>
-
94  bool isOrthogonal(matType<T, P> const & m, T const & epsilon);
-
95 
-
97 }//namespace glm
-
98 
-
99 #include "matrix_query.inl"
-
100 
-
101 #endif//GLM_GTX_matrix_query
-
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
-
bool isOrthogonal(matType< T, P > const &m, T const &epsilon)
Return whether a matrix is an orthonormalized matrix.
-
bool isNormalized(detail::tmat2x2< T, P > const &m, T const &epsilon)
Return whether a matrix is a normalized matrix.
-
bool isNull(detail::tmat2x2< T, P > const &m, T const &epsilon)
Return whether a matrix a null matrix.
-
bool isIdentity(matType< T, P > const &m, T const &epsilon)
Return whether a matrix is an identity matrix.
-
- - - - diff --git a/3party/glm/doc/api/a00080.html b/3party/glm/doc/api/a00080.html deleted file mode 100755 index eced805997..0000000000 --- a/3party/glm/doc/api/a00080.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - -GLM: matrix_transform.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
matrix_transform.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_matrix_transform

-
Date
2009-04-29 / 2011-05-16
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_transform
-
-GLM_GTX_transform2
- -

Definition in file matrix_transform.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00080_source.html b/3party/glm/doc/api/a00080_source.html deleted file mode 100755 index f290beb0c7..0000000000 --- a/3party/glm/doc/api/a00080_source.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - -GLM: matrix_transform.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
matrix_transform.hpp
-
-
-Go to the documentation of this file.
1 
-
46 #ifndef GLM_GTC_matrix_transform
-
47 #define GLM_GTC_matrix_transform
-
48 
-
49 // Dependency:
-
50 #include "../mat4x4.hpp"
-
51 #include "../vec2.hpp"
-
52 #include "../vec3.hpp"
-
53 #include "../vec4.hpp"
-
54 
-
55 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
56 # pragma message("GLM: GLM_GTC_matrix_transform extension included")
-
57 #endif
-
58 
-
59 namespace glm
-
60 {
-
63 
-
84  template <typename T, precision P>
-
85  GLM_FUNC_DECL detail::tmat4x4<T, P> translate(
-
86  detail::tmat4x4<T, P> const & m,
-
87  detail::tvec3<T, P> const & v);
-
88 
-
100  template <typename T, precision P>
-
101  GLM_FUNC_DECL detail::tmat4x4<T, P> rotate(
-
102  detail::tmat4x4<T, P> const & m,
-
103  T const & angle,
-
104  detail::tvec3<T, P> const & axis);
-
105 
-
116  template <typename T, precision P>
-
117  GLM_FUNC_DECL detail::tmat4x4<T, P> scale(
-
118  detail::tmat4x4<T, P> const & m,
-
119  detail::tvec3<T, P> const & v);
-
120 
-
132  template <typename T>
-
133  GLM_FUNC_DECL detail::tmat4x4<T, defaultp> ortho(
-
134  T const & left,
-
135  T const & right,
-
136  T const & bottom,
-
137  T const & top,
-
138  T const & zNear,
-
139  T const & zFar);
-
140 
-
150  template <typename T>
-
151  GLM_FUNC_DECL detail::tmat4x4<T, defaultp> ortho(
-
152  T const & left,
-
153  T const & right,
-
154  T const & bottom,
-
155  T const & top);
-
156 
-
167  template <typename T, precision P>
-
168  GLM_FUNC_DECL detail::tmat4x4<T, P> frustum(
-
169  T const & left,
-
170  T const & right,
-
171  T const & bottom,
-
172  T const & top,
-
173  T const & near,
-
174  T const & far);
-
175 
-
184  template <typename T, precision P>
-
185  GLM_FUNC_DECL detail::tmat4x4<T, P> perspective(
-
186  T const & fovy,
-
187  T const & aspect,
-
188  T const & near,
-
189  T const & far);
-
190 
-
200  template <typename T, precision P>
-
201  GLM_FUNC_DECL detail::tmat4x4<T, P> perspectiveFov(
-
202  T const & fov,
-
203  T const & width,
-
204  T const & height,
-
205  T const & near,
-
206  T const & far);
-
207 
-
215  template <typename T, precision P>
-
216  GLM_FUNC_DECL detail::tmat4x4<T, P> infinitePerspective(
-
217  T fovy, T aspect, T near);
-
218 
-
226  template <typename T, precision P>
-
227  GLM_FUNC_DECL detail::tmat4x4<T, P> tweakedInfinitePerspective(
-
228  T fovy, T aspect, T near);
-
229 
-
239  template <typename T, typename U, precision P>
-
240  GLM_FUNC_DECL detail::tvec3<T, P> project(
-
241  detail::tvec3<T, P> const & obj,
-
242  detail::tmat4x4<T, P> const & model,
-
243  detail::tmat4x4<T, P> const & proj,
-
244  detail::tvec4<U, P> const & viewport);
-
245 
-
255  template <typename T, typename U, precision P>
-
256  GLM_FUNC_DECL detail::tvec3<T, P> unProject(
-
257  detail::tvec3<T, P> const & win,
-
258  detail::tmat4x4<T, P> const & model,
-
259  detail::tmat4x4<T, P> const & proj,
-
260  detail::tvec4<U, P> const & viewport);
-
261 
-
270  template <typename T, precision P, typename U>
-
271  GLM_FUNC_DECL detail::tmat4x4<T, P> pickMatrix(
-
272  detail::tvec2<T, P> const & center,
-
273  detail::tvec2<T, P> const & delta,
-
274  detail::tvec4<U, P> const & viewport);
-
275 
-
283  template <typename T, precision P>
-
284  GLM_FUNC_DECL detail::tmat4x4<T, P> lookAt(
-
285  detail::tvec3<T, P> const & eye,
-
286  detail::tvec3<T, P> const & center,
-
287  detail::tvec3<T, P> const & up);
-
288 
-
290 }//namespace glm
-
291 
-
292 #include "matrix_transform.inl"
-
293 
-
294 #endif//GLM_GTC_matrix_transform
-
GLM_FUNC_DECL detail::tmat4x4< T, P > rotate(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
-
vecType proj(vecType const &x, vecType const &Normal)
Projects x on Normal.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > scale(detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > tweakedInfinitePerspective(T fovy, T aspect, T near)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...
-
GLM_FUNC_DECL detail::tmat4x4< T, P > translate(detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
Builds a translation 4 * 4 matrix created from a vector of 3 components.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > perspective(T const &fovy, T const &aspect, T const &near, T const &far)
Creates a matrix for a symetric perspective-view frustum.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > pickMatrix(detail::tvec2< T, P > const &center, detail::tvec2< T, P > const &delta, detail::tvec4< U, P > const &viewport)
Define a picking region.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > infinitePerspective(T fovy, T aspect, T near)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.
-
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > 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.
-
GLM_FUNC_DECL detail::tvec3< T, P > axis(detail::tquat< T, P > const &x)
Returns the q rotation axis.
-
GLM_FUNC_DECL detail::tvec3< T, P > unProject(detail::tvec3< T, P > const &win, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > perspectiveFov(T const &fov, T const &width, T const &height, T const &near, T const &far)
Builds a perspective projection matrix based on a field of view.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > lookAt(detail::tvec3< T, P > const &eye, detail::tvec3< T, P > const &center, detail::tvec3< T, P > const &up)
Build a look at view matrix.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > frustum(T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far)
Creates a frustum matrix.
-
GLM_FUNC_DECL detail::tvec3< T, P > project(detail::tvec3< T, P > const &obj, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
-
- - - - diff --git a/3party/glm/doc/api/a00081.html b/3party/glm/doc/api/a00081.html deleted file mode 100755 index af3aa4503c..0000000000 --- a/3party/glm/doc/api/a00081.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -GLM: mixed_product.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
mixed_product.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - -

-Functions

-template<typename T , precision P>
mixedProduct (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_mixed_producte

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

Definition in file mixed_product.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00081_source.html b/3party/glm/doc/api/a00081_source.html deleted file mode 100755 index 12b4f13905..0000000000 --- a/3party/glm/doc/api/a00081_source.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -GLM: mixed_product.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
mixed_product.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_mixed_product
-
39 #define GLM_GTX_mixed_product
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_mixed_product extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
54  template <typename T, precision P>
-
55  T mixedProduct(
-
56  detail::tvec3<T, P> const & v1,
-
57  detail::tvec3<T, P> const & v2,
-
58  detail::tvec3<T, P> const & v3);
-
59 
-
61 }// namespace glm
-
62 
-
63 #include "mixed_product.inl"
-
64 
-
65 #endif//GLM_GTX_mixed_product
-
T mixedProduct(detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
-
- - - - diff --git a/3party/glm/doc/api/a00082.html b/3party/glm/doc/api/a00082.html deleted file mode 100755 index 3c2889b371..0000000000 --- a/3party/glm/doc/api/a00082.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: multiple.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
multiple.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_multiple

-
Date
2009-10-26 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
- -

Definition in file multiple.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00082_source.html b/3party/glm/doc/api/a00082_source.html deleted file mode 100755 index b8639ee5cb..0000000000 --- a/3party/glm/doc/api/a00082_source.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -GLM: multiple.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
multiple.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_multiple
-
40 #define GLM_GTX_multiple
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_multiple extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
61  template <typename genType>
-
62  genType higherMultiple(
-
63  genType const & Source,
-
64  genType const & Multiple);
-
65 
-
73  template <typename genType>
-
74  genType lowerMultiple(
-
75  genType const & Source,
-
76  genType const & Multiple);
-
77 
-
79 }//namespace glm
-
80 
-
81 #include "multiple.inl"
-
82 
-
83 #endif//GLM_GTX_multiple
-
genType lowerMultiple(genType const &Source, genType const &Multiple)
Lower multiple number of Source.
-
genType higherMultiple(genType const &Source, genType const &Multiple)
Higher multiple number of Source.
-
- - - - diff --git a/3party/glm/doc/api/a00083.html b/3party/glm/doc/api/a00083.html deleted file mode 100755 index b9501bb081..0000000000 --- a/3party/glm/doc/api/a00083.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -GLM: noise.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
gtc/noise.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_noise

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

Definition in file gtc/noise.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00083_source.html b/3party/glm/doc/api/a00083_source.html deleted file mode 100755 index d819247f35..0000000000 --- a/3party/glm/doc/api/a00083_source.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - -GLM: noise.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtc/noise.hpp
-
-
-Go to the documentation of this file.
1 
-
41 #ifndef GLM_GTC_noise
-
42 #define GLM_GTC_noise
-
43 
-
44 // Dependencies
-
45 #include "../detail/setup.hpp"
-
46 #include "../detail/precision.hpp"
-
47 
-
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
49 # pragma message("GLM: GLM_GTC_noise extension included")
-
50 #endif
-
51 
-
52 namespace glm
-
53 {
-
56 
-
59  template <typename T, precision P, template<typename, precision> class vecType>
-
60  T perlin(
-
61  vecType<T, P> const & p);
-
62 
-
65  template <typename T, precision P, template<typename, precision> class vecType>
-
66  T perlin(
-
67  vecType<T, P> const & p,
-
68  vecType<T, P> const & rep);
-
69 
-
72  template <typename T, precision P, template<typename, precision> class vecType>
-
73  T simplex(
-
74  vecType<T, P> const & p);
-
75 
-
77 }//namespace glm
-
78 
-
79 #include "noise.inl"
-
80 
-
81 #endif//GLM_GTC_noise
-
T simplex(vecType< T, P > const &p)
Simplex noise.
-
T perlin(vecType< T, P > const &p)
Classic perlin noise.
-
- - - - diff --git a/3party/glm/doc/api/a00084_source.html b/3party/glm/doc/api/a00084_source.html deleted file mode 100755 index df2858f090..0000000000 --- a/3party/glm/doc/api/a00084_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: noise.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtx/noise.hpp
-
-
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_random extension is deprecated, include GLM_GTC_random (glm/gtc/noise.hpp) instead")
-
26 #endif
-
27 
-
28 // Promoted:
-
29 #include "../gtc/noise.hpp"
-
- - - - diff --git a/3party/glm/doc/api/a00085.html b/3party/glm/doc/api/a00085.html deleted file mode 100755 index b09389311b..0000000000 --- a/3party/glm/doc/api/a00085.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - -GLM: norm.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
norm.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-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 , precision P>
l1Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l1Norm (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x)
 
template<typename T >
length2 (T const &x)
 
template<typename genType >
genType::value_type length2 (genType const &x)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, unsigned int Depth)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, unsigned int Depth)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_norm

-
Date
2005-12-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_quaternion (dependence)
- -

Definition in file norm.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00085_source.html b/3party/glm/doc/api/a00085_source.html deleted file mode 100755 index d339c0c76e..0000000000 --- a/3party/glm/doc/api/a00085_source.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - -GLM: norm.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
norm.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_norm
-
40 #define GLM_GTX_norm
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/quaternion.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_norm extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
57  template <typename T>
-
58  T length2(
-
59  T const & x);
-
60 
-
63  template <typename genType>
-
64  typename genType::value_type length2(
-
65  genType const & x);
-
66 
-
69  template <typename T>
-
70  T distance2(
-
71  T const & p0,
-
72  T const & p1);
-
73 
-
76  template <typename genType>
-
77  typename genType::value_type distance2(
-
78  genType const & p0,
-
79  genType const & p1);
-
80 
-
83  template <typename T, precision P>
-
84  T l1Norm(
-
85  detail::tvec3<T, P> const & x,
-
86  detail::tvec3<T, P> const & y);
-
87 
-
90  template <typename T, precision P>
-
91  T l1Norm(
-
92  detail::tvec3<T, P> const & v);
-
93 
-
96  template <typename T, precision P>
-
97  T l2Norm(
-
98  detail::tvec3<T, P> const & x,
-
99  detail::tvec3<T, P> const & y);
-
100 
-
103  template <typename T, precision P>
-
104  T l2Norm(
-
105  detail::tvec3<T, P> const & x);
-
106 
-
109  template <typename T, precision P>
-
110  T lxNorm(
-
111  detail::tvec3<T, P> const & x,
-
112  detail::tvec3<T, P> const & y,
-
113  unsigned int Depth);
-
114 
-
117  template <typename T, precision P>
-
118  T lxNorm(
-
119  detail::tvec3<T, P> const & x,
-
120  unsigned int Depth);
-
121 
-
123 }//namespace glm
-
124 
-
125 #include "norm.inl"
-
126 
-
127 #endif//GLM_GTX_norm
-
T distance2(T const &p0, T const &p1)
Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
-
T l1Norm(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
Returns the L1 norm between x and y.
-
T l2Norm(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
Returns the L2 norm between x and y.
-
T length2(T const &x)
Returns the squared length of x.
-
T lxNorm(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, unsigned int Depth)
Returns the L norm between x and y.
-
- - - - diff --git a/3party/glm/doc/api/a00086.html b/3party/glm/doc/api/a00086.html deleted file mode 100755 index 7c1497303e..0000000000 --- a/3party/glm/doc/api/a00086.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - -GLM: normal.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
normal.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_normal

-
Date
2005-12-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
- -

Definition in file normal.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00086_source.html b/3party/glm/doc/api/a00086_source.html deleted file mode 100755 index 7d39e47b71..0000000000 --- a/3party/glm/doc/api/a00086_source.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -GLM: normal.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
normal.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_normal
-
40 #define GLM_GTX_normal
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_normal extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T, precision P>
-
57  detail::tvec3<T, P> triangleNormal(
-
58  detail::tvec3<T, P> const & p1,
-
59  detail::tvec3<T, P> const & p2,
-
60  detail::tvec3<T, P> const & p3);
-
61 
-
63 }//namespace glm
-
64 
-
65 #include "normal.inl"
-
66 
-
67 #endif//GLM_GTX_normal
-
detail::tvec3< T, P > triangleNormal(detail::tvec3< T, P > const &p1, detail::tvec3< T, P > const &p2, detail::tvec3< T, P > const &p3)
Computes triangle normal from triangle points.
-
- - - - diff --git a/3party/glm/doc/api/a00087.html b/3party/glm/doc/api/a00087.html deleted file mode 100755 index b9030f1fc6..0000000000 --- a/3party/glm/doc/api/a00087.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: normalize_dot.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
normalize_dot.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_normalize_dot

-
Date
2007-09-28 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_fast_square_root (dependence)
- -

Definition in file normalize_dot.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00087_source.html b/3party/glm/doc/api/a00087_source.html deleted file mode 100755 index cad118a483..0000000000 --- a/3party/glm/doc/api/a00087_source.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - -GLM: normalize_dot.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
normalize_dot.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_normalize_dot
-
40 #define GLM_GTX_normalize_dot
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/fast_square_root.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_normalize_dot extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
58  template <typename genType>
-
59  typename genType::value_type normalizeDot(
-
60  genType const & x,
-
61  genType const & y);
-
62 
-
66  template <typename genType>
-
67  typename genType::value_type fastNormalizeDot(
-
68  genType const & x,
-
69  genType const & y);
-
70 
-
72 }//namespace glm
-
73 
-
74 #include "normalize_dot.inl"
-
75 
-
76 #endif//GLM_GTX_normalize_dot
-
genType::value_type fastNormalizeDot(genType const &x, genType const &y)
Normalize parameters and returns the dot product of x and y.
-
genType::value_type normalizeDot(genType const &x, genType const &y)
Normalize parameters and returns the dot product of x and y.
-
- - - - diff --git a/3party/glm/doc/api/a00088.html b/3party/glm/doc/api/a00088.html deleted file mode 100755 index 92cb8634f5..0000000000 --- a/3party/glm/doc/api/a00088.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - -GLM: number_precision.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
number_precision.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_number_precision

-
Date
2007-05-10 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTC_type_precision (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file number_precision.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00088_source.html b/3party/glm/doc/api/a00088_source.html deleted file mode 100755 index 0d344c6761..0000000000 --- a/3party/glm/doc/api/a00088_source.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - -GLM: number_precision.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
number_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTX_number_precision
-
41 #define GLM_GTX_number_precision
-
42 
-
43 // Dependency:
-
44 #include "../glm.hpp"
-
45 #include "../gtc/type_precision.hpp"
-
46 
-
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTX_number_precision extension included")
-
49 #endif
-
50 
-
51 namespace glm{
-
52 namespace gtx
-
53 {
-
55  // Unsigned int vector types
-
56 
-
59 
-
60  typedef u8 u8vec1;
-
61  typedef u16 u16vec1;
-
62  typedef u32 u32vec1;
-
63  typedef u64 u64vec1;
-
64 
-
66  // Float vector types
-
67 
-
68  typedef f32 f32vec1;
-
69  typedef f64 f64vec1;
-
70 
-
72  // Float matrix types
-
73 
-
74  typedef f32 f32mat1;
-
75  typedef f32 f32mat1x1;
-
76  typedef f64 f64mat1;
-
77  typedef f64 f64mat1x1;
-
78 
-
80 }//namespace gtx
-
81 }//namespace glm
-
82 
-
83 #include "number_precision.inl"
-
84 
-
85 #endif//GLM_GTX_number_precision
-
highp_u16vec1 u16vec1
Default precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1071
-
highp_u64vec1 u64vec1
Default precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1309
-
highp_float32_t f32
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1523
-
detail::uint8 u8
8 bit unsigned integer type.
Definition: fwd.hpp:911
-
f32 f32mat1
Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
highp_f64vec1 f64vec1
Default double-precision floating-point vector of 1 components.
Definition: fwd.hpp:2530
-
f64 f64mat1x1
Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
f64 f64mat1
Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
detail::uint64 u64
64 bit unsigned integer type.
Definition: fwd.hpp:923
-
detail::uint32 u32
32 bit unsigned integer type.
Definition: fwd.hpp:919
-
highp_f32vec1 f32vec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2423
-
highp_u8vec1 u8vec1
Default precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:991
-
highp_float64_t f64
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1527
-
highp_u32vec1 u32vec1
Default precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1150
-
detail::uint16 u16
16 bit unsigned integer type.
Definition: fwd.hpp:915
-
f32 f32mat1x1
Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
- - - - diff --git a/3party/glm/doc/api/a00089.html b/3party/glm/doc/api/a00089.html deleted file mode 100755 index 041f67bd42..0000000000 --- a/3party/glm/doc/api/a00089.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -GLM: optimum_pow.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
optimum_pow.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - -

-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)
 
template<precision P>
detail::tvec2< bool, P > powOfTwo (detail::tvec2< int, P > const &x)
 
template<precision P>
detail::tvec3< bool, P > powOfTwo (detail::tvec3< int, P > const &x)
 
template<precision P>
detail::tvec4< bool, P > powOfTwo (detail::tvec4< int, P > const &x)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_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/3party/glm/doc/api/a00089_source.html b/3party/glm/doc/api/a00089_source.html deleted file mode 100755 index 05129d81a0..0000000000 --- a/3party/glm/doc/api/a00089_source.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -GLM: optimum_pow.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
optimum_pow.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_optimum_pow
-
39 #define GLM_GTX_optimum_pow
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_optimum_pow extension included")
-
46 #endif
-
47 
-
48 namespace glm{
-
49 namespace gtx
-
50 {
-
53 
-
56  template <typename genType>
-
57  genType pow2(const genType& x);
-
58 
-
61  template <typename genType>
-
62  genType pow3(const genType& x);
-
63 
-
66  template <typename genType>
-
67  genType pow4(const genType& x);
-
68 
-
71  bool powOfTwo(int num);
-
72 
-
75  template <precision P>
-
76  detail::tvec2<bool, P> powOfTwo(detail::tvec2<int, P> const & x);
-
77 
-
80  template <precision P>
-
81  detail::tvec3<bool, P> powOfTwo(detail::tvec3<int, P> const & x);
-
82 
-
85  template <precision P>
-
86  detail::tvec4<bool, P> powOfTwo(detail::tvec4<int, P> const & x);
-
87 
-
89 }//namespace gtx
-
90 }//namespace glm
-
91 
-
92 #include "optimum_pow.inl"
-
93 
-
94 #endif//GLM_GTX_optimum_pow
-
genType pow3(const genType &x)
Returns x raised to the power of 3.
-
genType pow4(const genType &x)
Returns x raised to the power of 4.
-
genType pow2(const genType &x)
Returns x raised to the power of 2.
-
bool powOfTwo(int num)
Checks if the parameter is a power of 2 number.
-
- - - - diff --git a/3party/glm/doc/api/a00090.html b/3party/glm/doc/api/a00090.html deleted file mode 100755 index a0b9b8aab9..0000000000 --- a/3party/glm/doc/api/a00090.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: orthonormalize.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
orthonormalize.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_orthonormalize

-
Date
2005-12-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
- -

Definition in file orthonormalize.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00090_source.html b/3party/glm/doc/api/a00090_source.html deleted file mode 100755 index 9e016ecf7f..0000000000 --- a/3party/glm/doc/api/a00090_source.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -GLM: orthonormalize.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
orthonormalize.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_orthonormalize
-
40 #define GLM_GTX_orthonormalize
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_orthonormalize extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename T, precision P>
-
57  detail::tmat3x3<T, P> orthonormalize(
-
58  const detail::tmat3x3<T, P>& m);
-
59 
-
62  template <typename T, precision P>
-
63  detail::tvec3<T, P> orthonormalize(
-
64  const detail::tvec3<T, P>& x,
-
65  const detail::tvec3<T, P>& y);
-
66 
-
68 }//namespace glm
-
69 
-
70 #include "orthonormalize.inl"
-
71 
-
72 #endif//GLM_GTX_orthonormalize
-
detail::tmat3x3< T, P > orthonormalize(const detail::tmat3x3< T, P > &m)
Returns the orthonormalized matrix of m.
-
- - - - diff --git a/3party/glm/doc/api/a00091.html b/3party/glm/doc/api/a00091.html deleted file mode 100755 index 60e765f3cc..0000000000 --- a/3party/glm/doc/api/a00091.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - -GLM: packing.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
gtc/packing.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 
GLM_FUNC_DECL uint16 packHalf1x16 (float const &v)
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float const &s)
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float const &v)
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 const &p)
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 const &v)
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 const &p)
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 const &p)
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 const &p)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_packing

-
Date
2013-08-08 / 2013-08-08
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
- -

Definition in file gtc/packing.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00091_source.html b/3party/glm/doc/api/a00091_source.html deleted file mode 100755 index b2a39f4440..0000000000 --- a/3party/glm/doc/api/a00091_source.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - -GLM: packing.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtc/packing.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTC_packing
-
40 #define GLM_GTC_packing
-
41 
-
42 // Dependency:
-
43 #include "type_precision.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTC_packing extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
65  GLM_FUNC_DECL uint8 packUnorm1x8(float const & v);
-
66 
-
77  GLM_FUNC_DECL float unpackUnorm1x8(uint8 const & p);
-
78 
-
93  GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const & v);
-
94 
-
109  GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 const & p);
-
110 
-
122  GLM_FUNC_DECL uint8 packSnorm1x8(float const & s);
-
123 
-
135  GLM_FUNC_DECL float unpackSnorm1x8(uint8 const & p);
-
136 
-
151  GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const & v);
-
152 
-
167  GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 const & p);
-
168 
-
180  GLM_FUNC_DECL uint16 packUnorm1x16(float const & v);
-
181 
-
193  GLM_FUNC_DECL float unpackUnorm1x16(uint16 const & p);
-
194 
-
209  GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const & v);
-
210 
-
225  GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 const & p);
-
226 
-
238  GLM_FUNC_DECL uint16 packSnorm1x16(float const & v);
-
239 
-
251  GLM_FUNC_DECL float unpackSnorm1x16(uint16 const & p);
-
252 
-
267  GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const & v);
-
268 
-
283  GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 const & p);
-
284 
-
294  GLM_FUNC_DECL uint16 packHalf1x16(float const & v);
-
295 
-
305  GLM_FUNC_DECL float unpackHalf1x16(uint16 const & v);
-
306 
-
318  GLM_FUNC_DECL uint64 packHalf4x16(vec4 const & v);
-
319 
-
331  GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 const & p);
-
332 
-
344  GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const & v);
-
345 
-
355  GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 const & p);
-
356 
-
368  GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const & v);
-
369 
-
379  GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 const & p);
-
380 
-
397  GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const & v);
-
398 
-
414  GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 const & p);
-
415 
-
432  GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const & v);
-
433 
-
449  GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 const & p);
-
450 
-
460  GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const & v);
-
461 
-
470  GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 const & p);
-
471 
-
473 }// namespace glm
-
474 
-
475 #include "packing.inl"
-
476 
-
477 #endif//GLM_GTC_packing
-
478 
-
highp_ivec4 ivec4
4 components vector of signed integer numbers.
Definition: type_vec.hpp:454
-
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:393
-
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:96
-
GLM_FUNC_DECL float unpackUnorm1x16(uint16 const &p)
First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers.
-
GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8-bit integer values...
-
GLM_FUNC_DECL uint16 packSnorm1x16(float const &v)
First, converts the normalized floating-point value v into 16-bit integer value.
-
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:398
-
GLM_FUNC_DECL uint8 packSnorm1x8(float const &s)
First, converts the normalized floating-point value v into 8-bit integer value.
-
GLM_FUNC_DECL float unpackUnorm1x8(uint8 const &p)
Convert a single 8-bit integer to a normalized floating-point value.
-
GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const &v)
First, converts the first three components of the normalized floating-point value v into 10-bit unsig...
-
GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const &v)
First, converts each component of the normalized floating-point value v into 16-bit integer values...
-
GLM_FUNC_DECL float unpackSnorm1x16(uint16 const &p)
First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers.
-
GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component signed integer ...
-
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:97
-
GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 const &p)
First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers.
-
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 const &p)
First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.
-
GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const &v)
First, converts the first three components of the normalized floating-point value v into 10-bit signe...
-
GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 const &p)
First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...
-
GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component unsigned intege...
-
OpenGL Mathematics (glm.g-truc.net)
-
GLM_FUNC_DECL float unpackSnorm1x8(uint8 const &p)
First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers.
-
GLM_FUNC_DECL uint16 packHalf1x16(float const &v)
Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 1...
-
GLM_FUNC_DECL uint16 packUnorm1x16(float const &v)
First, converts the normalized floating-point value v into a 16-bit integer value.
-
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:94
-
GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8-bit integer values...
-
GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 const &p)
Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers...
-
GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 const &p)
First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers.
-
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 const &p)
First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.
-
GLM_FUNC_DECL uint64 packHalf4x16(vec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component floating-point ...
-
GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 const &p)
Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers...
-
GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 const &p)
First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers.
-
highp_uvec4 uvec4
4 components vector of unsigned integer numbers.
Definition: type_vec.hpp:482
-
GLM_FUNC_DECL float unpackHalf1x16(uint16 const &v)
Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into ...
-
GLM_FUNC_DECL uint8 packUnorm1x8(float const &v)
First, converts the normalized floating-point value v into a 8-bit integer value. ...
-
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:95
-
GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 const &p)
First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers.
-
GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const &v)
First, converts each component of the normalized floating-point value v into 16-bit integer values...
-
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:388
-
GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 const &p)
Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigne...
-
GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const &v)
First, converts the first two components of the normalized floating-point value v into 11-bit signles...
-
- - - - diff --git a/3party/glm/doc/api/a00092.html b/3party/glm/doc/api/a00092.html deleted file mode 100755 index 25ea59da9b..0000000000 --- a/3party/glm/doc/api/a00092.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -GLM: packing.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
packing.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file packing.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00092_source.html b/3party/glm/doc/api/a00092_source.html deleted file mode 100755 index f66ce4f98e..0000000000 --- a/3party/glm/doc/api/a00092_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: packing.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
packing.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_PACKING_INCLUDED
-
30 #define GLM_PACKING_INCLUDED
-
31 
-
32 #include "detail/func_packing.hpp"
-
33 
-
34 #endif//GLM_PACKING_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00093_source.html b/3party/glm/doc/api/a00093_source.html deleted file mode 100755 index 5c60406fa3..0000000000 --- a/3party/glm/doc/api/a00093_source.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -GLM: pages.doxy Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
pages.doxy
-
-
-
1 
-
- - - - diff --git a/3party/glm/doc/api/a00094.html b/3party/glm/doc/api/a00094.html deleted file mode 100755 index 11fc0aa447..0000000000 --- a/3party/glm/doc/api/a00094.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - -GLM: perpendicular.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
perpendicular.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_perpendicular

-
Date
2005-12-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_projection (dependence)
- -

Definition in file perpendicular.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00094_source.html b/3party/glm/doc/api/a00094_source.html deleted file mode 100755 index 5507394afd..0000000000 --- a/3party/glm/doc/api/a00094_source.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -GLM: perpendicular.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
perpendicular.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_perpendicular
-
40 #define GLM_GTX_perpendicular
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/projection.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_perpendicular extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
57  template <typename vecType>
-
58  vecType perp(
-
59  vecType const & x,
-
60  vecType const & Normal);
-
61 
-
63 }//namespace glm
-
64 
-
65 #include "perpendicular.inl"
-
66 
-
67 #endif//GLM_GTX_perpendicular
-
vecType perp(vecType const &x, vecType const &Normal)
Projects x a perpendicular axis of Normal.
-
- - - - diff --git a/3party/glm/doc/api/a00095.html b/3party/glm/doc/api/a00095.html deleted file mode 100755 index dca9688465..0000000000 --- a/3party/glm/doc/api/a00095.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -GLM: polar_coordinates.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
polar_coordinates.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-Functions

template<typename T , precision P>
detail::tvec3< T, P > euclidean (detail::tvec2< T, P > const &polar)
 
template<typename T , precision P>
detail::tvec3< T, P > polar (detail::tvec3< T, P > const &euclidean)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_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/3party/glm/doc/api/a00095_source.html b/3party/glm/doc/api/a00095_source.html deleted file mode 100755 index 96c878c8c1..0000000000 --- a/3party/glm/doc/api/a00095_source.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -GLM: polar_coordinates.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
polar_coordinates.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_polar_coordinates
-
39 #define GLM_GTX_polar_coordinates
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_polar_coordinates extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
56  template <typename T, precision P>
-
57  detail::tvec3<T, P> polar(
-
58  detail::tvec3<T, P> const & euclidean);
-
59 
-
63  template <typename T, precision P>
-
64  detail::tvec3<T, P> euclidean(
-
65  detail::tvec2<T, P> const & polar);
-
66 
-
68 }//namespace glm
-
69 
-
70 #include "polar_coordinates.inl"
-
71 
-
72 #endif//GLM_GTX_polar_coordinates
-
detail::tvec3< T, P > euclidean(detail::tvec2< T, P > const &polar)
Convert Polar to Euclidean coordinates.
-
detail::tvec3< T, P > polar(detail::tvec3< T, P > const &euclidean)
Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude...
-
- - - - diff --git a/3party/glm/doc/api/a00096_source.html b/3party/glm/doc/api/a00096_source.html deleted file mode 100755 index cf2d1aa2e7..0000000000 --- a/3party/glm/doc/api/a00096_source.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - -GLM: precision.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
precision.hpp
-
-
-
1 
-
29 #ifndef GLM_CORE_PRECISION_INCLUDED
-
30 #define GLM_CORE_PRECISION_INCLUDED
-
31 
-
32 namespace glm
-
33 {
-
34  enum precision
-
35  {
-
36  highp,
-
37  mediump,
-
38  lowp,
-
39  defaultp = highp
-
40  };
-
41 }//namespace glm
-
42 
-
43 #endif//GLM_CORE_PRECISION_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00097.html b/3party/glm/doc/api/a00097.html deleted file mode 100755 index f7dc68ad9d..0000000000 --- a/3party/glm/doc/api/a00097.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -GLM: projection.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
projection.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_projection

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

Definition in file projection.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00097_source.html b/3party/glm/doc/api/a00097_source.html deleted file mode 100755 index eef59d8e29..0000000000 --- a/3party/glm/doc/api/a00097_source.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - -GLM: projection.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
projection.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_projection
-
39 #define GLM_GTX_projection
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_projection extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename vecType>
-
56  vecType proj(
-
57  vecType const & x,
-
58  vecType const & Normal);
-
59 
-
61 }//namespace glm
-
62 
-
63 #include "projection.inl"
-
64 
-
65 #endif//GLM_GTX_projection
-
vecType proj(vecType const &x, vecType const &Normal)
Projects x on Normal.
-
- - - - diff --git a/3party/glm/doc/api/a00098.html b/3party/glm/doc/api/a00098.html deleted file mode 100755 index 0720d17e3e..0000000000 --- a/3party/glm/doc/api/a00098.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - -GLM: quaternion.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
gtc/quaternion.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
GLM_FUNC_DECL T angle (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > angleAxis (T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > axis (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > conjugate (detail::tquat< T, P > const &q)
 
template<typename T , precision P, template< typename, precision > class quatType>
GLM_FUNC_DECL T dot (quatType< T, P > const &x, quatType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
equal (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > eulerAngles (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > inverse (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL T length (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > lerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat3x3
-< T, P > 
mat3_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
mat4_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > mix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > normalize (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
notEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T pitch (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat4x4< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL T roll (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > rotate (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL T yaw (detail::tquat< T, P > const &x)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_quaternion

-
Date
2009-05-21 / 2012-12-20
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-GLM_GTC_constants (dependence)
- -

Definition in file gtc/quaternion.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00098_source.html b/3party/glm/doc/api/a00098_source.html deleted file mode 100755 index 71b41d5e73..0000000000 --- a/3party/glm/doc/api/a00098_source.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - -GLM: quaternion.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtc/quaternion.hpp
-
-
-Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTC_quaternion
-
41 #define GLM_GTC_quaternion
-
42 
-
43 // Dependency:
-
44 #include "../mat3x3.hpp"
-
45 #include "../mat4x4.hpp"
-
46 #include "../vec3.hpp"
-
47 #include "../vec4.hpp"
-
48 #include "../gtc/constants.hpp"
-
49 
-
50 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
51 # pragma message("GLM: GLM_GTC_quaternion extension included")
-
52 #endif
-
53 
-
54 namespace glm{
-
55 namespace detail
-
56 {
-
57  template <typename T, precision P>
-
58  struct tquat
-
59  {
-
60  enum ctor{null};
-
61 
-
62  typedef tvec4<bool, P> bool_type;
-
63 
-
64  public:
-
65  T x, y, z, w;
-
66 
-
67  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
68 
-
69  // Constructors
-
70  GLM_FUNC_DECL tquat();
-
71  template <typename U, precision Q>
-
72  GLM_FUNC_DECL explicit tquat(
-
73  tquat<U, Q> const & q);
-
74  GLM_FUNC_DECL explicit tquat(
-
75  T const & s,
-
76  tvec3<T, P> const & v);
-
77  GLM_FUNC_DECL explicit tquat(
-
78  T const & w,
-
79  T const & x,
-
80  T const & y,
-
81  T const & z);
-
82 
-
83 #if(GLM_HAS_INITIALIZER_LISTS)
-
84  template <typename U>
-
85  GLM_FUNC_DECL tquat(std::initializer_list<U> l);
-
86 #endif//GLM_HAS_INITIALIZER_LISTS
-
87 
-
88  // Convertions
-
89 
-
96  GLM_FUNC_DECL explicit tquat(
-
97  detail::tvec3<T, P> const & u,
-
98  detail::tvec3<T, P> const & v);
-
100  GLM_FUNC_DECL explicit tquat(
-
101  tvec3<T, P> const & eulerAngles);
-
102  GLM_FUNC_DECL explicit tquat(
-
103  tmat3x3<T, P> const & m);
-
104  GLM_FUNC_DECL explicit tquat(
-
105  tmat4x4<T, P> const & m);
-
106 
-
107  // Accesses
-
108  GLM_FUNC_DECL T & operator[](length_t i);
-
109  GLM_FUNC_DECL T const & operator[](length_t i) const;
-
110 
-
111  // Operators
-
112  GLM_FUNC_DECL tquat<T, P> & operator+=(tquat<T, P> const & q);
-
113  GLM_FUNC_DECL tquat<T, P> & operator*=(tquat<T, P> const & q);
-
114  GLM_FUNC_DECL tquat<T, P> & operator*=(T const & s);
-
115  GLM_FUNC_DECL tquat<T, P> & operator/=(T const & s);
-
116  };
-
117 
-
118  template <typename T, precision P>
-
119  GLM_FUNC_DECL detail::tquat<T, P> operator- (
-
120  detail::tquat<T, P> const & q);
-
121 
-
122  template <typename T, precision P>
-
123  GLM_FUNC_DECL detail::tquat<T, P> operator+ (
-
124  detail::tquat<T, P> const & q,
-
125  detail::tquat<T, P> const & p);
-
126 
-
127  template <typename T, precision P>
-
128  GLM_FUNC_DECL detail::tquat<T, P> operator* (
-
129  detail::tquat<T, P> const & q,
-
130  detail::tquat<T, P> const & p);
-
131 
-
132  template <typename T, precision P>
-
133  GLM_FUNC_DECL detail::tvec3<T, P> operator* (
-
134  detail::tquat<T, P> const & q,
-
135  detail::tvec3<T, P> const & v);
-
136 
-
137  template <typename T, precision P>
-
138  GLM_FUNC_DECL detail::tvec3<T, P> operator* (
-
139  detail::tvec3<T, P> const & v,
-
140  detail::tquat<T, P> const & q);
-
141 
-
142  template <typename T, precision P>
-
143  GLM_FUNC_DECL detail::tvec4<T, P> operator* (
-
144  detail::tquat<T, P> const & q,
-
145  detail::tvec4<T, P> const & v);
-
146 
-
147  template <typename T, precision P>
-
148  GLM_FUNC_DECL detail::tvec4<T, P> operator* (
-
149  detail::tvec4<T, P> const & v,
-
150  detail::tquat<T, P> const & q);
-
151 
-
152  template <typename T, precision P>
-
153  GLM_FUNC_DECL detail::tquat<T, P> operator* (
-
154  detail::tquat<T, P> const & q,
-
155  T const & s);
-
156 
-
157  template <typename T, precision P>
-
158  GLM_FUNC_DECL detail::tquat<T, P> operator* (
-
159  T const & s,
-
160  detail::tquat<T, P> const & q);
-
161 
-
162  template <typename T, precision P>
-
163  GLM_FUNC_DECL detail::tquat<T, P> operator/ (
-
164  detail::tquat<T, P> const & q,
-
165  T const & s);
-
166 
-
167 } //namespace detail
-
168 
-
171 
-
175  template <typename T, precision P>
-
176  GLM_FUNC_DECL T length(
-
177  detail::tquat<T, P> const & q);
-
178 
-
182  template <typename T, precision P>
-
183  GLM_FUNC_DECL detail::tquat<T, P> normalize(
-
184  detail::tquat<T, P> const & q);
-
185 
-
189  template <typename T, precision P, template <typename, precision> class quatType>
-
190  GLM_FUNC_DECL T dot(
-
191  quatType<T, P> const & x,
-
192  quatType<T, P> const & y);
-
193 
-
204  template <typename T, precision P>
-
205  GLM_FUNC_DECL detail::tquat<T, P> mix(
-
206  detail::tquat<T, P> const & x,
-
207  detail::tquat<T, P> const & y,
-
208  T const & a);
-
209 
-
218  template <typename T, precision P>
-
219  GLM_FUNC_DECL detail::tquat<T, P> lerp(
-
220  detail::tquat<T, P> const & x,
-
221  detail::tquat<T, P> const & y,
-
222  T const & a);
-
223 
-
232  template <typename T, precision P>
-
233  GLM_FUNC_DECL detail::tquat<T, P> slerp(
-
234  detail::tquat<T, P> const & x,
-
235  detail::tquat<T, P> const & y,
-
236  T const & a);
-
237 
-
241  template <typename T, precision P>
-
242  GLM_FUNC_DECL detail::tquat<T, P> conjugate(
-
243  detail::tquat<T, P> const & q);
-
244 
-
248  template <typename T, precision P>
-
249  GLM_FUNC_DECL detail::tquat<T, P> inverse(
-
250  detail::tquat<T, P> const & q);
-
251 
-
259  template <typename T, precision P>
-
260  GLM_FUNC_DECL detail::tquat<T, P> rotate(
-
261  detail::tquat<T, P> const & q,
-
262  T const & angle,
-
263  detail::tvec3<T, P> const & axis);
-
264 
-
269  template <typename T, precision P>
-
270  GLM_FUNC_DECL detail::tvec3<T, P> eulerAngles(
-
271  detail::tquat<T, P> const & x);
-
272 
-
276  template <typename T, precision P>
-
277  GLM_FUNC_DECL T roll(detail::tquat<T, P> const & x);
-
278 
-
282  template <typename T, precision P>
-
283  GLM_FUNC_DECL T pitch(detail::tquat<T, P> const & x);
-
284 
-
288  template <typename T, precision P>
-
289  GLM_FUNC_DECL T yaw(detail::tquat<T, P> const & x);
-
290 
-
294  template <typename T, precision P>
-
295  GLM_FUNC_DECL detail::tmat3x3<T, P> mat3_cast(
-
296  detail::tquat<T, P> const & x);
-
297 
-
301  template <typename T, precision P>
-
302  GLM_FUNC_DECL detail::tmat4x4<T, P> mat4_cast(
-
303  detail::tquat<T, P> const & x);
-
304 
-
308  template <typename T, precision P>
-
309  GLM_FUNC_DECL detail::tquat<T, P> quat_cast(
-
310  detail::tmat3x3<T, P> const & x);
-
311 
-
315  template <typename T, precision P>
-
316  GLM_FUNC_DECL detail::tquat<T, P> quat_cast(
-
317  detail::tmat4x4<T, P> const & x);
-
318 
-
322  template <typename T, precision P>
-
323  GLM_FUNC_DECL T angle(detail::tquat<T, P> const & x);
-
324 
-
328  template <typename T, precision P>
-
329  GLM_FUNC_DECL detail::tvec3<T, P> axis(
-
330  detail::tquat<T, P> const & x);
-
331 
-
338  template <typename T, precision P>
-
339  GLM_FUNC_DECL detail::tquat<T, P> angleAxis(
-
340  T const & angle,
-
341  detail::tvec3<T, P> const & axis);
-
342 
-
348  template <typename T, precision P>
-
349  GLM_FUNC_DECL detail::tvec4<bool, P> lessThan(
-
350  detail::tquat<T, P> const & x,
-
351  detail::tquat<T, P> const & y);
-
352 
-
358  template <typename T, precision P>
-
359  GLM_FUNC_DECL detail::tvec4<bool, P> lessThanEqual(
-
360  detail::tquat<T, P> const & x,
-
361  detail::tquat<T, P> const & y);
-
362 
-
368  template <typename T, precision P>
-
369  GLM_FUNC_DECL detail::tvec4<bool, P> greaterThan(
-
370  detail::tquat<T, P> const & x,
-
371  detail::tquat<T, P> const & y);
-
372 
-
378  template <typename T, precision P>
-
379  GLM_FUNC_DECL detail::tvec4<bool, P> greaterThanEqual(
-
380  detail::tquat<T, P> const & x,
-
381  detail::tquat<T, P> const & y);
-
382 
-
388  template <typename T, precision P>
-
389  GLM_FUNC_DECL detail::tvec4<bool, P> equal(
-
390  detail::tquat<T, P> const & x,
-
391  detail::tquat<T, P> const & y);
-
392 
-
398  template <typename T, precision P>
-
399  GLM_FUNC_DECL detail::tvec4<bool, P> notEqual(
-
400  detail::tquat<T, P> const & x,
-
401  detail::tquat<T, P> const & y);
-
402 
-
404 } //namespace glm
-
405 
-
406 #include "quaternion.inl"
-
407 
-
408 #endif//GLM_GTC_quaternion
-
GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the dot product of x and y, i.e., result = x * y.
-
GLM_FUNC_DECL vecType< T, P >::bool_type notEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x == y.
-
GLM_FUNC_DECL detail::tquat< T, P > lerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Linear interpolation of two quaternions.
-
GLM_FUNC_DECL detail::tquat< T, P > angleAxis(T const &angle, detail::tvec3< T, P > const &axis)
Build a quaternion from an angle and a normalized axis.
-
GLM_FUNC_DECL detail::tquat< T, P > quat_cast(detail::tmat3x3< T, P > const &x)
Converts a 3 * 3 matrix to a quaternion.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > rotate(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
-
GLM_FUNC_DECL genTypeT mix(genTypeT const &x, genTypeT const &y, genTypeU const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL detail::tvec3< T, P > eulerAngles(detail::tquat< T, P > const &x)
Returns euler angles, yitch as x, yaw as y, roll as z.
-
GLM_FUNC_DECL vecType< T, P >::bool_type greaterThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x &gt;= y.
-
GLM_FUNC_DECL genType normalize(genType const &x)
Returns a vector in the same direction as x but with length of 1.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > mat4_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
GLM_FUNC_DECL T roll(detail::tquat< T, P > const &x)
Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees ot...
-
GLM_FUNC_DECL detail::tvec4< bool, P > lessThan(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
Returns the component-wise comparison result of x &lt; y.
-
GLM_FUNC_DECL detail::tmat3x3< T, P > mat3_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 3 * 3 matrix.
-
GLM_FUNC_DECL detail::tvec3< T, P > axis(detail::tquat< T, P > const &x)
Returns the q rotation axis.
-
GLM_FUNC_DECL detail::tvec4< bool, P > equal(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
Returns the component-wise comparison of result x == y.
-
GLM_FUNC_DECL detail::tquat< T, P > slerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Spherical linear interpolation of two quaternions.
-
GLM_FUNC_DECL T pitch(detail::tquat< T, P > const &x)
Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees o...
-
GLM_FUNC_DECL detail::tquat< T, P > conjugate(detail::tquat< T, P > const &q)
Returns the q conjugate.
-
GLM_FUNC_DECL vecType< T, P >::bool_type greaterThan(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison of result x &gt; y.
-
GLM_FUNC_DECL T yaw(detail::tquat< T, P > const &x)
Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees oth...
-
GLM_FUNC_DECL detail::tquat< T, P > inverse(detail::tquat< T, P > const &q)
Returns the q inverse.
-
GLM_FUNC_DECL vecType< T, P >::bool_type lessThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the component-wise comparison result of x &lt; y.
-
- - - - diff --git a/3party/glm/doc/api/a00099.html b/3party/glm/doc/api/a00099.html deleted file mode 100755 index 26a7a3a574..0000000000 --- a/3party/glm/doc/api/a00099.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - -GLM: quaternion.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
gtx/quaternion.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tvec3< T, P > const &v, detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > exp (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
extractRealComponent (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > fastMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tquat< T, P > intermediate (detail::tquat< T, P > const &prev, detail::tquat< T, P > const &curr, detail::tquat< T, P > const &next)
 
template<typename T , precision P>
length2 (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > log (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > pow (detail::tquat< T, P > const &x, T const &y)
 
template<typename T , precision P>
detail::tvec3< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec4< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec4< T, P > const &v)
 
template<typename T , precision P>
detail::tquat< T, P > rotation (detail::tvec3< T, P > const &orig, detail::tvec3< T, P > const &dest)
 
template<typename T , precision P>
detail::tquat< T, P > shortMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tquat< T, P > squad (detail::tquat< T, P > const &q1, detail::tquat< T, P > const &q2, detail::tquat< T, P > const &s1, detail::tquat< T, P > const &s2, T const &h)
 
template<typename T , precision P>
detail::tmat3x3< T, P > toMat3 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > toMat4 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat4x4< T, P > const &x)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_quaternion

-
Date
2005-12-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
- -

Definition in file gtx/quaternion.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00099_source.html b/3party/glm/doc/api/a00099_source.html deleted file mode 100755 index f5508854c7..0000000000 --- a/3party/glm/doc/api/a00099_source.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - -GLM: quaternion.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtx/quaternion.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_quaternion
-
40 #define GLM_GTX_quaternion
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtc/constants.hpp"
-
45 #include "../gtc/quaternion.hpp"
-
46 #include "../gtx/norm.hpp"
-
47 
-
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
49 # pragma message("GLM: GLM_GTX_quaternion extension included")
-
50 #endif
-
51 
-
52 namespace glm
-
53 {
-
56 
-
60  template<typename T, precision P>
-
61  detail::tvec3<T, P> cross(
-
62  detail::tquat<T, P> const & q,
-
63  detail::tvec3<T, P> const & v);
-
64 
-
68  template<typename T, precision P>
-
69  detail::tvec3<T, P> cross(
-
70  detail::tvec3<T, P> const & v,
-
71  detail::tquat<T, P> const & q);
-
72 
-
77  template<typename T, precision P>
-
78  detail::tquat<T, P> squad(
-
79  detail::tquat<T, P> const & q1,
-
80  detail::tquat<T, P> const & q2,
-
81  detail::tquat<T, P> const & s1,
-
82  detail::tquat<T, P> const & s2,
-
83  T const & h);
-
84 
-
88  template<typename T, precision P>
-
89  detail::tquat<T, P> intermediate(
-
90  detail::tquat<T, P> const & prev,
-
91  detail::tquat<T, P> const & curr,
-
92  detail::tquat<T, P> const & next);
-
93 
-
97  template<typename T, precision P>
-
98  detail::tquat<T, P> exp(
-
99  detail::tquat<T, P> const & q);
-
100 
-
104  template<typename T, precision P>
-
105  detail::tquat<T, P> log(
-
106  detail::tquat<T, P> const & q);
-
107 
-
111  template<typename T, precision P>
-
112  detail::tquat<T, P> pow(
-
113  detail::tquat<T, P> const & x,
-
114  T const & y);
-
115 
-
119  //template<typename T, precision P>
-
120  //detail::tquat<T, P> sqrt(
-
121  // detail::tquat<T, P> const & q);
-
122 
-
126  template<typename T, precision P>
-
127  detail::tvec3<T, P> rotate(
-
128  detail::tquat<T, P> const & q,
-
129  detail::tvec3<T, P> const & v);
-
130 
-
134  template<typename T, precision P>
-
135  detail::tvec4<T, P> rotate(
-
136  detail::tquat<T, P> const & q,
-
137  detail::tvec4<T, P> const & v);
-
138 
-
142  template<typename T, precision P>
- -
144  detail::tquat<T, P> const & q);
-
145 
-
149  template<typename T, precision P>
-
150  detail::tmat3x3<T, P> toMat3(
-
151  detail::tquat<T, P> const & x){return mat3_cast(x);}
-
152 
-
156  template<typename T, precision P>
-
157  detail::tmat4x4<T, P> toMat4(
-
158  detail::tquat<T, P> const & x){return mat4_cast(x);}
-
159 
-
163  template<typename T, precision P>
-
164  detail::tquat<T, P> toQuat(
-
165  detail::tmat3x3<T, P> const & x){return quat_cast(x);}
-
166 
-
170  template<typename T, precision P>
-
171  detail::tquat<T, P> toQuat(
-
172  detail::tmat4x4<T, P> const & x){return quat_cast(x);}
-
173 
-
177  template<typename T, precision P>
-
178  detail::tquat<T, P> shortMix(
-
179  detail::tquat<T, P> const & x,
-
180  detail::tquat<T, P> const & y,
-
181  T const & a);
-
182 
-
186  template<typename T, precision P>
-
187  detail::tquat<T, P> fastMix(
-
188  detail::tquat<T, P> const & x,
-
189  detail::tquat<T, P> const & y,
-
190  T const & a);
-
191 
-
197  template<typename T, precision P>
-
198  detail::tquat<T, P> rotation(
-
199  detail::tvec3<T, P> const & orig,
-
200  detail::tvec3<T, P> const & dest);
-
201 
-
205  template<typename T, precision P>
-
206  T length2(detail::tquat<T, P> const & q);
-
207 
-
209 }//namespace glm
-
210 
-
211 #include "quaternion.inl"
-
212 
-
213 #endif//GLM_GTX_quaternion
-
detail::tquat< T, P > toQuat(detail::tmat3x3< T, P > const &x)
Converts a 3 * 3 matrix to a quaternion.
-
T extractRealComponent(detail::tquat< T, P > const &q)
Extract the real component of a quaternion.
-
GLM_FUNC_DECL detail::tvec3< T, P > cross(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
Returns the cross product of x and y.
-
GLM_FUNC_DECL detail::tquat< T, P > quat_cast(detail::tmat3x3< T, P > const &x)
Converts a 3 * 3 matrix to a quaternion.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > rotate(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
-
detail::tmat4x4< T, P > toMat4(detail::tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
GLM_FUNC_DECL genType exp(genType const &x)
Returns the natural exponentiation of x, i.e., e^x.
-
detail::tquat< T, P > intermediate(detail::tquat< T, P > const &prev, detail::tquat< T, P > const &curr, detail::tquat< T, P > const &next)
Returns an intermediate control point for squad interpolation.
-
detail::tquat< T, P > shortMix(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Quaternion interpolation using the rotation short path.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > mat4_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
T length2(T const &x)
Returns the squared length of x.
-
detail::tmat3x3< T, P > toMat3(detail::tquat< T, P > const &x)
Converts a quaternion to a 3 * 3 matrix.
-
detail::tquat< T, P > squad(detail::tquat< T, P > const &q1, detail::tquat< T, P > const &q2, detail::tquat< T, P > const &s1, detail::tquat< T, P > const &s2, T const &h)
Compute a point on a path according squad equation.
-
GLM_FUNC_DECL genType pow(genType const &base, genType const &exponent)
Returns &#39;base&#39; raised to the power &#39;exponent&#39;.
-
GLM_FUNC_DECL detail::tmat3x3< T, P > mat3_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 3 * 3 matrix.
-
detail::tquat< T, P > fastMix(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Quaternion normalized linear interpolation.
-
detail::tquat< T, P > rotation(detail::tvec3< T, P > const &orig, detail::tvec3< T, P > const &dest)
Compute the rotation between two vectors.
-
GLM_FUNC_DECL genType log(genType const &x)
Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y...
-
- - - - diff --git a/3party/glm/doc/api/a00100.html b/3party/glm/doc/api/a00100.html deleted file mode 100755 index 9eda22b945..0000000000 --- a/3party/glm/doc/api/a00100.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - -GLM: random.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
gtc/random.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_random

-
Date
2011-09-18 / 2011-09-18
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-gtx_random (extended)
- -

Definition in file gtc/random.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00100_source.html b/3party/glm/doc/api/a00100_source.html deleted file mode 100755 index 9b3fcab780..0000000000 --- a/3party/glm/doc/api/a00100_source.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - -GLM: random.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtc/random.hpp
-
-
-Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTC_random
-
41 #define GLM_GTC_random
-
42 
-
43 // Dependency:
-
44 #include "../vec2.hpp"
-
45 #include "../vec3.hpp"
-
46 
-
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTC_random extension included")
-
49 #endif
-
50 
-
51 namespace glm
-
52 {
-
55 
-
62  template <typename genType>
-
63  GLM_FUNC_DECL genType linearRand(
-
64  genType const & Min,
-
65  genType const & Max);
-
66 
-
72  template <typename genType>
-
73  GLM_FUNC_DECL genType gaussRand(
-
74  genType const & Mean,
-
75  genType const & Deviation);
-
76 
-
81  template <typename T>
-
82  GLM_FUNC_DECL detail::tvec2<T, defaultp> circularRand(
-
83  T const & Radius);
-
84 
-
89  template <typename T>
-
90  GLM_FUNC_DECL detail::tvec3<T, defaultp> sphericalRand(
-
91  T const & Radius);
-
92 
-
97  template <typename T>
-
98  GLM_FUNC_DECL detail::tvec2<T, defaultp> diskRand(
-
99  T const & Radius);
-
100 
-
105  template <typename T>
-
106  GLM_FUNC_DECL detail::tvec3<T, defaultp> ballRand(
-
107  T const & Radius);
-
108 
-
110 }//namespace glm
-
111 
-
112 #include "random.inl"
-
113 
-
114 #endif//GLM_GTC_random
-
GLM_FUNC_DECL detail::tvec2< T, defaultp > circularRand(T const &Radius)
Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius...
-
GLM_FUNC_DECL detail::tvec3< T, defaultp > sphericalRand(T const &Radius)
Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius...
-
GLM_FUNC_DECL genType gaussRand(genType const &Mean, genType const &Deviation)
Generate random numbers in the interval [Min, Max], according a gaussian distribution.
-
GLM_FUNC_DECL detail::tvec3< T, defaultp > ballRand(T const &Radius)
Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of...
-
GLM_FUNC_DECL genType linearRand(genType const &Min, genType const &Max)
Generate random numbers in the interval [Min, Max], according a linear distribution.
-
GLM_FUNC_DECL detail::tvec2< T, defaultp > diskRand(T const &Radius)
Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a...
-
- - - - diff --git a/3party/glm/doc/api/a00101_source.html b/3party/glm/doc/api/a00101_source.html deleted file mode 100755 index 212305c6a4..0000000000 --- a/3party/glm/doc/api/a00101_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: random.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtx/random.hpp
-
-
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_random extension is deprecated, include GLM_GTC_random instead")
-
26 #endif
-
27 
-
28 // Promoted:
-
29 #include "../gtc/random.hpp"
-
- - - - diff --git a/3party/glm/doc/api/a00102.html b/3party/glm/doc/api/a00102.html deleted file mode 100755 index ef91f47aa8..0000000000 --- a/3party/glm/doc/api/a00102.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: raw_data.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
raw_data.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - -

-Typedefs

typedef detail::uint8 byte
 
typedef detail::uint32 dword
 
typedef detail::uint64 qword
 
typedef detail::uint16 word
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_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/3party/glm/doc/api/a00102_source.html b/3party/glm/doc/api/a00102_source.html deleted file mode 100755 index 4440b39bcb..0000000000 --- a/3party/glm/doc/api/a00102_source.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -GLM: raw_data.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
raw_data.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_raw_data
-
39 #define GLM_GTX_raw_data
-
40 
-
41 // Dependencies
-
42 #include "../detail/setup.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_raw_data extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  typedef detail::uint8 byte;
-
56 
-
59  typedef detail::uint16 word;
-
60 
-
63  typedef detail::uint32 dword;
-
64 
-
67  typedef detail::uint64 qword;
-
68 
-
70 }// namespace glm
-
71 
-
72 #include "raw_data.inl"
-
73 
-
74 #endif//GLM_GTX_raw_data
-
detail::uint32 dword
Type for dword numbers.
Definition: raw_data.hpp:63
-
detail::uint64 qword
Type for qword numbers.
Definition: raw_data.hpp:67
-
detail::uint16 word
Type for word numbers.
Definition: raw_data.hpp:59
-
detail::uint8 byte
Type for byte numbers.
Definition: raw_data.hpp:55
-
- - - - diff --git a/3party/glm/doc/api/a00103.html b/3party/glm/doc/api/a00103.html deleted file mode 100755 index 51e0206e36..0000000000 --- a/3party/glm/doc/api/a00103.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - -GLM: reciprocal.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
gtc/reciprocal.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_reciprocal

-
Date
2008-10-09 / 2012-01-25
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
- -

Definition in file gtc/reciprocal.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00103_source.html b/3party/glm/doc/api/a00103_source.html deleted file mode 100755 index 07400363da..0000000000 --- a/3party/glm/doc/api/a00103_source.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - -GLM: reciprocal.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtc/reciprocal.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTC_reciprocal
-
39 #define GLM_GTC_reciprocal
-
40 
-
41 // Dependencies
-
42 #include "../detail/setup.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTC_reciprocal extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
57  template <typename genType>
-
58  GLM_FUNC_DECL genType sec(genType const & angle);
-
59 
-
64  template <typename genType>
-
65  GLM_FUNC_DECL genType csc(genType const & angle);
-
66 
-
71  template <typename genType>
-
72  GLM_FUNC_DECL genType cot(genType const & angle);
-
73 
-
77  template <typename genType>
-
78  GLM_FUNC_DECL genType asec(genType const & x);
-
79 
-
83  template <typename genType>
-
84  GLM_FUNC_DECL genType acsc(genType const & x);
-
85 
-
89  template <typename genType>
-
90  GLM_FUNC_DECL genType acot(genType const & x);
-
91 
-
95  template <typename genType>
-
96  GLM_FUNC_DECL genType sech(genType const & angle);
-
97 
-
101  template <typename genType>
-
102  GLM_FUNC_DECL genType csch(genType const & angle);
-
103 
-
107  template <typename genType>
-
108  GLM_FUNC_DECL genType coth(genType const & angle);
-
109 
-
113  template <typename genType>
-
114  GLM_FUNC_DECL genType asech(genType const & x);
-
115 
-
119  template <typename genType>
-
120  GLM_FUNC_DECL genType acsch(genType const & x);
-
121 
-
125  template <typename genType>
-
126  GLM_FUNC_DECL genType acoth(genType const & x);
-
127 
-
129 }//namespace glm
-
130 
-
131 #include "reciprocal.inl"
-
132 
-
133 #endif//GLM_GTC_reciprocal
-
GLM_FUNC_DECL genType acot(genType const &x)
Inverse cotangent function.
-
GLM_FUNC_DECL genType acsch(genType const &x)
Inverse cosecant hyperbolic function.
-
GLM_FUNC_DECL genType coth(genType const &angle)
Cotangent hyperbolic function.
-
GLM_FUNC_DECL genType sech(genType const &angle)
Secant hyperbolic function.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL genType acoth(genType const &x)
Inverse cotangent hyperbolic function.
-
GLM_FUNC_DECL genType csch(genType const &angle)
Cosecant hyperbolic function.
-
GLM_FUNC_DECL genType asech(genType const &x)
Inverse secant hyperbolic function.
-
GLM_FUNC_DECL genType sec(genType const &angle)
Secant function.
-
GLM_FUNC_DECL genType acsc(genType const &x)
Inverse cosecant function.
-
GLM_FUNC_DECL genType asec(genType const &x)
Inverse secant function.
-
GLM_FUNC_DECL genType csc(genType const &angle)
Cosecant function.
-
GLM_FUNC_DECL genType cot(genType const &angle)
Cotangent function.
-
- - - - diff --git a/3party/glm/doc/api/a00104_source.html b/3party/glm/doc/api/a00104_source.html deleted file mode 100755 index 3baeb6f22f..0000000000 --- a/3party/glm/doc/api/a00104_source.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -GLM: reciprocal.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtx/reciprocal.hpp
-
-
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_reciprocal extension is deprecated, include GLM_GTC_reciprocal instead")
-
26 #endif
-
- - - - diff --git a/3party/glm/doc/api/a00105.html b/3party/glm/doc/api/a00105.html deleted file mode 100755 index 0ed1bc58f5..0000000000 --- a/3party/glm/doc/api/a00105.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - -GLM: rotate_normalized_axis.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
rotate_normalized_axis.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat4x4< T, P > rotateNormalizedAxis (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tquat< T, P > rotateNormalizedAxis (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 
-

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_normalized_axis

-
Date
2012-12-13 / 2012-12-13
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTC_matrix_transform
-
-GLM_GTC_quaternion
- -

Definition in file rotate_normalized_axis.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00105_source.html b/3party/glm/doc/api/a00105_source.html deleted file mode 100755 index 11af588642..0000000000 --- a/3party/glm/doc/api/a00105_source.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - -GLM: rotate_normalized_axis.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
rotate_normalized_axis.hpp
-
-
-Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTX_rotate_normalized_axis
-
41 #define GLM_GTX_rotate_normalized_axis
-
42 
-
43 // Dependency:
-
44 #include "../glm.hpp"
-
45 #include "../gtc/epsilon.hpp"
-
46 #include "../gtc/quaternion.hpp"
-
47 
-
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
49 # pragma message("GLM: GLM_GTX_rotate_normalized_axis extension included")
-
50 #endif
-
51 
-
52 namespace glm
-
53 {
-
56 
-
68  template <typename T, precision P>
-
69  detail::tmat4x4<T, P> rotateNormalizedAxis(
-
70  detail::tmat4x4<T, P> const & m,
-
71  T const & angle,
-
72  detail::tvec3<T, P> const & axis);
-
73 
-
81  template <typename T, precision P>
-
82  detail::tquat<T, P> rotateNormalizedAxis(
-
83  detail::tquat<T, P> const & q,
-
84  T const & angle,
-
85  detail::tvec3<T, P> const & axis);
-
86 
-
88 }//namespace glm
-
89 
-
90 #include "rotate_normalized_axis.inl"
-
91 
-
92 #endif//GLM_GTX_rotate_normalized_axis
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
detail::tmat4x4< T, P > rotateNormalizedAxis(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from a normalized axis and an angle.
-
GLM_FUNC_DECL detail::tvec3< T, P > axis(detail::tquat< T, P > const &x)
Returns the q rotation axis.
-
- - - - diff --git a/3party/glm/doc/api/a00106.html b/3party/glm/doc/api/a00106.html deleted file mode 100755 index f43ebdcbf3..0000000000 --- a/3party/glm/doc/api/a00106.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - -GLM: rotate_vector.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
rotate_vector.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_rotate_vector

-
Date
2006-11-02 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_transform (dependence)
- -

Definition in file rotate_vector.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00106_source.html b/3party/glm/doc/api/a00106_source.html deleted file mode 100755 index 3f869bdaec..0000000000 --- a/3party/glm/doc/api/a00106_source.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - -GLM: rotate_vector.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
rotate_vector.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_rotate_vector
-
40 #define GLM_GTX_rotate_vector
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/transform.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_rotate_vector extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
57  template <typename T, precision P>
-
58  detail::tvec2<T, P> rotate(
-
59  detail::tvec2<T, P> const & v,
-
60  T const & angle);
-
61 
-
64  template <typename T, precision P>
-
65  detail::tvec3<T, P> rotate(
-
66  detail::tvec3<T, P> const & v,
-
67  T const & angle,
-
68  detail::tvec3<T, P> const & normal);
-
69 
-
72  template <typename T, precision P>
-
73  detail::tvec4<T, P> rotate(
-
74  detail::tvec4<T, P> const & v,
-
75  T const & angle,
-
76  detail::tvec3<T, P> const & normal);
-
77 
-
80  template <typename T, precision P>
-
81  detail::tvec3<T, P> rotateX(
-
82  detail::tvec3<T, P> const & v,
-
83  T const & angle);
-
84 
-
87  template <typename T, precision P>
-
88  detail::tvec3<T, P> rotateY(
-
89  detail::tvec3<T, P> const & v,
-
90  T const & angle);
-
91 
-
94  template <typename T, precision P>
-
95  detail::tvec3<T, P> rotateZ(
-
96  detail::tvec3<T, P> const & v,
-
97  T const & angle);
-
98 
-
101  template <typename T, precision P>
-
102  detail::tvec4<T, P> rotateX(
-
103  detail::tvec4<T, P> const & v,
-
104  T const & angle);
-
105 
-
108  template <typename T, precision P>
-
109  detail::tvec4<T, P> rotateY(
-
110  detail::tvec4<T, P> const & v,
-
111  T const & angle);
-
112 
-
115  template <typename T, precision P>
-
116  detail::tvec4<T, P> rotateZ(
-
117  detail::tvec4<T, P> const & v,
-
118  T const & angle);
-
119 
-
122  template <typename T, precision P>
-
123  detail::tmat4x4<T, P> orientation(
-
124  detail::tvec3<T, P> const & Normal,
-
125  detail::tvec3<T, P> const & Up);
-
126 
-
128 }//namespace glm
-
129 
-
130 #include "rotate_vector.inl"
-
131 
-
132 #endif//GLM_GTX_rotate_vector
-
detail::tvec3< T, P > rotateX(detail::tvec3< T, P > const &v, T const &angle)
Rotate a three dimensional vector around the X axis.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > rotate(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
detail::tmat4x4< T, P > orientation(detail::tvec3< T, P > const &Normal, detail::tvec3< T, P > const &Up)
Build a rotation matrix from a normal and a up vector.
-
detail::tvec3< T, P > rotateY(detail::tvec3< T, P > const &v, T const &angle)
Rotate a three dimensional vector around the Y axis.
-
detail::tvec3< T, P > rotateZ(detail::tvec3< T, P > const &v, T const &angle)
Rotate a three dimensional vector around the Z axis.
-
- - - - diff --git a/3party/glm/doc/api/a00107.html b/3party/glm/doc/api/a00107.html deleted file mode 100755 index 6413b0a376..0000000000 --- a/3party/glm/doc/api/a00107.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - -GLM: scalar_relational.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
scalar_relational.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

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.

-

Gtx_scalar_relational

-
Date
2013-02-04 / 2013-02-04
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
- -

Definition in file scalar_relational.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00107_source.html b/3party/glm/doc/api/a00107_source.html deleted file mode 100755 index 14cd4a4431..0000000000 --- a/3party/glm/doc/api/a00107_source.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - -GLM: scalar_relational.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
scalar_relational.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_scalar_relational
-
39 #define GLM_GTX_scalar_relational
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_extend extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
53 
-
54 
-
56 }//namespace glm
-
57 
-
58 #include "scalar_relational.inl"
-
59 
-
60 #endif//GLM_GTX_scalar_relational
-
- - - - diff --git a/3party/glm/doc/api/a00108_source.html b/3party/glm/doc/api/a00108_source.html deleted file mode 100755 index 40a7402d13..0000000000 --- a/3party/glm/doc/api/a00108_source.html +++ /dev/null @@ -1,813 +0,0 @@ - - - - - - -GLM: setup.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
setup.hpp
-
-
-
1 
-
29 #ifndef GLM_SETUP_INCLUDED
-
30 #define GLM_SETUP_INCLUDED
-
31 
-
32 #include <cassert>
-
33 
-
35 // Version
-
36 
-
37 #define GLM_VERSION 95
-
38 #define GLM_VERSION_MAJOR 0
-
39 #define GLM_VERSION_MINOR 9
-
40 #define GLM_VERSION_PATCH 5
-
41 #define GLM_VERSION_REVISION 1
-
42 
-
44 // Platform
-
45 
-
46 #define GLM_PLATFORM_UNKNOWN 0x00000000
-
47 #define GLM_PLATFORM_WINDOWS 0x00010000
-
48 #define GLM_PLATFORM_LINUX 0x00020000
-
49 #define GLM_PLATFORM_APPLE 0x00040000
-
50 //#define GLM_PLATFORM_IOS 0x00080000
-
51 #define GLM_PLATFORM_ANDROID 0x00100000
-
52 #define GLM_PLATFORM_CHROME_NACL 0x00200000
-
53 #define GLM_PLATFORM_UNIX 0x00400000
-
54 #define GLM_PLATFORM_QNXNTO 0x00800000
-
55 #define GLM_PLATFORM_WINCE 0x01000000
-
56 
-
57 #ifdef GLM_FORCE_PLATFORM_UNKNOWN
-
58 # define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
-
59 #elif defined(__QNXNTO__)
-
60 # define GLM_PLATFORM GLM_PLATFORM_QNXNTO
-
61 #elif defined(__APPLE__)
-
62 # define GLM_PLATFORM GLM_PLATFORM_APPLE
-
63 #elif defined(WINCE)
-
64 # define GLM_PLATFORM GLM_PLATFORM_WINCE
-
65 #elif defined(_WIN32)
-
66 # define GLM_PLATFORM GLM_PLATFORM_WINDOWS
-
67 #elif defined(__native_client__)
-
68 # define GLM_PLATFORM GLM_PLATFORM_CHROME_NACL
-
69 #elif defined(__ANDROID__)
-
70 # define GLM_PLATFORM GLM_PLATFORM_ANDROID
-
71 #elif defined(__linux)
-
72 # define GLM_PLATFORM GLM_PLATFORM_LINUX
-
73 #elif defined(__unix)
-
74 # define GLM_PLATFORM GLM_PLATFORM_UNIX
-
75 #else
-
76 # define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
-
77 #endif//
-
78 
-
79 // Report platform detection
-
80 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_PLATFORM_DISPLAYED))
-
81 # define GLM_MESSAGE_PLATFORM_DISPLAYED
-
82 # if(GLM_PLATFORM & GLM_PLATFORM_QNXNTO)
-
83 # pragma message("GLM: QNX platform detected")
-
84 //# elif(GLM_PLATFORM & GLM_PLATFORM_IOS)
-
85 //# pragma message("GLM: iOS platform detected")
-
86 # elif(GLM_PLATFORM & GLM_PLATFORM_APPLE)
-
87 # pragma message("GLM: Apple platform detected")
-
88 # elif(GLM_PLATFORM & GLM_PLATFORM_WINCE)
-
89 # pragma message("GLM: WinCE platform detected")
-
90 # elif(GLM_PLATFORM & GLM_PLATFORM_WINDOWS)
-
91 # pragma message("GLM: Windows platform detected")
-
92 # elif(GLM_PLATFORM & GLM_PLATFORM_CHROME_NACL)
-
93 # pragma message("GLM: Native Client detected")
-
94 # elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
-
95 # pragma message("GLM: Android platform detected")
-
96 # elif(GLM_PLATFORM & GLM_PLATFORM_LINUX)
-
97 # pragma message("GLM: Linux platform detected")
-
98 # elif(GLM_PLATFORM & GLM_PLATFORM_UNIX)
-
99 # pragma message("GLM: UNIX platform detected")
-
100 # elif(GLM_PLATFORM & GLM_PLATFORM_UNKNOWN)
-
101 # pragma message("GLM: platform unknown")
-
102 # else
-
103 # pragma message("GLM: platform not detected")
-
104 # endif
-
105 #endif//GLM_MESSAGE
-
106 
-
108 // Compiler
-
109 
-
110 // User defines: GLM_FORCE_COMPILER_UNKNOWN
-
111 // TODO ? __llvm__
-
112 
-
113 #define GLM_COMPILER_UNKNOWN 0x00000000
-
114 
-
115 // Intel
-
116 #define GLM_COMPILER_INTEL 0x00100000
-
117 #define GLM_COMPILER_INTEL9 0x00100010
-
118 #define GLM_COMPILER_INTEL10_0 0x00100020
-
119 #define GLM_COMPILER_INTEL10_1 0x00100030
-
120 #define GLM_COMPILER_INTEL11_0 0x00100040
-
121 #define GLM_COMPILER_INTEL11_1 0x00100050
-
122 #define GLM_COMPILER_INTEL12_0 0x00100060
-
123 #define GLM_COMPILER_INTEL12_1 0x00100070
-
124 #define GLM_COMPILER_INTEL13_0 0x00100080
-
125 
-
126 // Visual C++ defines
-
127 #define GLM_COMPILER_VC 0x01000000
-
128 #define GLM_COMPILER_VC8 0x01000070
-
129 #define GLM_COMPILER_VC9 0x01000080
-
130 #define GLM_COMPILER_VC10 0x01000090
-
131 #define GLM_COMPILER_VC11 0x010000A0
-
132 #define GLM_COMPILER_VC12 0x010000B0
-
133 
-
134 // GCC defines
-
135 #define GLM_COMPILER_GCC 0x02000000
-
136 #define GLM_COMPILER_GCC34 0x02000050
-
137 #define GLM_COMPILER_GCC35 0x02000060
-
138 #define GLM_COMPILER_GCC40 0x02000070
-
139 #define GLM_COMPILER_GCC41 0x02000080
-
140 #define GLM_COMPILER_GCC42 0x02000090
-
141 #define GLM_COMPILER_GCC43 0x020000A0
-
142 #define GLM_COMPILER_GCC44 0x020000B0
-
143 #define GLM_COMPILER_GCC45 0x020000C0
-
144 #define GLM_COMPILER_GCC46 0x020000D0
-
145 #define GLM_COMPILER_GCC47 0x020000E0
-
146 #define GLM_COMPILER_GCC48 0x020000F0
-
147 #define GLM_COMPILER_GCC49 0x02000100
-
148 
-
149 // Borland C++
-
150 #define GLM_COMPILER_BC 0x04000000
-
151 
-
152 // CodeWarrior
-
153 #define GLM_COMPILER_CODEWARRIOR 0x08000000
-
154 
-
155 // CUDA
-
156 #define GLM_COMPILER_CUDA 0x10000000
-
157 #define GLM_COMPILER_CUDA30 0x10000010
-
158 #define GLM_COMPILER_CUDA31 0x10000020
-
159 #define GLM_COMPILER_CUDA32 0x10000030
-
160 #define GLM_COMPILER_CUDA40 0x10000040
-
161 #define GLM_COMPILER_CUDA41 0x10000050
-
162 #define GLM_COMPILER_CUDA42 0x10000060
-
163 
-
164 // Clang
-
165 #define GLM_COMPILER_CLANG 0x20000000
-
166 #define GLM_COMPILER_CLANG26 0x20000010
-
167 #define GLM_COMPILER_CLANG27 0x20000020
-
168 #define GLM_COMPILER_CLANG28 0x20000030
-
169 #define GLM_COMPILER_CLANG29 0x20000040
-
170 #define GLM_COMPILER_CLANG30 0x20000050
-
171 #define GLM_COMPILER_CLANG31 0x20000060
-
172 #define GLM_COMPILER_CLANG32 0x20000070
-
173 #define GLM_COMPILER_CLANG33 0x20000080
-
174 #define GLM_COMPILER_CLANG40 0x20000090
-
175 #define GLM_COMPILER_CLANG41 0x200000A0
-
176 #define GLM_COMPILER_CLANG42 0x200000B0
-
177 #define GLM_COMPILER_CLANG43 0x200000C0
-
178 #define GLM_COMPILER_CLANG50 0x200000D0
-
179 
-
180 // LLVM GCC
-
181 #define GLM_COMPILER_LLVM_GCC 0x40000000
-
182 
-
183 // Build model
-
184 #define GLM_MODEL_32 0x00000010
-
185 #define GLM_MODEL_64 0x00000020
-
186 
-
187 // Force generic C++ compiler
-
188 #ifdef GLM_FORCE_COMPILER_UNKNOWN
-
189 # define GLM_COMPILER GLM_COMPILER_UNKNOWN
-
190 
-
191 #elif defined(__INTEL_COMPILER)
-
192 # if __INTEL_COMPILER == 900
-
193 # define GLM_COMPILER GLM_COMPILER_INTEL9
-
194 # elif __INTEL_COMPILER == 1000
-
195 # define GLM_COMPILER GLM_COMPILER_INTEL10_0
-
196 # elif __INTEL_COMPILER == 1010
-
197 # define GLM_COMPILER GLM_COMPILER_INTEL10_1
-
198 # elif __INTEL_COMPILER == 1100
-
199 # define GLM_COMPILER GLM_COMPILER_INTEL11_0
-
200 # elif __INTEL_COMPILER == 1110
-
201 # define GLM_COMPILER GLM_COMPILER_INTEL11_1
-
202 # elif __INTEL_COMPILER == 1200
-
203 # define GLM_COMPILER GLM_COMPILER_INTEL12_0
-
204 # elif __INTEL_COMPILER == 1210
-
205 # define GLM_COMPILER GLM_COMPILER_INTEL12_1
-
206 # elif __INTEL_COMPILER >= 1300
-
207 # define GLM_COMPILER GLM_COMPILER_INTEL13_0
-
208 # else
-
209 # define GLM_COMPILER GLM_COMPILER_INTEL
-
210 # endif
-
211 
-
212 // CUDA
-
213 #elif defined(__CUDACC__)
-
214 # if CUDA_VERSION < 3000
-
215 # error "GLM requires CUDA 3.0 or higher"
-
216 # else
-
217 # define GLM_COMPILER GLM_COMPILER_CUDA
-
218 # endif
-
219 
-
220 // Visual C++
-
221 #elif defined(_MSC_VER)
-
222 # if _MSC_VER < 1400
-
223 # error "GLM requires Visual C++ 2005 or higher"
-
224 # elif _MSC_VER == 1400
-
225 # define GLM_COMPILER GLM_COMPILER_VC8
-
226 # elif _MSC_VER == 1500
-
227 # define GLM_COMPILER GLM_COMPILER_VC9
-
228 # elif _MSC_VER == 1600
-
229 # define GLM_COMPILER GLM_COMPILER_VC10
-
230 # elif _MSC_VER == 1700
-
231 # define GLM_COMPILER GLM_COMPILER_VC11
-
232 # elif _MSC_VER >= 1800
-
233 # define GLM_COMPILER GLM_COMPILER_VC12
-
234 # else//_MSC_VER
-
235 # define GLM_COMPILER GLM_COMPILER_VC
-
236 # endif//_MSC_VER
-
237 
-
238 // Clang
-
239 #elif defined(__clang__)
-
240 # if (__clang_major__ <= 1) || ((__clang_major__ == 2) && (__clang_minor__ < 6))
-
241 # error "GLM requires Clang 2.6 or higher"
-
242 # elif(__clang_major__ == 2) && (__clang_minor__ == 6)
-
243 # define GLM_COMPILER GLM_COMPILER_CLANG26
-
244 # elif(__clang_major__ == 2) && (__clang_minor__ == 7)
-
245 # define GLM_COMPILER GLM_COMPILER_CLANG27
-
246 # elif(__clang_major__ == 2) && (__clang_minor__ == 8)
-
247 # define GLM_COMPILER GLM_COMPILER_CLANG28
-
248 # elif(__clang_major__ == 2) && (__clang_minor__ == 9)
-
249 # define GLM_COMPILER GLM_COMPILER_CLANG29
-
250 # elif(__clang_major__ == 3) && (__clang_minor__ == 0)
-
251 # define GLM_COMPILER GLM_COMPILER_CLANG30
-
252 # elif(__clang_major__ == 3) && (__clang_minor__ == 1)
-
253 # define GLM_COMPILER GLM_COMPILER_CLANG31
-
254 # elif(__clang_major__ == 3) && (__clang_minor__ == 2)
-
255 # define GLM_COMPILER GLM_COMPILER_CLANG32
-
256 # elif(__clang_major__ == 3) && (__clang_minor__ == 3)
-
257 # define GLM_COMPILER GLM_COMPILER_CLANG33
-
258 # elif(__clang_major__ == 4) && (__clang_minor__ == 0)
-
259 # define GLM_COMPILER GLM_COMPILER_CLANG40
-
260 # elif(__clang_major__ == 4) && (__clang_minor__ == 1)
-
261 # define GLM_COMPILER GLM_COMPILER_CLANG41
-
262 # elif(__clang_major__ == 4) && (__clang_minor__ == 2)
-
263 # define GLM_COMPILER GLM_COMPILER_CLANG42
-
264 # elif(__clang_major__ == 4) && (__clang_minor__ >= 3)
-
265 # define GLM_COMPILER GLM_COMPILER_CLANG43
-
266 # elif(__clang_major__ > 4)
-
267 # define GLM_COMPILER GLM_COMPILER_CLANG50
-
268 # else
-
269 # define GLM_COMPILER GLM_COMPILER_CLANG
-
270 # endif
-
271 
-
272 // G++
-
273 #elif(defined(__GNUC__) || defined(__MINGW32__))// || defined(__llvm__) || defined(__clang__)
-
274 # if (__GNUC__ == 3) && (__GNUC_MINOR__ == 4)
-
275 # define GLM_COMPILER GLM_COMPILER_GCC34
-
276 # elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 5)
-
277 # define GLM_COMPILER GLM_COMPILER_GCC35
-
278 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 0)
-
279 # define GLM_COMPILER (GLM_COMPILER_GCC40)
-
280 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 1)
-
281 # define GLM_COMPILER (GLM_COMPILER_GCC41)
-
282 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
-
283 # define GLM_COMPILER (GLM_COMPILER_GCC42)
-
284 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3)
-
285 # define GLM_COMPILER (GLM_COMPILER_GCC43)
-
286 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 4)
-
287 # define GLM_COMPILER (GLM_COMPILER_GCC44)
-
288 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 5)
-
289 # define GLM_COMPILER (GLM_COMPILER_GCC45)
-
290 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
-
291 # define GLM_COMPILER (GLM_COMPILER_GCC46)
-
292 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)
-
293 # define GLM_COMPILER (GLM_COMPILER_GCC47)
-
294 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
-
295 # define GLM_COMPILER (GLM_COMPILER_GCC48)
-
296 # elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)
-
297 # define GLM_COMPILER (GLM_COMPILER_GCC49)
-
298 # elif (__GNUC__ > 4 )
-
299 # define GLM_COMPILER (GLM_COMPILER_GCC49)
-
300 # else
-
301 # define GLM_COMPILER (GLM_COMPILER_GCC)
-
302 # endif
-
303 
-
304 // Borland C++
-
305 #elif defined(_BORLANDC_)
-
306 # define GLM_COMPILER GLM_COMPILER_BC
-
307 
-
308 // Codewarrior
-
309 #elif defined(__MWERKS__)
-
310 # define GLM_COMPILER GLM_COMPILER_CODEWARRIOR
-
311 
-
312 #else
-
313 # define GLM_COMPILER GLM_COMPILER_UNKNOWN
-
314 #endif
-
315 
-
316 #ifndef GLM_COMPILER
-
317 #error "GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message."
-
318 #endif//GLM_COMPILER
-
319 
-
320 // Report compiler detection
-
321 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPILER_DISPLAYED))
-
322 # define GLM_MESSAGE_COMPILER_DISPLAYED
-
323 # if(GLM_COMPILER & GLM_COMPILER_CUDA)
-
324 # pragma message("GLM: CUDA compiler detected")
-
325 # elif(GLM_COMPILER & GLM_COMPILER_VC)
-
326 # pragma message("GLM: Visual C++ compiler detected")
-
327 # elif(GLM_COMPILER & GLM_COMPILER_CLANG)
-
328 # pragma message("GLM: Clang compiler detected")
-
329 # elif(GLM_COMPILER & GLM_COMPILER_LLVM_GCC)
-
330 # pragma message("GLM: LLVM GCC compiler detected")
-
331 # elif(GLM_COMPILER & GLM_COMPILER_INTEL)
-
332 # pragma message("GLM: Intel Compiler detected")
-
333 # elif(GLM_COMPILER & GLM_COMPILER_GCC)
-
334 # if(GLM_COMPILER == GLM_COMPILER_GCC_LLVM)
-
335 # pragma message("GLM: LLVM GCC compiler detected")
-
336 # elif(GLM_COMPILER == GLM_COMPILER_GCC_CLANG)
-
337 # pragma message("GLM: CLANG compiler detected")
-
338 # else
-
339 # pragma message("GLM: GCC compiler detected")
-
340 # endif
-
341 # elif(GLM_COMPILER & GLM_COMPILER_BC)
-
342 # pragma message("GLM: Borland compiler detected but not supported")
-
343 # elif(GLM_COMPILER & GLM_COMPILER_CODEWARRIOR)
-
344 # pragma message("GLM: Codewarrior compiler detected but not supported")
-
345 # else
-
346 # pragma message("GLM: Compiler not detected")
-
347 # endif
-
348 #endif//GLM_MESSAGE
-
349 
-
351 // Build model //
-
352 
-
353 #if(defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__))
-
354 # define GLM_MODEL GLM_MODEL_64
-
355 #elif(defined(__i386__) || defined(__ppc__))
-
356 # define GLM_MODEL GLM_MODEL_32
-
357 #else
-
358 # define GLM_MODEL GLM_MODEL_32
-
359 #endif//
-
360 
-
361 #if(!defined(GLM_MODEL) && GLM_COMPILER != 0)
-
362 # error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."
-
363 #endif//GLM_MODEL
-
364 
-
365 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_MODEL_DISPLAYED))
-
366 # define GLM_MESSAGE_MODEL_DISPLAYED
-
367 # if(GLM_MODEL == GLM_MODEL_64)
-
368 # pragma message("GLM: 64 bits model")
-
369 # elif(GLM_MODEL == GLM_MODEL_32)
-
370 # pragma message("GLM: 32 bits model")
-
371 # endif//GLM_MODEL
-
372 #endif//GLM_MESSAGE
-
373 
-
375 // C++ Version //
-
376 
-
377 // User defines: GLM_FORCE_CXX98
-
378 
-
379 #define GLM_LANG_CXX_FLAG (1 << 0)
-
380 #define GLM_LANG_CXX98_FLAG (1 << 1)
-
381 #define GLM_LANG_CXX03_FLAG (1 << 2)
-
382 #define GLM_LANG_CXX0X_FLAG (1 << 3)
-
383 #define GLM_LANG_CXX11_FLAG (1 << 4)
-
384 #define GLM_LANG_CXX1Y_FLAG (1 << 5)
-
385 #define GLM_LANG_CXXMS_FLAG (1 << 6)
-
386 #define GLM_LANG_CXXGNU_FLAG (1 << 7)
-
387 
-
388 #define GLM_LANG_CXX GLM_LANG_CXX_FLAG
-
389 #define GLM_LANG_CXX98 (GLM_LANG_CXX | GLM_LANG_CXX98_FLAG)
-
390 #define GLM_LANG_CXX03 (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)
-
391 #define GLM_LANG_CXX0X (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG)
-
392 #define GLM_LANG_CXX11 (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG)
-
393 #define GLM_LANG_CXX1Y (GLM_LANG_CXX11 | GLM_LANG_CXX1Y_FLAG)
-
394 #define GLM_LANG_CXXMS GLM_LANG_CXXMS_FLAG
-
395 #define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG
-
396 
-
397 #if(defined(GLM_FORCE_CXX1Y))
-
398 # define GLM_LANG GLM_LANG_CXX1Y
-
399 #elif(defined(GLM_FORCE_CXX11))
-
400 # define GLM_LANG GLM_LANG_CXX11
-
401 #elif(defined(GLM_FORCE_CXX03))
-
402 # define GLM_LANG GLM_LANG_CXX03
-
403 #elif(defined(GLM_FORCE_CXX98))
-
404 # define GLM_LANG GLM_LANG_CXX98
-
405 #else
-
406 # if(__cplusplus >= 201103L)
-
407 # define GLM_LANG GLM_LANG_CXX11
-
408 # elif((GLM_COMPILER & GLM_COMPILER_CLANG) == GLM_COMPILER_CLANG)
-
409 # if(GLM_PLATFORM == GLM_PLATFORM_APPLE)
-
410 # define GLM_DETAIL_MAJOR 1
-
411 # else
-
412 # define GLM_DETAIL_MAJOR 0
-
413 # endif
-
414 # if(__clang_major__ < (2 + GLM_DETAIL_MAJOR))
-
415 # define GLM_LANG GLM_LANG_CXX
-
416 # elif(__has_feature(cxx_auto_type))
-
417 # define GLM_LANG GLM_LANG_CXX0X
-
418 # else
-
419 # define GLM_LANG GLM_LANG_CXX98
-
420 # endif
-
421 # elif((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC)
-
422 # if defined(__GXX_EXPERIMENTAL_CXX0X__)
-
423 # define GLM_LANG GLM_LANG_CXX0X
-
424 # else
-
425 # define GLM_LANG GLM_LANG_CXX98
-
426 # endif
-
427 # elif(GLM_COMPILER & GLM_COMPILER_VC)
-
428 # if(defined(_MSC_EXTENSIONS))
-
429 # if(GLM_COMPILER >= GLM_COMPILER_VC10)
-
430 # define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)
-
431 # else
-
432 # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)
-
433 # endif
-
434 # else
-
435 # if(GLM_COMPILER >= GLM_COMPILER_VC10)
-
436 # define GLM_LANG GLM_LANG_CXX0X
-
437 # else
-
438 # define GLM_LANG GLM_LANG_CXX98
-
439 # endif
-
440 # endif
-
441 # elif(GLM_COMPILER & GLM_COMPILER_INTEL)
-
442 # if(defined(_MSC_EXTENSIONS))
-
443 # if(GLM_COMPILER >= GLM_COMPILER_INTEL13_0)
-
444 # define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)
-
445 # else
-
446 # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)
-
447 # endif
-
448 # else
-
449 # if(GLM_COMPILER >= GLM_COMPILER_INTEL13_0)
-
450 # define GLM_LANG (GLM_LANG_CXX0X)
-
451 # else
-
452 # define GLM_LANG (GLM_LANG_CXX98)
-
453 # endif
-
454 # endif
-
455 # elif(__cplusplus >= 199711L)
-
456 # define GLM_LANG GLM_LANG_CXX98
-
457 # else
-
458 # define GLM_LANG GLM_LANG_CXX
-
459 # endif
-
460 #endif
-
461 
-
462 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED))
-
463 # define GLM_MESSAGE_LANG_DISPLAYED
-
464 # if(GLM_LANG & GLM_LANG_CXXGNU_FLAG)
-
465 # pragma message("GLM: C++ with language extensions")
-
466 # elif(GLM_LANG & GLM_LANG_CXXMS_FLAG)
-
467 # pragma message("GLM: C++ with language extensions")
-
468 # elif(GLM_LANG & GLM_LANG_CXX11_FLAG)
-
469 # pragma message("GLM: C++11")
-
470 # elif(GLM_LANG & GLM_LANG_CXX0X_FLAG)
-
471 # pragma message("GLM: C++0x")
-
472 # elif(GLM_LANG & GLM_LANG_CXX03_FLAG)
-
473 # pragma message("GLM: C++03")
-
474 # elif(GLM_LANG & GLM_LANG_CXX98_FLAG)
-
475 # pragma message("GLM: C++98")
-
476 # else
-
477 # pragma message("GLM: C++ language undetected")
-
478 # endif//GLM_MODEL
-
479 # pragma message("GLM: #define GLM_FORCE_CXX98, GLM_FORCE_CXX03, GLM_LANG_CXX11 or GLM_FORCE_CXX1Y to force using a specific version of the C++ language")
-
480 #endif//GLM_MESSAGE
-
481 
-
483 // Has of C++ features
-
484 
-
485 #ifndef __has_feature
-
486 # define __has_feature(x) 0 // Compatibility with non-clang compilers.
-
487 #endif
-
488 #ifndef __has_extension
-
489 # define __has_extension __has_feature // Compatibility with pre-3.0 compilers.
-
490 #endif
-
491 
-
492 // http://clang.llvm.org/cxx_status.html
-
493 // http://gcc.gnu.org/projects/cxx0x.html
-
494 // http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx
-
495 
-
496 // N1720
-
497 #define GLM_HAS_STATIC_ASSERT ( \
-
498  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-
499  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC10)) || \
-
500  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
-
501  __has_feature(cxx_static_assert))
-
502 
-
503 // N1988
-
504 #define GLM_HAS_EXTENDED_INTEGER_TYPE ( \
-
505  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-
506  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC11)) || \
-
507  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
-
508  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER >= GLM_COMPILER_CLANG29)))
-
509 
-
510 // N2235
-
511 #define GLM_HAS_CONSTEXPR ( \
-
512  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-
513  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \
-
514  __has_feature(cxx_constexpr))
-
515 
-
516 // N2672
-
517 #define GLM_HAS_INITIALIZER_LISTS ( \
-
518  (GLM_LANG & GLM_LANG_CXX11_FLAG) || \
-
519  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12))) || \
-
520  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
-
521  __has_feature(cxx_generalized_initializers))
-
522 
-
523 // OpenMP
-
524 #ifdef _OPENMP
-
525 # if(GLM_COMPILER & GLM_COMPILER_GCC)
-
526 # if(GLM_COMPILER > GLM_COMPILER_GCC47)
-
527 # define GLM_HAS_OPENMP 31
-
528 # elif(GLM_COMPILER > GLM_COMPILER_GCC44)
-
529 # define GLM_HAS_OPENMP 30
-
530 # elif(GLM_COMPILER > GLM_COMPILER_GCC42)
-
531 # define GLM_HAS_OPENMP 25
-
532 # endif
-
533 # endif//(GLM_COMPILER & GLM_COMPILER_GCC)
-
534 
-
535 # if(GLM_COMPILER & GLM_COMPILER_VC)
-
536 # if(GLM_COMPILER > GLM_COMPILER_VC8)
-
537 # define GLM_HAS_OPENMP 20
-
538 # endif
-
539 # endif//(GLM_COMPILER & GLM_COMPILER_GCC)
-
540 #endif
-
541 
-
542 // Not standard
-
543 #define GLM_HAS_ANONYMOUS_UNION (GLM_LANG & GLM_LANG_CXXMS_FLAG)
-
544 
-
546 // Platform
-
547 
-
548 // User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_AVX
-
549 
-
550 #define GLM_ARCH_PURE 0x0000
-
551 #define GLM_ARCH_SSE2 0x0001
-
552 #define GLM_ARCH_SSE3 0x0002// | GLM_ARCH_SSE2
-
553 #define GLM_ARCH_SSE4 0x0004// | GLM_ARCH_SSE3 | GLM_ARCH_SSE2
-
554 #define GLM_ARCH_AVX 0x0008// | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2
-
555 #define GLM_ARCH_AVX2 0x0010// | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2
-
556 
-
557 #if(defined(GLM_FORCE_PURE))
-
558 # define GLM_ARCH GLM_ARCH_PURE
-
559 #elif(defined(GLM_FORCE_AVX2))
-
560 # define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
561 #elif(defined(GLM_FORCE_AVX))
-
562 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
563 #elif(defined(GLM_FORCE_SSE4))
-
564 # define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
565 #elif(defined(GLM_FORCE_SSE3))
-
566 # define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
567 #elif(defined(GLM_FORCE_SSE2))
-
568 # define GLM_ARCH (GLM_ARCH_SSE2)
-
569 #elif((GLM_COMPILER & GLM_COMPILER_VC) && (defined(_M_IX86) || defined(_M_X64)))
-
570 # if(GLM_PLATFORM == GLM_PLATFORM_WINCE)
-
571 # define GLM_ARCH GLM_ARCH_PURE
-
572 # elif(defined(_M_CEE_PURE))
-
573 # define GLM_ARCH GLM_ARCH_PURE
-
574 /* TODO: Explore auto detection of instruction set support
-
575 # elif(defined(_M_IX86_FP))
-
576 # if(_M_IX86_FP >= 3)
-
577 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
578 # elif(_M_IX86_FP >= 2)
-
579 # define GLM_ARCH (GLM_ARCH_SSE2)
-
580 # else
-
581 # define GLM_ARCH GLM_ARCH_PURE
-
582 # endif
-
583 */
-
584 # elif(GLM_COMPILER >= GLM_COMPILER_VC11)
-
585 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
586 # elif(GLM_COMPILER >= GLM_COMPILER_VC10)
-
587 # if(_MSC_FULL_VER >= 160031118) //160031118: VC2010 SP1 beta full version
-
588 # define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)//GLM_ARCH_AVX (Require SP1)
-
589 # else
-
590 # define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
591 # endif
-
592 # elif(GLM_COMPILER >= GLM_COMPILER_VC9)
-
593 # define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-
594 # elif(GLM_COMPILER >= GLM_COMPILER_VC8)
-
595 # define GLM_ARCH GLM_ARCH_SSE2
-
596 # else
-
597 # define GLM_ARCH GLM_ARCH_PURE
-
598 # endif
-
599 #elif((GLM_PLATFORM & GLM_PLATFORM_APPLE) && (GLM_COMPILER & GLM_COMPILER_GCC))
-
600 # define GLM_ARCH GLM_ARCH_PURE
-
601 #elif(((GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__))) || (GLM_COMPILER & GLM_COMPILER_LLVM_GCC))
-
602 # define GLM_ARCH (GLM_ARCH_PURE \
-
603 | (defined(__AVX2__) ? GLM_ARCH_AVX2 : 0) \
-
604 | (defined(__AVX__) ? GLM_ARCH_AVX : 0) \
-
605 | (defined(__SSE4__) ? GLM_ARCH_SSE4 : 0) \
-
606 | (defined(__SSE3__) ? GLM_ARCH_SSE3 : 0) \
-
607 | (defined(__SSE2__) ? GLM_ARCH_SSE2 : 0))
-
608 #else
-
609 # define GLM_ARCH GLM_ARCH_PURE
-
610 #endif
-
611 
-
612 // With MinGW-W64, including intrinsic headers before intrin.h will produce some errors. The problem is
-
613 // that windows.h (and maybe other headers) will silently include intrin.h, which of course causes problems.
-
614 // To fix, we just explicitly include intrin.h here.
-
615 #if defined(__MINGW32__) && (GLM_ARCH != GLM_ARCH_PURE)
-
616 # include <intrin.h>
-
617 #endif
-
618 
-
619 //#if(GLM_ARCH != GLM_ARCH_PURE)
-
620 #if(GLM_ARCH & GLM_ARCH_AVX2)
-
621 # include <immintrin.h>
-
622 #endif//GLM_ARCH
-
623 #if(GLM_ARCH & GLM_ARCH_AVX)
-
624 # include <immintrin.h>
-
625 #endif//GLM_ARCH
-
626 #if(GLM_ARCH & GLM_ARCH_SSE4)
-
627 # include <smmintrin.h>
-
628 #endif//GLM_ARCH
-
629 #if(GLM_ARCH & GLM_ARCH_SSE3)
-
630 # include <pmmintrin.h>
-
631 #endif//GLM_ARCH
-
632 #if(GLM_ARCH & GLM_ARCH_SSE2)
-
633 # include <emmintrin.h>
-
634 # if(GLM_COMPILER == GLM_COMPILER_VC8) // VC8 is missing some intrinsics, workaround
-
635  inline float _mm_cvtss_f32(__m128 A) { return A.m128_f32[0]; }
-
636  inline __m128 _mm_castpd_ps(__m128d PD) { union { __m128 ps; __m128d pd; } c; c.pd = PD; return c.ps; }
-
637  inline __m128d _mm_castps_pd(__m128 PS) { union { __m128 ps; __m128d pd; } c; c.ps = PS; return c.pd; }
-
638  inline __m128i _mm_castps_si128(__m128 PS) { union { __m128 ps; __m128i pi; } c; c.ps = PS; return c.pi; }
-
639  inline __m128 _mm_castsi128_ps(__m128i PI) { union { __m128 ps; __m128i pi; } c; c.pi = PI; return c.ps; }
-
640 # endif
-
641 #endif//GLM_ARCH
-
642 //#endif//(GLM_ARCH != GLM_ARCH_PURE)
-
643 
-
644 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_ARCH_DISPLAYED))
-
645 # define GLM_MESSAGE_ARCH_DISPLAYED
-
646 # if(GLM_ARCH == GLM_ARCH_PURE)
-
647 # pragma message("GLM: Platform independent")
-
648 # elif(GLM_ARCH & GLM_ARCH_SSE2)
-
649 # pragma message("GLM: SSE2 instruction set")
-
650 # elif(GLM_ARCH & GLM_ARCH_SSE3)
-
651 # pragma message("GLM: SSE3 instruction set")
-
652 # elif(GLM_ARCH & GLM_ARCH_SSE4)
-
653 # pragma message("GLM: SSE4 instruction set")
-
654 # elif(GLM_ARCH & GLM_ARCH_AVX)
-
655 # pragma message("GLM: AVX instruction set")
-
656 # elif(GLM_ARCH & GLM_ARCH_AVX2)
-
657 # pragma message("GLM: AVX2 instruction set")
-
658 # endif//GLM_ARCH
-
659 # pragma message("GLM: #define GLM_FORCE_PURE to avoid using platform specific instruction sets")
-
660 #endif//GLM_MESSAGE
-
661 
-
663 // Radians
-
664 
-
665 //#define GLM_FORCE_RADIANS
-
666 
-
668 // Static assert
-
669 
-
670 #if GLM_HAS_STATIC_ASSERT
-
671 # define GLM_STATIC_ASSERT(x, message) static_assert(x, message)
-
672 #elif(defined(BOOST_STATIC_ASSERT))
-
673 # define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)
-
674 #elif(GLM_COMPILER & GLM_COMPILER_VC)
-
675 # define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]
-
676 #else
-
677 # define GLM_STATIC_ASSERT(x, message)
-
678 # define GLM_STATIC_ASSERT_NULL
-
679 #endif//GLM_LANG
-
680 
-
682 // Qualifiers
-
683 
-
684 // User defines: GLM_FORCE_INLINE GLM_FORCE_CUDA
-
685 
-
686 #if(defined(GLM_FORCE_CUDA) || (GLM_COMPILER & GLM_COMPILER_CUDA))
-
687 # define GLM_CUDA_FUNC_DEF __device__ __host__
-
688 # define GLM_CUDA_FUNC_DECL __device__ __host__
-
689 #else
-
690 # define GLM_CUDA_FUNC_DEF
-
691 # define GLM_CUDA_FUNC_DECL
-
692 #endif
-
693 
-
694 #if GLM_COMPILER & GLM_COMPILER_GCC
-
695 # define GLM_VAR_USED __attribute__ ((unused))
-
696 #else
-
697 # define GLM_VAR_USED
-
698 #endif
-
699 
-
700 #if(defined(GLM_FORCE_INLINE))
-
701 # if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC8))
-
702 # define GLM_INLINE __forceinline
-
703 # elif((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC34))
-
704 # define GLM_INLINE __attribute__((always_inline)) inline
-
705 # elif(GLM_COMPILER & GLM_COMPILER_CLANG)
-
706 # define GLM_INLINE __attribute__((always_inline))
-
707 # else
-
708 # define GLM_INLINE inline
-
709 # endif//GLM_COMPILER
-
710 #else
-
711 # define GLM_INLINE inline
-
712 #endif//defined(GLM_FORCE_INLINE)
-
713 
-
714 #define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL
-
715 #define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE
-
716 
-
718 // Swizzle operators
-
719 
-
720 // User defines: GLM_SWIZZLE
-
721 
-
722 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED))
-
723 # define GLM_MESSAGE_SWIZZLE_DISPLAYED
-
724 # if defined(GLM_SWIZZLE)
-
725 # pragma message("GLM: Swizzling operators enabled")
-
726 # else
-
727 # pragma message("GLM: Swizzling operators disabled, #define GLM_SWIZZLE to enable swizzle operators")
-
728 # endif
-
729 #endif//GLM_MESSAGE
-
730 
-
732 // Length type
-
733 
-
734 // User defines: GLM_FORCE_SIZE_T_LENGTH
-
735 
-
736 namespace glm
-
737 {
-
738 #if defined(GLM_FORCE_SIZE_T_LENGTH)
-
739  typedef std::size_t length_t;
-
740 #else
-
741  typedef int length_t;
-
742 #endif
-
743 }//namespace glm
-
744 
-
745 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH))
-
746 # define GLM_MESSAGE_FORCE_SIZE_T_LENGTH
-
747 # if defined(GLM_FORCE_SIZE_T_LENGTH)
-
748 # pragma message("GLM: .length() returns glm::length_t, a typedef of std::size_t")
-
749 # else
-
750 # pragma message("GLM: .length() returns glm::length_t, a typedef of int following the GLSL specification")
-
751 # pragma message("GLM: #define GLM_FORCE_SIZE_T_LENGTH for .length() to return a std::size_t")
-
752 # endif
-
753 #endif//GLM_MESSAGE
-
754 
-
756 // Qualifiers
-
757 
-
758 #if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC8))
-
759 # define GLM_DEPRECATED __declspec(deprecated)
-
760 # define GLM_ALIGN(x) __declspec(align(x))
-
761 # define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct
-
762 # define GLM_RESTRICT __declspec(restrict)
-
763 # define GLM_RESTRICT_VAR __restrict
-
764 #elif(GLM_COMPILER & GLM_COMPILER_INTEL)
-
765 # define GLM_DEPRECATED
-
766 # define GLM_ALIGN(x) __declspec(align(x))
-
767 # define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct
-
768 # define GLM_RESTRICT
-
769 # define GLM_RESTRICT_VAR __restrict
-
770 #elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG))
-
771 # define GLM_DEPRECATED __attribute__((__deprecated__))
-
772 # define GLM_ALIGN(x) __attribute__((aligned(x)))
-
773 # define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))
-
774 # define GLM_RESTRICT __restrict__
-
775 # define GLM_RESTRICT_VAR __restrict__
-
776 #else
-
777 # define GLM_DEPRECATED
-
778 # define GLM_ALIGN
-
779 # define GLM_ALIGNED_STRUCT(x)
-
780 # define GLM_RESTRICT
-
781 # define GLM_RESTRICT_VAR
-
782 #endif//GLM_COMPILER
-
783 
-
784 #if GLM_HAS_CONSTEXPR
-
785 # define GLM_CONSTEXPR constexpr
-
786 #else
-
787 # define GLM_CONSTEXPR
-
788 #endif
-
789 
-
790 #endif//GLM_SETUP_INCLUDED
-
GLM_FUNC_DECL genType pi()
Return the pi constant.
-
- - - - diff --git a/3party/glm/doc/api/a00109_source.html b/3party/glm/doc/api/a00109_source.html deleted file mode 100755 index a3384a694f..0000000000 --- a/3party/glm/doc/api/a00109_source.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - -GLM: simd_mat4.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
simd_mat4.hpp
-
-
-
1 
-
38 #ifndef GLM_GTX_simd_mat4
-
39 #define GLM_GTX_simd_mat4
-
40 
-
41 // Dependencies
-
42 #include "../detail/setup.hpp"
-
43 
-
44 #if(GLM_ARCH != GLM_ARCH_PURE)
-
45 
-
46 #if(GLM_ARCH & GLM_ARCH_SSE2)
-
47 # include "../detail/intrinsic_matrix.hpp"
-
48 # include "../gtx/simd_vec4.hpp"
-
49 #else
-
50 # error "GLM: GLM_GTX_simd_mat4 requires compiler support of SSE2 through intrinsics"
-
51 #endif
-
52 
-
53 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
54 # pragma message("GLM: GLM_GTX_simd_mat4 extension included")
-
55 #endif
-
56 
-
57 namespace glm{
-
58 namespace detail
-
59 {
-
62  GLM_ALIGNED_STRUCT(16) fmat4x4SIMD
-
63  {
-
64  enum ctor{_null};
-
65  typedef float value_type;
-
66  typedef fvec4SIMD col_type;
-
67  typedef fvec4SIMD row_type;
-
68  typedef std::size_t size_type;
-
69  typedef fmat4x4SIMD type;
-
70  typedef fmat4x4SIMD transpose_type;
-
71 
-
72  GLM_FUNC_DECL length_t length() const;
-
73 
-
74  fvec4SIMD Data[4];
-
75 
-
77  // Constructors
-
78 
-
79  fmat4x4SIMD();
-
80  explicit fmat4x4SIMD(float const & s);
-
81  explicit fmat4x4SIMD(
-
82  float const & x0, float const & y0, float const & z0, float const & w0,
-
83  float const & x1, float const & y1, float const & z1, float const & w1,
-
84  float const & x2, float const & y2, float const & z2, float const & w2,
-
85  float const & x3, float const & y3, float const & z3, float const & w3);
-
86  explicit fmat4x4SIMD(
-
87  fvec4SIMD const & v0,
-
88  fvec4SIMD const & v1,
-
89  fvec4SIMD const & v2,
-
90  fvec4SIMD const & v3);
-
91  explicit fmat4x4SIMD(
-
92  mat4x4 const & m);
-
93  explicit fmat4x4SIMD(
-
94  __m128 const in[4]);
-
95 
-
96  // Conversions
-
97  //template <typename U>
-
98  //explicit tmat4x4(tmat4x4<U> const & m);
-
99 
-
100  //explicit tmat4x4(tmat2x2<T> const & x);
-
101  //explicit tmat4x4(tmat3x3<T> const & x);
-
102  //explicit tmat4x4(tmat2x3<T> const & x);
-
103  //explicit tmat4x4(tmat3x2<T> const & x);
-
104  //explicit tmat4x4(tmat2x4<T> const & x);
-
105  //explicit tmat4x4(tmat4x2<T> const & x);
-
106  //explicit tmat4x4(tmat3x4<T> const & x);
-
107  //explicit tmat4x4(tmat4x3<T> const & x);
-
108 
-
109  // Accesses
-
110  fvec4SIMD & operator[](length_t i);
-
111  fvec4SIMD const & operator[](length_t i) const;
-
112 
-
113  // Unary updatable operators
-
114  fmat4x4SIMD & operator= (fmat4x4SIMD const & m);
-
115  fmat4x4SIMD & operator+= (float const & s);
-
116  fmat4x4SIMD & operator+= (fmat4x4SIMD const & m);
-
117  fmat4x4SIMD & operator-= (float const & s);
-
118  fmat4x4SIMD & operator-= (fmat4x4SIMD const & m);
-
119  fmat4x4SIMD & operator*= (float const & s);
-
120  fmat4x4SIMD & operator*= (fmat4x4SIMD const & m);
-
121  fmat4x4SIMD & operator/= (float const & s);
-
122  fmat4x4SIMD & operator/= (fmat4x4SIMD const & m);
-
123  fmat4x4SIMD & operator++ ();
-
124  fmat4x4SIMD & operator-- ();
-
125  };
-
126 
-
127  // Binary operators
-
128  fmat4x4SIMD operator+ (fmat4x4SIMD const & m, float const & s);
-
129  fmat4x4SIMD operator+ (float const & s, fmat4x4SIMD const & m);
-
130  fmat4x4SIMD operator+ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
-
131 
-
132  fmat4x4SIMD operator- (fmat4x4SIMD const & m, float const & s);
-
133  fmat4x4SIMD operator- (float const & s, fmat4x4SIMD const & m);
-
134  fmat4x4SIMD operator- (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
-
135 
-
136  fmat4x4SIMD operator* (fmat4x4SIMD const & m, float const & s);
-
137  fmat4x4SIMD operator* (float const & s, fmat4x4SIMD const & m);
-
138 
-
139  fvec4SIMD operator* (fmat4x4SIMD const & m, fvec4SIMD const & v);
-
140  fvec4SIMD operator* (fvec4SIMD const & v, fmat4x4SIMD const & m);
-
141 
-
142  fmat4x4SIMD operator* (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
-
143 
-
144  fmat4x4SIMD operator/ (fmat4x4SIMD const & m, float const & s);
-
145  fmat4x4SIMD operator/ (float const & s, fmat4x4SIMD const & m);
-
146 
-
147  fvec4SIMD operator/ (fmat4x4SIMD const & m, fvec4SIMD const & v);
-
148  fvec4SIMD operator/ (fvec4SIMD const & v, fmat4x4SIMD const & m);
-
149 
-
150  fmat4x4SIMD operator/ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
-
151 
-
152  // Unary constant operators
-
153  fmat4x4SIMD const operator- (fmat4x4SIMD const & m);
-
154  fmat4x4SIMD const operator-- (fmat4x4SIMD const & m, int);
-
155  fmat4x4SIMD const operator++ (fmat4x4SIMD const & m, int);
-
156 }//namespace detail
-
157 
-
158  typedef detail::fmat4x4SIMD simdMat4;
-
159 
-
162 
-
165  mat4 mat4_cast(
-
166  detail::fmat4x4SIMD const & x);
-
167 
-
171  detail::fmat4x4SIMD matrixCompMult(
-
172  detail::fmat4x4SIMD const & x,
-
173  detail::fmat4x4SIMD const & y);
-
174 
-
179  detail::fmat4x4SIMD outerProduct(
-
180  detail::fvec4SIMD const & c,
-
181  detail::fvec4SIMD const & r);
-
182 
-
185  detail::fmat4x4SIMD transpose(
-
186  detail::fmat4x4SIMD const & x);
-
187 
-
190  float determinant(
-
191  detail::fmat4x4SIMD const & m);
-
192 
-
195  detail::fmat4x4SIMD inverse(
-
196  detail::fmat4x4SIMD const & m);
-
197 
-
199 }// namespace glm
-
200 
-
201 #include "simd_mat4.inl"
-
202 
-
203 #endif//(GLM_ARCH != GLM_ARCH_PURE)
-
204 
-
205 #endif//GLM_GTX_simd_mat4
-
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:425
-
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
-
GLM_FUNC_DECL detail::tmat4x4< T, P > mat4_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
GLM_FUNC_DECL detail::tquat< T, P > inverse(detail::tquat< T, P > const &q)
Returns the q inverse.
-
- - - - diff --git a/3party/glm/doc/api/a00110.html b/3party/glm/doc/api/a00110.html deleted file mode 100755 index d7858be6d7..0000000000 --- a/3party/glm/doc/api/a00110.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -GLM: simd_quat.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
simd_quat.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

gtx_simd_quat

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

Definition in file simd_quat.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00110_source.html b/3party/glm/doc/api/a00110_source.html deleted file mode 100755 index e30c853202..0000000000 --- a/3party/glm/doc/api/a00110_source.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - -GLM: simd_quat.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
simd_quat.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_simd_quat
-
39 #define GLM_GTX_simd_quat
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 #include "../gtc/quaternion.hpp"
-
44 #include "../gtx/fast_trigonometry.hpp"
-
45 
-
46 #if(GLM_ARCH != GLM_ARCH_PURE)
-
47 
-
48 #if(GLM_ARCH & GLM_ARCH_SSE2)
-
49 # include "../core/intrinsic_common.hpp"
-
50 # include "../core/intrinsic_geometric.hpp"
-
51 # include "../gtx/simd_mat4.hpp"
-
52 #else
-
53 # error "GLM: GLM_GTX_simd_quat requires compiler support of SSE2 through intrinsics"
-
54 #endif
-
55 
-
56 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
57 # pragma message("GLM: GLM_GTX_simd_quat extension included")
-
58 #endif
-
59 
-
60 
-
61 // Warning silencer for nameless struct/union.
-
62 #if (GLM_COMPILER & GLM_COMPILER_VC)
-
63 # pragma warning(push)
-
64 # pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
-
65 #endif
-
66 
-
67 
-
68 namespace glm{
-
69 namespace detail
-
70 {
-
73  GLM_ALIGNED_STRUCT(16) fquatSIMD
-
74  {
-
75  enum ctor{null};
-
76  typedef __m128 value_type;
-
77  typedef std::size_t size_type;
-
78  static size_type value_size();
-
79 
-
80  typedef fquatSIMD type;
-
81  typedef tquat<bool, defaultp> bool_type;
-
82 
-
83 #ifdef GLM_SIMD_ENABLE_XYZW_UNION
-
84  union
-
85  {
-
86  __m128 Data;
-
87  struct {float x, y, z, w;};
-
88  };
-
89 #else
-
90  __m128 Data;
-
91 #endif
-
92 
-
94  // Implicit basic constructors
-
95 
-
96  fquatSIMD();
-
97  fquatSIMD(__m128 const & Data);
-
98  fquatSIMD(fquatSIMD const & q);
-
99 
-
101  // Explicit basic constructors
-
102 
-
103  explicit fquatSIMD(
-
104  ctor);
-
105  explicit fquatSIMD(
-
106  float const & w,
-
107  float const & x,
-
108  float const & y,
-
109  float const & z);
-
110  explicit fquatSIMD(
-
111  quat const & v);
-
112  explicit fquatSIMD(
-
113  vec3 const & eulerAngles);
-
114 
-
115 
-
117  // Unary arithmetic operators
-
118 
-
119  fquatSIMD& operator =(fquatSIMD const & q);
-
120  fquatSIMD& operator*=(float const & s);
-
121  fquatSIMD& operator/=(float const & s);
-
122  };
-
123 
-
124 
-
126  // Arithmetic operators
-
127 
-
128  detail::fquatSIMD operator- (
-
129  detail::fquatSIMD const & q);
-
130 
-
131  detail::fquatSIMD operator+ (
-
132  detail::fquatSIMD const & q,
-
133  detail::fquatSIMD const & p);
-
134 
-
135  detail::fquatSIMD operator* (
-
136  detail::fquatSIMD const & q,
-
137  detail::fquatSIMD const & p);
-
138 
-
139  detail::fvec4SIMD operator* (
-
140  detail::fquatSIMD const & q,
-
141  detail::fvec4SIMD const & v);
-
142 
-
143  detail::fvec4SIMD operator* (
-
144  detail::fvec4SIMD const & v,
-
145  detail::fquatSIMD const & q);
-
146 
-
147  detail::fquatSIMD operator* (
-
148  detail::fquatSIMD const & q,
-
149  float s);
-
150 
-
151  detail::fquatSIMD operator* (
-
152  float s,
-
153  detail::fquatSIMD const & q);
-
154 
-
155  detail::fquatSIMD operator/ (
-
156  detail::fquatSIMD const & q,
-
157  float s);
-
158 
-
159 }//namespace detail
-
160 
-
161  typedef glm::detail::fquatSIMD simdQuat;
-
162 
-
165 
-
168  quat quat_cast(
-
169  detail::fquatSIMD const & x);
-
170 
-
173  detail::fquatSIMD quatSIMD_cast(
-
174  detail::fmat4x4SIMD const & m);
-
175 
-
178  template <typename T, precision P>
-
179  detail::fquatSIMD quatSIMD_cast(
-
180  detail::tmat4x4<T, P> const & m);
-
181 
-
184  template <typename T, precision P>
-
185  detail::fquatSIMD quatSIMD_cast(
-
186  detail::tmat3x3<T, P> const & m);
-
187 
-
190  detail::fmat4x4SIMD mat4SIMD_cast(
-
191  detail::fquatSIMD const & q);
-
192 
-
195  mat4 mat4_cast(
-
196  detail::fquatSIMD const & q);
-
197 
-
198 
-
202  float length(
-
203  detail::fquatSIMD const & x);
-
204 
-
208  detail::fquatSIMD normalize(
-
209  detail::fquatSIMD const & x);
-
210 
-
214  float dot(
-
215  detail::fquatSIMD const & q1,
-
216  detail::fquatSIMD const & q2);
-
217 
-
228  detail::fquatSIMD mix(
-
229  detail::fquatSIMD const & x,
-
230  detail::fquatSIMD const & y,
-
231  float const & a);
-
232 
-
241  detail::fquatSIMD lerp(
-
242  detail::fquatSIMD const & x,
-
243  detail::fquatSIMD const & y,
-
244  float const & a);
-
245 
-
254  detail::fquatSIMD slerp(
-
255  detail::fquatSIMD const & x,
-
256  detail::fquatSIMD const & y,
-
257  float const & a);
-
258 
-
259 
-
270  detail::fquatSIMD fastMix(
-
271  detail::fquatSIMD const & x,
-
272  detail::fquatSIMD const & y,
-
273  float const & a);
-
274 
-
282  detail::fquatSIMD fastSlerp(
-
283  detail::fquatSIMD const & x,
-
284  detail::fquatSIMD const & y,
-
285  float const & a);
-
286 
-
287 
-
291  detail::fquatSIMD conjugate(
-
292  detail::fquatSIMD const & q);
-
293 
-
297  detail::fquatSIMD inverse(
-
298  detail::fquatSIMD const & q);
-
299 
-
306  detail::fquatSIMD angleAxisSIMD(
-
307  float const & angle,
-
308  vec3 const & axis);
-
309 
-
318  detail::fquatSIMD angleAxisSIMD(
-
319  float const & angle,
-
320  float const & x,
-
321  float const & y,
-
322  float const & z);
-
323 
-
324 
-
325  // TODO: Move this to somewhere more appropriate. Used with fastMix() and fastSlerp().
-
327  __m128 fastSin(__m128 x);
-
328 
-
329 
-
331 }//namespace glm
-
332 
-
333 #include "simd_quat.inl"
-
334 
-
335 
-
336 #if (GLM_COMPILER & GLM_COMPILER_VC)
-
337 # pragma warning(pop)
-
338 #endif
-
339 
-
340 
-
341 #endif//(GLM_ARCH != GLM_ARCH_PURE)
-
342 
-
343 #endif//GLM_GTX_simd_quat
-
GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the dot product of x and y, i.e., result = x * y.
-
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:393
-
GLM_FUNC_DECL detail::tquat< T, P > lerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Linear interpolation of two quaternions.
-
GLM_FUNC_DECL detail::tquat< T, P > quat_cast(detail::tmat3x3< T, P > const &x)
Converts a 3 * 3 matrix to a quaternion.
-
GLM_FUNC_DECL genTypeT mix(genTypeT const &x, genTypeT const &y, genTypeU const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL detail::tvec3< T, P > eulerAngles(detail::tquat< T, P > const &x)
Returns euler angles, yitch as x, yaw as y, roll as z.
-
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
-
T fastSin(const T &angle)
Faster than the common sin function but less accurate.
-
GLM_FUNC_DECL genType normalize(genType const &x)
Returns a vector in the same direction as x but with length of 1.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > mat4_cast(detail::tquat< T, P > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
highp_quat quat
Quaternion of default single-precision floating-point numbers.
Definition: fwd.hpp:69
-
detail::tquat< T, P > fastMix(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Quaternion normalized linear interpolation.
-
GLM_FUNC_DECL detail::tvec3< T, P > axis(detail::tquat< T, P > const &x)
Returns the q rotation axis.
-
GLM_FUNC_DECL detail::tquat< T, P > slerp(detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
Spherical linear interpolation of two quaternions.
-
GLM_FUNC_DECL detail::tquat< T, P > conjugate(detail::tquat< T, P > const &q)
Returns the q conjugate.
-
GLM_FUNC_DECL detail::tquat< T, P > inverse(detail::tquat< T, P > const &q)
Returns the q inverse.
-
- - - - diff --git a/3party/glm/doc/api/a00111.html b/3party/glm/doc/api/a00111.html deleted file mode 100755 index 850209c555..0000000000 --- a/3party/glm/doc/api/a00111.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -GLM: simd_vec4.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
simd_vec4.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_simd_quat

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

Definition in file simd_vec4.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00111_source.html b/3party/glm/doc/api/a00111_source.html deleted file mode 100755 index d35b87b9ed..0000000000 --- a/3party/glm/doc/api/a00111_source.html +++ /dev/null @@ -1,406 +0,0 @@ - - - - - - -GLM: simd_vec4.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
simd_vec4.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_simd_vec4
-
39 #define GLM_GTX_simd_vec4
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(GLM_ARCH != GLM_ARCH_PURE)
-
45 
-
46 #if(GLM_ARCH & GLM_ARCH_SSE2)
-
47 # include "../detail/intrinsic_common.hpp"
-
48 # include "../detail/intrinsic_geometric.hpp"
-
49 # include "../detail/intrinsic_integer.hpp"
-
50 #else
-
51 # error "GLM: GLM_GTX_simd_vec4 requires compiler support of SSE2 through intrinsics"
-
52 #endif
-
53 
-
54 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
55 # pragma message("GLM: GLM_GTX_simd_vec4 extension included")
-
56 #endif
-
57 
-
58 
-
59 // Warning silencer for nameless struct/union.
-
60 #if (GLM_COMPILER & GLM_COMPILER_VC)
-
61 # pragma warning(push)
-
62 # pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
-
63 #endif
-
64 
-
65 namespace glm
-
66 {
-
67  enum comp
-
68  {
-
69  X = 0,
-
70  R = 0,
-
71  S = 0,
-
72  Y = 1,
-
73  G = 1,
-
74  T = 1,
-
75  Z = 2,
-
76  B = 2,
-
77  P = 2,
-
78  W = 3,
-
79  A = 3,
-
80  Q = 3
-
81  };
-
82 
-
83 }//namespace glm
-
84 
-
85 namespace glm{
-
86 namespace detail
-
87 {
-
90  GLM_ALIGNED_STRUCT(16) fvec4SIMD
-
91  {
-
92  enum ctor{null};
-
93  typedef __m128 value_type;
-
94  typedef std::size_t size_type;
-
95  static size_type value_size();
-
96 
-
97  typedef fvec4SIMD type;
-
98  typedef tvec4<bool, highp> bool_type;
-
99 
-
100 #ifdef GLM_SIMD_ENABLE_XYZW_UNION
-
101  union
-
102  {
-
103  __m128 Data;
-
104  struct {float x, y, z, w;};
-
105  };
-
106 #else
-
107  __m128 Data;
-
108 #endif
-
109 
-
111  // Implicit basic constructors
-
112 
-
113  fvec4SIMD();
-
114  fvec4SIMD(__m128 const & Data);
-
115  fvec4SIMD(fvec4SIMD const & v);
-
116 
-
118  // Explicit basic constructors
-
119 
-
120  explicit fvec4SIMD(
-
121  ctor);
-
122  explicit fvec4SIMD(
-
123  float const & s);
-
124  explicit fvec4SIMD(
-
125  float const & x,
-
126  float const & y,
-
127  float const & z,
-
128  float const & w);
-
129  explicit fvec4SIMD(
-
130  vec4 const & v);
-
131 
-
134 
-
135  fvec4SIMD(vec2 const & v, float const & s1, float const & s2);
-
136  fvec4SIMD(float const & s1, vec2 const & v, float const & s2);
-
137  fvec4SIMD(float const & s1, float const & s2, vec2 const & v);
-
138  fvec4SIMD(vec3 const & v, float const & s);
-
139  fvec4SIMD(float const & s, vec3 const & v);
-
140  fvec4SIMD(vec2 const & v1, vec2 const & v2);
-
141  //fvec4SIMD(ivec4SIMD const & v);
-
142 
-
144  // Unary arithmetic operators
-
145 
-
146  fvec4SIMD& operator= (fvec4SIMD const & v);
-
147  fvec4SIMD& operator+=(fvec4SIMD const & v);
-
148  fvec4SIMD& operator-=(fvec4SIMD const & v);
-
149  fvec4SIMD& operator*=(fvec4SIMD const & v);
-
150  fvec4SIMD& operator/=(fvec4SIMD const & v);
-
151 
-
152  fvec4SIMD& operator+=(float const & s);
-
153  fvec4SIMD& operator-=(float const & s);
-
154  fvec4SIMD& operator*=(float const & s);
-
155  fvec4SIMD& operator/=(float const & s);
-
156 
-
157  fvec4SIMD& operator++();
-
158  fvec4SIMD& operator--();
-
159 
-
161  // Swizzle operators
-
162 
-
163  template <comp X, comp Y, comp Z, comp W>
-
164  fvec4SIMD& swizzle();
-
165  template <comp X, comp Y, comp Z, comp W>
-
166  fvec4SIMD swizzle() const;
-
167  template <comp X, comp Y, comp Z>
-
168  fvec4SIMD swizzle() const;
-
169  template <comp X, comp Y>
-
170  fvec4SIMD swizzle() const;
-
171  template <comp X>
-
172  fvec4SIMD swizzle() const;
-
173  };
-
174 }//namespace detail
-
175 
-
176  typedef glm::detail::fvec4SIMD simdVec4;
-
177 
-
180 
-
183  vec4 vec4_cast(
-
184  detail::fvec4SIMD const & x);
-
185 
-
188  detail::fvec4SIMD abs(detail::fvec4SIMD const & x);
-
189 
-
192  detail::fvec4SIMD sign(detail::fvec4SIMD const & x);
-
193 
-
196  detail::fvec4SIMD floor(detail::fvec4SIMD const & x);
-
197 
-
201  detail::fvec4SIMD trunc(detail::fvec4SIMD const & x);
-
202 
-
210  detail::fvec4SIMD round(detail::fvec4SIMD const & x);
-
211 
-
217  //detail::fvec4SIMD roundEven(detail::fvec4SIMD const & x);
-
218 
-
222  detail::fvec4SIMD ceil(detail::fvec4SIMD const & x);
-
223 
-
227  detail::fvec4SIMD fract(detail::fvec4SIMD const & x);
-
228 
-
233  detail::fvec4SIMD mod(
-
234  detail::fvec4SIMD const & x,
-
235  detail::fvec4SIMD const & y);
-
236 
-
241  detail::fvec4SIMD mod(
-
242  detail::fvec4SIMD const & x,
-
243  float const & y);
-
244 
-
250  //detail::fvec4SIMD modf(
-
251  // detail::fvec4SIMD const & x,
-
252  // detail::fvec4SIMD & i);
-
253 
-
257  detail::fvec4SIMD min(
-
258  detail::fvec4SIMD const & x,
-
259  detail::fvec4SIMD const & y);
-
260 
-
261  detail::fvec4SIMD min(
-
262  detail::fvec4SIMD const & x,
-
263  float const & y);
-
264 
-
268  detail::fvec4SIMD max(
-
269  detail::fvec4SIMD const & x,
-
270  detail::fvec4SIMD const & y);
-
271 
-
272  detail::fvec4SIMD max(
-
273  detail::fvec4SIMD const & x,
-
274  float const & y);
-
275 
-
280  detail::fvec4SIMD clamp(
-
281  detail::fvec4SIMD const & x,
-
282  detail::fvec4SIMD const & minVal,
-
283  detail::fvec4SIMD const & maxVal);
-
284 
-
285  detail::fvec4SIMD clamp(
-
286  detail::fvec4SIMD const & x,
-
287  float const & minVal,
-
288  float const & maxVal);
-
289 
-
316  detail::fvec4SIMD mix(
-
317  detail::fvec4SIMD const & x,
-
318  detail::fvec4SIMD const & y,
-
319  detail::fvec4SIMD const & a);
-
320 
-
324  detail::fvec4SIMD step(
-
325  detail::fvec4SIMD const & edge,
-
326  detail::fvec4SIMD const & x);
-
327 
-
328  detail::fvec4SIMD step(
-
329  float const & edge,
-
330  detail::fvec4SIMD const & x);
-
331 
-
343  detail::fvec4SIMD smoothstep(
-
344  detail::fvec4SIMD const & edge0,
-
345  detail::fvec4SIMD const & edge1,
-
346  detail::fvec4SIMD const & x);
-
347 
-
348  detail::fvec4SIMD smoothstep(
-
349  float const & edge0,
-
350  float const & edge1,
-
351  detail::fvec4SIMD const & x);
-
352 
-
360  //bvec4 isnan(detail::fvec4SIMD const & x);
-
361 
-
369  //bvec4 isinf(detail::fvec4SIMD const & x);
-
370 
-
376  //detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const & value);
-
377 
-
385  //detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const & value);
-
386 
-
390  detail::fvec4SIMD fma(
-
391  detail::fvec4SIMD const & a,
-
392  detail::fvec4SIMD const & b,
-
393  detail::fvec4SIMD const & c);
-
394 
-
405  //detail::fvec4SIMD frexp(detail::fvec4SIMD const & x, detail::ivec4SIMD & exp);
-
406 
-
414  //detail::fvec4SIMD ldexp(detail::fvec4SIMD const & x, detail::ivec4SIMD const & exp);
-
415 
-
419  float length(
-
420  detail::fvec4SIMD const & x);
-
421 
-
426  float fastLength(
-
427  detail::fvec4SIMD const & x);
-
428 
-
433  float niceLength(
-
434  detail::fvec4SIMD const & x);
-
435 
-
439  detail::fvec4SIMD length4(
-
440  detail::fvec4SIMD const & x);
-
441 
-
446  detail::fvec4SIMD fastLength4(
-
447  detail::fvec4SIMD const & x);
-
448 
-
453  detail::fvec4SIMD niceLength4(
-
454  detail::fvec4SIMD const & x);
-
455 
-
459  float distance(
-
460  detail::fvec4SIMD const & p0,
-
461  detail::fvec4SIMD const & p1);
-
462 
-
466  detail::fvec4SIMD distance4(
-
467  detail::fvec4SIMD const & p0,
-
468  detail::fvec4SIMD const & p1);
-
469 
-
473  float simdDot(
-
474  detail::fvec4SIMD const & x,
-
475  detail::fvec4SIMD const & y);
-
476 
-
480  detail::fvec4SIMD dot4(
-
481  detail::fvec4SIMD const & x,
-
482  detail::fvec4SIMD const & y);
-
483 
-
487  detail::fvec4SIMD cross(
-
488  detail::fvec4SIMD const & x,
-
489  detail::fvec4SIMD const & y);
-
490 
-
494  detail::fvec4SIMD normalize(
-
495  detail::fvec4SIMD const & x);
-
496 
-
501  detail::fvec4SIMD fastNormalize(
-
502  detail::fvec4SIMD const & x);
-
503 
-
507  detail::fvec4SIMD simdFaceforward(
-
508  detail::fvec4SIMD const & N,
-
509  detail::fvec4SIMD const & I,
-
510  detail::fvec4SIMD const & Nref);
-
511 
-
516  detail::fvec4SIMD reflect(
-
517  detail::fvec4SIMD const & I,
-
518  detail::fvec4SIMD const & N);
-
519 
-
525  detail::fvec4SIMD refract(
-
526  detail::fvec4SIMD const & I,
-
527  detail::fvec4SIMD const & N,
-
528  float const & eta);
-
529 
-
533  detail::fvec4SIMD sqrt(
-
534  detail::fvec4SIMD const & x);
-
535 
-
540  detail::fvec4SIMD niceSqrt(
-
541  detail::fvec4SIMD const & x);
-
542 
-
547  detail::fvec4SIMD fastSqrt(
-
548  detail::fvec4SIMD const & x);
-
549 
-
553  detail::fvec4SIMD inversesqrt(
-
554  detail::fvec4SIMD const & x);
-
555 
-
560  detail::fvec4SIMD fastInversesqrt(
-
561  detail::fvec4SIMD const & x);
-
562 
-
564 }//namespace glm
-
565 
-
566 #include "simd_vec4.inl"
-
567 
-
568 #if (GLM_COMPILER & GLM_COMPILER_VC)
-
569 # pragma warning(pop)
-
570 #endif
-
571 
-
572 #endif//(GLM_ARCH != GLM_ARCH_PURE)
-
573 
-
574 #endif//GLM_GTX_simd_vec4
-
GLM_FUNC_DECL genType sqrt(genType const &x)
Returns the positive square root of x.
-
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:393
-
GLM_FUNC_DECL genType floor(genType const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
-
GLM_FUNC_DECL detail::tvec3< T, P > cross(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
Returns the cross product of x and y.
-
GLM_FUNC_DECL genTypeT mix(genTypeT const &x, genTypeT const &y, genTypeU const &a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:398
-
genType fastSqrt(genType const &x)
Faster than the common sqrt function but less accurate.
-
GLM_FUNC_DECL genType mod(genType const &x, genType const &y)
Modulus.
-
GLM_FUNC_DECL genType inversesqrt(genType const &x)
Returns the reciprocal of the positive square root of x.
-
GLM_FUNC_DECL genType normalize(genType const &x)
Returns a vector in the same direction as x but with length of 1.
-
GLM_FUNC_DECL genType fract(genType const &x)
Return x - floor(x).
-
GLM_FUNC_DECL genType ceil(genType const &x)
Returns a value equal to the nearest integer that is greater than or equal to x.
-
GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c.
-
genType fastNormalize(genType const &x)
Faster than the common normalize function but less accurate.
-
GLM_FUNC_DECL genType step(genType const &edge, genType const &x)
Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType.
-
GLM_FUNC_DECL genType trunc(genType const &x)
Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
GLM_FUNC_DECL genType round(genType const &x)
Returns a value equal to the nearest integer to x.
-
GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T const &eta)
For the incident vector I and surface normal N, and the ratio of indices of refraction eta...
-
GLM_FUNC_DECL genType abs(genType const &x)
Returns x if x &gt;= 0; otherwise, it returns -x.
-
GLM_FUNC_DECL genType smoothstep(genType const &edge0, genType const &edge1, genType const &x)
Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 a...
-
GLM_FUNC_DECL genType 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 an...
-
GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)
For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...
-
GLM_FUNC_DECL genType max(genType const &x, genType const &y)
Returns y if x &lt; y; otherwise, it returns x.
-
GLM_FUNC_DECL genType::value_type distance(genType const &p0, genType const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
-
GLM_FUNC_DECL genType sign(genType const &x)
Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.
-
genType::value_type fastLength(genType const &x)
Faster than the common length function but less accurate.
-
GLM_FUNC_DECL genType min(genType const &x, genType const &y)
Returns y if y &lt; x; otherwise, it returns x.
-
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:388
-
- - - - diff --git a/3party/glm/doc/api/a00112.html b/3party/glm/doc/api/a00112.html deleted file mode 100755 index 83bd954e05..0000000000 --- a/3party/glm/doc/api/a00112.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -GLM: spline.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
spline.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL 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 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_spline

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

Definition in file spline.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00112_source.html b/3party/glm/doc/api/a00112_source.html deleted file mode 100755 index 2d7f5f86b3..0000000000 --- a/3party/glm/doc/api/a00112_source.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - -GLM: spline.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
spline.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_spline
-
39 #define GLM_GTX_spline
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 #include "../gtx/optimum_pow.hpp"
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_spline extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  template <typename genType>
-
57  GLM_FUNC_DECL genType catmullRom(
-
58  genType const & v1,
-
59  genType const & v2,
-
60  genType const & v3,
-
61  genType const & v4,
-
62  typename genType::value_type const & s);
-
63 
-
66  template <typename genType>
-
67  GLM_FUNC_DECL genType hermite(
-
68  genType const & v1,
-
69  genType const & t1,
-
70  genType const & v2,
-
71  genType const & t2,
-
72  typename genType::value_type const & s);
-
73 
-
76  template <typename genType>
-
77  GLM_FUNC_DECL genType cubic(
-
78  genType const & v1,
-
79  genType const & v2,
-
80  genType const & v3,
-
81  genType const & v4,
-
82  typename genType::value_type const & s);
-
83 
-
85 }//namespace glm
-
86 
-
87 #include "spline.inl"
-
88 
-
89 #endif//GLM_GTX_spline
-
90 
-
GLM_FUNC_DECL genType 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.
-
GLM_FUNC_DECL genType 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.
-
GLM_FUNC_DECL genType 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.
-
- - - - diff --git a/3party/glm/doc/api/a00113.html b/3party/glm/doc/api/a00113.html deleted file mode 100755 index 5680b5c8c2..0000000000 --- a/3party/glm/doc/api/a00113.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -GLM: std_based_type.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
std_based_type.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - -

-Typedefs

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_std_based_type

-
Date
2008-06-08 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_extented_min_max (dependence)
- -

Definition in file std_based_type.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00113_source.html b/3party/glm/doc/api/a00113_source.html deleted file mode 100755 index 8de7cba807..0000000000 --- a/3party/glm/doc/api/a00113_source.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - -GLM: std_based_type.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
std_based_type.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_std_based_type
-
39 #define GLM_GTX_std_based_type
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 #include <cstdlib>
-
44 
-
45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
46 # pragma message("GLM: GLM_GTX_std_based_type extension included")
-
47 #endif
-
48 
-
49 namespace glm
-
50 {
-
53 
-
56  typedef detail::tvec2<std::size_t, defaultp> size2;
-
57 
-
60  typedef detail::tvec3<std::size_t, defaultp> size3;
-
61 
-
64  typedef detail::tvec4<std::size_t, defaultp> size4;
-
65 
-
68  typedef detail::tvec2<std::size_t, defaultp> size2_t;
-
69 
-
72  typedef detail::tvec3<std::size_t, defaultp> size3_t;
-
73 
-
76  typedef detail::tvec4<std::size_t, defaultp> size4_t;
-
77 
-
79 }//namespace glm
-
80 
-
81 #include "std_based_type.inl"
-
82 
-
83 #endif//GLM_GTX_std_based_type
-
detail::tvec4< std::size_t, defaultp > size4
Vector type based of four std::size_t components.
-
detail::tvec4< std::size_t, defaultp > size4_t
Vector type based of four std::size_t components.
-
detail::tvec3< std::size_t, defaultp > size3_t
Vector type based of three std::size_t components.
-
detail::tvec3< std::size_t, defaultp > size3
Vector type based of three std::size_t components.
-
detail::tvec2< std::size_t, defaultp > size2_t
Vector type based of two std::size_t components.
-
detail::tvec2< std::size_t, defaultp > size2
Vector type based of two std::size_t components.
-
- - - - diff --git a/3party/glm/doc/api/a00114.html b/3party/glm/doc/api/a00114.html deleted file mode 100755 index 4da289d459..0000000000 --- a/3party/glm/doc/api/a00114.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -GLM: string_cast.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
string_cast.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_string_cast

-
Date
2008-04-26 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-GLM_GTX_integer (dependence)
-
-GLM_GTX_quaternion (dependence)
- -

Definition in file string_cast.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00114_source.html b/3party/glm/doc/api/a00114_source.html deleted file mode 100755 index 51b49154db..0000000000 --- a/3party/glm/doc/api/a00114_source.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -GLM: string_cast.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
string_cast.hpp
-
-
-Go to the documentation of this file.
1 
-
41 #ifndef GLM_GTX_string_cast
-
42 #define GLM_GTX_string_cast
-
43 
-
44 // Dependency:
-
45 #include "../glm.hpp"
-
46 #include "../gtx/integer.hpp"
-
47 #include "../gtx/quaternion.hpp"
-
48 #include <string>
-
49 
-
50 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
51 # pragma message("GLM: GLM_GTX_string_cast extension included")
-
52 #endif
-
53 
-
54 namespace glm
-
55 {
-
58 
-
61  template <typename genType>
-
62  std::string to_string(genType const & x);
-
63 
-
65 }//namespace glm
-
66 
-
67 #include "string_cast.inl"
-
68 
-
69 #endif//GLM_GTX_string_cast
-
std::string to_string(genType const &x)
Create a string from a GLM type value.
-
- - - - diff --git a/3party/glm/doc/api/a00115.html b/3party/glm/doc/api/a00115.html deleted file mode 100755 index 7c26c8687a..0000000000 --- a/3party/glm/doc/api/a00115.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -GLM: transform.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
transform.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat4x4< T, P > rotate (T angle, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > scale (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > translate (detail::tvec3< T, P > const &v)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_transform

-
Date
2005-12-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTC_matrix_transform (dependence)
-
-GLM_GTX_transform
-
-GLM_GTX_transform2
- -

Definition in file transform.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00115_source.html b/3party/glm/doc/api/a00115_source.html deleted file mode 100755 index 1be83a0c8c..0000000000 --- a/3party/glm/doc/api/a00115_source.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - -GLM: transform.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
transform.hpp
-
-
-Go to the documentation of this file.
1 
-
41 #ifndef GLM_GTX_transform
-
42 #define GLM_GTX_transform
-
43 
-
44 // Dependency:
-
45 #include "../glm.hpp"
-
46 #include "../gtc/matrix_transform.hpp"
-
47 
-
48 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
49 # pragma message("GLM: GLM_GTX_transform extension included")
-
50 #endif
-
51 
-
52 namespace glm
-
53 {
-
56 
-
60  template <typename T, precision P>
-
61  detail::tmat4x4<T, P> translate(
-
62  detail::tvec3<T, P> const & v);
-
63 
-
67  template <typename T, precision P>
-
68  detail::tmat4x4<T, P> rotate(
-
69  T angle,
-
70  detail::tvec3<T, P> const & v);
-
71 
-
75  template <typename T, precision P>
-
76  detail::tmat4x4<T, P> scale(
-
77  detail::tvec3<T, P> const & v);
-
78 
-
80 }// namespace glm
-
81 
-
82 #include "transform.inl"
-
83 
-
84 #endif//GLM_GTX_transform
-
GLM_FUNC_DECL detail::tmat4x4< T, P > rotate(detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > scale(detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > translate(detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
Builds a translation 4 * 4 matrix created from a vector of 3 components.
-
- - - - diff --git a/3party/glm/doc/api/a00116.html b/3party/glm/doc/api/a00116.html deleted file mode 100755 index e7b1afcb4a..0000000000 --- a/3party/glm/doc/api/a00116.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - -GLM: transform2.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
transform2.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_transform2

-
Date
2005-12-21 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_transform (dependence)
- -

Definition in file transform2.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00116_source.html b/3party/glm/doc/api/a00116_source.html deleted file mode 100755 index 3049a1ab20..0000000000 --- a/3party/glm/doc/api/a00116_source.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - -GLM: transform2.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
transform2.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTX_transform2
-
40 #define GLM_GTX_transform2
-
41 
-
42 // Dependency:
-
43 #include "../glm.hpp"
-
44 #include "../gtx/transform.hpp"
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_transform2 extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
57  template <typename T, precision P>
-
58  detail::tmat3x3<T, P> shearX2D(
-
59  detail::tmat3x3<T, P> const & m,
-
60  T y);
-
61 
-
64  template <typename T, precision P>
-
65  detail::tmat3x3<T, P> shearY2D(
-
66  detail::tmat3x3<T, P> const & m,
-
67  T x);
-
68 
-
71  template <typename T, precision P>
-
72  detail::tmat4x4<T, P> shearX3D(
-
73  const detail::tmat4x4<T, P> & m,
-
74  T y,
-
75  T z);
-
76 
-
79  template <typename T, precision P>
-
80  detail::tmat4x4<T, P> shearY3D(
-
81  const detail::tmat4x4<T, P> & m,
-
82  T x,
-
83  T z);
-
84 
-
87  template <typename T, precision P>
-
88  detail::tmat4x4<T, P> shearZ3D(
-
89  const detail::tmat4x4<T, P> & m,
-
90  T x,
-
91  T y);
-
92 
-
93  //template <typename T> GLM_FUNC_QUALIFIER detail::tmat4x4<T, P> shear(const detail::tmat4x4<T, P> & m, shearPlane, planePoint, angle)
-
94  // Identity + tan(angle) * cross(Normal, OnPlaneVector) 0
-
95  // - dot(PointOnPlane, normal) * OnPlaneVector 1
-
96 
-
97  // Reflect functions seem to don't work
-
98  //template <typename T> detail::tmat3x3<T, P> reflect2D(const detail::tmat3x3<T, P> & m, const detail::tvec3<T, P>& normal){return reflect2DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
-
99  //template <typename T> detail::tmat4x4<T, P> reflect3D(const detail::tmat4x4<T, P> & m, const detail::tvec3<T, P>& normal){return reflect3DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
-
100 
-
103  template <typename T, precision P>
-
104  detail::tmat3x3<T, P> proj2D(
-
105  const detail::tmat3x3<T, P> & m,
-
106  const detail::tvec3<T, P>& normal);
-
107 
-
110  template <typename T, precision P>
-
111  detail::tmat4x4<T, P> proj3D(
-
112  const detail::tmat4x4<T, P> & m,
-
113  const detail::tvec3<T, P>& normal);
-
114 
-
117  template <typename valType, precision P>
-
118  detail::tmat4x4<valType, P> scaleBias(
-
119  valType scale,
-
120  valType bias);
-
121 
-
124  template <typename valType, precision P>
-
125  detail::tmat4x4<valType, P> scaleBias(
-
126  detail::tmat4x4<valType, P> const & m,
-
127  valType scale,
-
128  valType bias);
-
129 
-
131 }// namespace glm
-
132 
-
133 #include "transform2.inl"
-
134 
-
135 #endif//GLM_GTX_transform2
-
detail::tmat4x4< valType, P > scaleBias(valType scale, valType bias)
Build a scale bias matrix.
-
detail::tmat3x3< T, P > shearX2D(detail::tmat3x3< T, P > const &m, T y)
Transforms a matrix with a shearing on X axis.
-
detail::tmat3x3< T, P > proj2D(const detail::tmat3x3< T, P > &m, const detail::tvec3< T, P > &normal)
Build planar projection matrix along normal axis.
-
GLM_FUNC_DECL detail::tmat4x4< T, P > scale(detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
-
detail::tmat4x4< T, P > shearY3D(const detail::tmat4x4< T, P > &m, T x, T z)
Transforms a matrix with a shearing on Y axis.
-
detail::tmat4x4< T, P > proj3D(const detail::tmat4x4< T, P > &m, const detail::tvec3< T, P > &normal)
Build planar projection matrix along normal axis.
-
detail::tmat4x4< T, P > shearZ3D(const detail::tmat4x4< T, P > &m, T x, T y)
Transforms a matrix with a shearing on Z axis.
-
detail::tmat3x3< T, P > shearY2D(detail::tmat3x3< T, P > const &m, T x)
Transforms a matrix with a shearing on Y axis.
-
detail::tmat4x4< T, P > shearX3D(const detail::tmat4x4< T, P > &m, T y, T z)
Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.
-
- - - - diff --git a/3party/glm/doc/api/a00117.html b/3party/glm/doc/api/a00117.html deleted file mode 100755 index 6449c4b828..0000000000 --- a/3party/glm/doc/api/a00117.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -GLM: trigonometric.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
trigonometric.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file trigonometric.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00117_source.html b/3party/glm/doc/api/a00117_source.html deleted file mode 100755 index 94a51a1d6c..0000000000 --- a/3party/glm/doc/api/a00117_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: trigonometric.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
trigonometric.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_TRIGONOMETRIC_INCLUDED
-
30 #define GLM_TRIGONOMETRIC_INCLUDED
-
31 
-
32 #include "detail/func_trigonometric.hpp"
-
33 
-
34 #endif//GLM_TRIGONOMETRIC_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00118_source.html b/3party/glm/doc/api/a00118_source.html deleted file mode 100755 index 12eaa7853b..0000000000 --- a/3party/glm/doc/api/a00118_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - -GLM: type_float.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_float.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_float
-
30 #define glm_core_type_float
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 namespace glm{
-
35 namespace detail
-
36 {
-
37  typedef float float32;
-
38  typedef double float64;
-
39 }//namespace detail
-
40 
-
41  typedef float lowp_float_t;
-
42  typedef float mediump_float_t;
-
43  typedef double highp_float_t;
-
44 
-
47 
-
53  typedef lowp_float_t lowp_float;
-
54 
-
60  typedef mediump_float_t mediump_float;
-
61 
-
67  typedef highp_float_t highp_float;
-
68 
-
69 #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
70  typedef mediump_float float_t;
-
71 #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
72  typedef highp_float float_t;
-
73 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
74  typedef mediump_float float_t;
-
75 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
-
76  typedef lowp_float float_t;
-
77 #else
-
78 # error "GLM error: multiple default precision requested for floating-point types"
-
79 #endif
-
80 
-
81  typedef float float32;
-
82  typedef double float64;
-
83 
-
85 // check type sizes
-
86 #ifndef GLM_STATIC_ASSERT_NULL
-
87  GLM_STATIC_ASSERT(sizeof(glm::float32) == 4, "float32 size isn't 4 bytes on this platform");
-
88  GLM_STATIC_ASSERT(sizeof(glm::float64) == 8, "float64 size isn't 8 bytes on this platform");
-
89 #endif//GLM_STATIC_ASSERT_NULL
-
90 
-
92 
-
93 }//namespace glm
-
94 
-
95 #endif//glm_core_type_float
-
float float32
Default 32 bit single-precision floating-point scalar.
Definition: type_float.hpp:81
-
highp_float_t highp_float
High precision floating-point numbers.
Definition: type_float.hpp:67
-
mediump_float_t mediump_float
Medium precision floating-point numbers.
Definition: type_float.hpp:60
-
lowp_float_t lowp_float
Low precision floating-point numbers.
Definition: type_float.hpp:53
-
double float64
Default 64 bit double-precision floating-point scalar.
Definition: type_float.hpp:82
-
- - - - diff --git a/3party/glm/doc/api/a00119_source.html b/3party/glm/doc/api/a00119_source.html deleted file mode 100755 index 9354b44960..0000000000 --- a/3party/glm/doc/api/a00119_source.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - -GLM: type_gentype.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_gentype.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_gentype
-
30 #define glm_core_type_gentype
-
31 
-
32 namespace glm
-
33 {
-
34  enum profile
-
35  {
-
36  nice,
-
37  fast,
-
38  simd
-
39  };
-
40 
-
41  typedef std::size_t sizeType;
-
42 
-
43 namespace detail
-
44 {
-
45  template
-
46  <
-
47  typename VALTYPE,
-
48  template <typename> class TYPE
-
49  >
-
50  struct genType
-
51  {
-
52  public:
-
53  enum ctor{null};
-
54 
-
55  typedef VALTYPE value_type;
-
56  typedef VALTYPE & value_reference;
-
57  typedef VALTYPE * value_pointer;
-
58  typedef VALTYPE const * value_const_pointer;
-
59  typedef TYPE<bool> bool_type;
-
60 
-
61  typedef sizeType size_type;
-
62  static bool is_vector();
-
63  static bool is_matrix();
-
64 
-
65  typedef TYPE<VALTYPE> type;
-
66  typedef TYPE<VALTYPE> * pointer;
-
67  typedef TYPE<VALTYPE> const * const_pointer;
-
68  typedef TYPE<VALTYPE> const * const const_pointer_const;
-
69  typedef TYPE<VALTYPE> * const pointer_const;
-
70  typedef TYPE<VALTYPE> & reference;
-
71  typedef TYPE<VALTYPE> const & const_reference;
-
72  typedef TYPE<VALTYPE> const & param_type;
-
73 
-
75  // Address (Implementation details)
-
76 
-
77  value_const_pointer value_address() const{return value_pointer(this);}
-
78  value_pointer value_address(){return value_pointer(this);}
-
79 
-
80  //protected:
-
81  // enum kind
-
82  // {
-
83  // GEN_TYPE,
-
84  // VEC_TYPE,
-
85  // MAT_TYPE
-
86  // };
-
87 
-
88  // typedef typename TYPE::kind kind;
-
89  };
-
90 
-
91  template
-
92  <
-
93  typename VALTYPE,
-
94  template <typename> class TYPE
-
95  >
-
96  bool genType<VALTYPE, TYPE>::is_vector()
-
97  {
-
98  return true;
-
99  }
-
100 /*
-
101  template <typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice>
-
102  class base
-
103  {
-
104  public:
-
106  // Traits
-
107 
-
108  typedef sizeType size_type;
-
109  typedef valTypeT value_type;
-
110 
-
111  typedef base<value_type, colT, rowT> class_type;
-
112 
-
113  typedef base<bool, colT, rowT> bool_type;
-
114  typedef base<value_type, rowT, 1> col_type;
-
115  typedef base<value_type, colT, 1> row_type;
-
116  typedef base<value_type, rowT, colT> transpose_type;
-
117 
-
118  static size_type col_size();
-
119  static size_type row_size();
-
120  static size_type value_size();
-
121  static bool is_scalar();
-
122  static bool is_vector();
-
123  static bool is_matrix();
-
124 
-
125  private:
-
126  // Data
-
127  col_type value[colT];
-
128 
-
129  public:
-
131  // Constructors
-
132  base();
-
133  base(class_type const & m);
-
134 
-
135  explicit base(T const & x);
-
136  explicit base(value_type const * const x);
-
137  explicit base(col_type const * const x);
-
138 
-
140  // Conversions
-
141  template <typename vU, uint cU, uint rU, profile pU>
-
142  explicit base(base<vU, cU, rU, pU> const & m);
-
143 
-
145  // Accesses
-
146  col_type& operator[](size_type i);
-
147  col_type const & operator[](size_type i) const;
-
148 
-
150  // Unary updatable operators
-
151  class_type& operator= (class_type const & x);
-
152  class_type& operator+= (T const & x);
-
153  class_type& operator+= (class_type const & x);
-
154  class_type& operator-= (T const & x);
-
155  class_type& operator-= (class_type const & x);
-
156  class_type& operator*= (T const & x);
-
157  class_type& operator*= (class_type const & x);
-
158  class_type& operator/= (T const & x);
-
159  class_type& operator/= (class_type const & x);
-
160  class_type& operator++ ();
-
161  class_type& operator-- ();
-
162  };
-
163 */
-
164 
-
165  //template <typename T>
-
166  //struct traits
-
167  //{
-
168  // static const bool is_signed = false;
-
169  // static const bool is_float = false;
-
170  // static const bool is_vector = false;
-
171  // static const bool is_matrix = false;
-
172  // static const bool is_genType = false;
-
173  // static const bool is_genIType = false;
-
174  // static const bool is_genUType = false;
-
175  //};
-
176 
-
177  //template <>
-
178  //struct traits<half>
-
179  //{
-
180  // static const bool is_float = true;
-
181  // static const bool is_genType = true;
-
182  //};
-
183 
-
184  //template <>
-
185  //struct traits<float>
-
186  //{
-
187  // static const bool is_float = true;
-
188  // static const bool is_genType = true;
-
189  //};
-
190 
-
191  //template <>
-
192  //struct traits<double>
-
193  //{
-
194  // static const bool is_float = true;
-
195  // static const bool is_genType = true;
-
196  //};
-
197 
-
198  //template <typename genType>
-
199  //struct desc
-
200  //{
-
201  // typedef genType type;
-
202  // typedef genType * pointer;
-
203  // typedef genType const* const_pointer;
-
204  // typedef genType const *const const_pointer_const;
-
205  // typedef genType *const pointer_const;
-
206  // typedef genType & reference;
-
207  // typedef genType const& const_reference;
-
208  // typedef genType const& param_type;
-
209 
-
210  // typedef typename genType::value_type value_type;
-
211  // typedef typename genType::size_type size_type;
-
212  // static const typename size_type value_size;
-
213  //};
-
214 
-
215  //template <typename genType>
-
216  //const typename desc<genType>::size_type desc<genType>::value_size = genType::value_size();
-
217 
-
218 }//namespace detail
-
219 }//namespace glm
-
220 
-
221 //#include "type_gentype.inl"
-
222 
-
223 #endif//glm_core_type_gentype
-
- - - - diff --git a/3party/glm/doc/api/a00120_source.html b/3party/glm/doc/api/a00120_source.html deleted file mode 100755 index 51802882b8..0000000000 --- a/3party/glm/doc/api/a00120_source.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -GLM: type_half.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_half.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_half
-
30 #define glm_core_type_half
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 namespace glm{
-
35 namespace detail
-
36 {
-
37  typedef short hdata;
-
38 
-
39  GLM_FUNC_DECL float toFloat32(hdata value);
-
40  GLM_FUNC_DECL hdata toFloat16(float const & value);
-
41 
-
42 }//namespace detail
-
43 
-
45  //typedef detail::hdata half;
-
46 
-
47 }//namespace glm
-
48 
-
49 #include "type_half.inl"
-
50 
-
51 #endif//glm_core_type_half
-
- - - - diff --git a/3party/glm/doc/api/a00121_source.html b/3party/glm/doc/api/a00121_source.html deleted file mode 100755 index 79da92bc6b..0000000000 --- a/3party/glm/doc/api/a00121_source.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - -GLM: type_int.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_int.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_int
-
30 #define glm_core_type_int
-
31 
-
32 #include "setup.hpp"
-
33 
-
34 #if GLM_HAS_EXTENDED_INTEGER_TYPE
-
35 # include <cstdint>
-
36 #endif
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41 # if GLM_HAS_EXTENDED_INTEGER_TYPE
-
42  typedef std::int8_t int8;
-
43  typedef std::int16_t int16;
-
44  typedef std::int32_t int32;
-
45  typedef std::int64_t int64;
-
46 
-
47  typedef std::uint8_t uint8;
-
48  typedef std::uint16_t uint16;
-
49  typedef std::uint32_t uint32;
-
50  typedef std::uint64_t uint64;
-
51 # else
-
52 # if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
-
53  typedef int64_t sint64;
-
54  typedef uint64_t uint64;
-
55 # elif(GLM_COMPILER & GLM_COMPILER_VC)
-
56  typedef signed __int64 sint64;
-
57  typedef unsigned __int64 uint64;
-
58 # elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG))
-
59  __extension__ typedef signed long long sint64;
-
60  __extension__ typedef unsigned long long uint64;
-
61 # elif(GLM_COMPILER & GLM_COMPILER_BC)
-
62  typedef Int64 sint64;
-
63  typedef Uint64 uint64;
-
64 # else//unknown compiler
-
65  typedef signed long long sint64;
-
66  typedef unsigned long long uint64;
-
67 # endif//GLM_COMPILER
-
68 
-
69  typedef signed char int8;
-
70  typedef signed short int16;
-
71  typedef signed int int32;
-
72  typedef sint64 int64;
-
73 
-
74  typedef unsigned char uint8;
-
75  typedef unsigned short uint16;
-
76  typedef unsigned int uint32;
-
77  typedef uint64 uint64;
-
78 #endif//
-
79 
-
80  typedef signed int lowp_int_t;
-
81  typedef signed int mediump_int_t;
-
82  typedef signed int highp_int_t;
-
83 
-
84  typedef unsigned int lowp_uint_t;
-
85  typedef unsigned int mediump_uint_t;
-
86  typedef unsigned int highp_uint_t;
-
87 }//namespace detail
-
88 
-
89  typedef detail::int8 int8;
-
90  typedef detail::int16 int16;
-
91  typedef detail::int32 int32;
-
92  typedef detail::int64 int64;
-
93 
-
94  typedef detail::uint8 uint8;
-
95  typedef detail::uint16 uint16;
-
96  typedef detail::uint32 uint32;
-
97  typedef detail::uint64 uint64;
-
98 
-
101 
-
107  typedef detail::lowp_int_t lowp_int;
-
108 
-
114  typedef detail::mediump_int_t mediump_int;
-
115 
-
121  typedef detail::highp_int_t highp_int;
-
122 
-
128  typedef detail::lowp_uint_t lowp_uint;
-
129 
-
135  typedef detail::mediump_uint_t mediump_uint;
-
136 
-
142  typedef detail::highp_uint_t highp_uint;
-
143 
-
144 #if(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
-
145  typedef mediump_int int_t;
-
146 #elif(defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
-
147  typedef highp_int int_t;
-
148 #elif(!defined(GLM_PRECISION_HIGHP_INT) && defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
-
149  typedef mediump_int int_t;
-
150 #elif(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && defined(GLM_PRECISION_LOWP_INT))
-
151  typedef lowp_int int_t;
-
152 #else
-
153 # error "GLM error: multiple default precision requested for signed interger types"
-
154 #endif
-
155 
-
156 #if(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
-
157  typedef mediump_uint uint_t;
-
158 #elif(defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
-
159  typedef highp_uint uint_t;
-
160 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
-
161  typedef mediump_uint uint_t;
-
162 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && defined(GLM_PRECISION_LOWP_UINT))
-
163  typedef lowp_uint uint_t;
-
164 #else
-
165 # error "GLM error: multiple default precision requested for unsigned interger types"
-
166 #endif
-
167 
-
171  typedef unsigned int uint;
-
172 
-
174 
-
176 // check type sizes
-
177 #ifndef GLM_STATIC_ASSERT_NULL
-
178  GLM_STATIC_ASSERT(sizeof(glm::int8) == 1, "int8 size isn't 1 byte on this platform");
-
179  GLM_STATIC_ASSERT(sizeof(glm::int16) == 2, "int16 size isn't 2 bytes on this platform");
-
180  GLM_STATIC_ASSERT(sizeof(glm::int32) == 4, "int32 size isn't 4 bytes on this platform");
-
181  GLM_STATIC_ASSERT(sizeof(glm::int64) == 8, "int64 size isn't 8 bytes on this platform");
-
182 
-
183  GLM_STATIC_ASSERT(sizeof(glm::uint8) == 1, "uint8 size isn't 1 byte on this platform");
-
184  GLM_STATIC_ASSERT(sizeof(glm::uint16) == 2, "uint16 size isn't 2 bytes on this platform");
-
185  GLM_STATIC_ASSERT(sizeof(glm::uint32) == 4, "uint32 size isn't 4 bytes on this platform");
-
186  GLM_STATIC_ASSERT(sizeof(glm::uint64) == 8, "uint64 size isn't 8 bytes on this platform");
-
187 #endif//GLM_STATIC_ASSERT_NULL
-
188 
-
189 }//namespace glm
-
190 
-
191 #endif//glm_core_type_int
-
detail::highp_int_t highp_int
High precision signed integer.
Definition: type_int.hpp:121
-
detail::int8 int8
8 bit signed integer type.
Definition: type_int.hpp:89
-
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:96
-
detail::int16 int16
16 bit signed integer type.
Definition: type_int.hpp:90
-
detail::uint8 uint8_t
8 bit unsigned integer type.
Definition: fwd.hpp:895
-
detail::int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:305
-
detail::uint32 uint32_t
32 bit unsigned integer type.
Definition: fwd.hpp:903
-
detail::int64 int64
64 bit signed integer type.
Definition: type_int.hpp:92
-
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:171
-
detail::uint64 uint64_t
64 bit unsigned integer type.
Definition: fwd.hpp:907
-
detail::int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:297
-
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:97
-
detail::lowp_uint_t lowp_uint
Low precision unsigned integer.
Definition: type_int.hpp:128
-
detail::int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:293
-
detail::uint16 uint16_t
16 bit unsigned integer type.
Definition: fwd.hpp:899
-
detail::int32 int32
32 bit signed integer type.
Definition: type_int.hpp:91
-
detail::int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:301
-
detail::mediump_uint_t mediump_uint
Medium precision unsigned integer.
Definition: type_int.hpp:135
-
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:94
-
detail::mediump_int_t mediump_int
Medium precision signed integer.
Definition: type_int.hpp:114
-
detail::highp_uint_t highp_uint
High precision unsigned integer.
Definition: type_int.hpp:142
-
detail::lowp_int_t lowp_int
Low precision signed integer.
Definition: type_int.hpp:107
-
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:95
-
- - - - diff --git a/3party/glm/doc/api/a00122_source.html b/3party/glm/doc/api/a00122_source.html deleted file mode 100755 index ba2c4d087d..0000000000 --- a/3party/glm/doc/api/a00122_source.html +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - -GLM: type_mat.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_mat.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_mat
-
30 #define glm_core_type_mat
-
31 
-
32 #include "precision.hpp"
-
33 
-
34 namespace glm{
-
35 namespace detail
-
36 {
-
37  template <typename T, precision P> struct tvec2;
-
38  template <typename T, precision P> struct tvec3;
-
39  template <typename T, precision P> struct tvec4;
-
40  template <typename T, precision P> struct tmat2x2;
-
41  template <typename T, precision P> struct tmat2x3;
-
42  template <typename T, precision P> struct tmat2x4;
-
43  template <typename T, precision P> struct tmat3x2;
-
44  template <typename T, precision P> struct tmat3x3;
-
45  template <typename T, precision P> struct tmat3x4;
-
46  template <typename T, precision P> struct tmat4x2;
-
47  template <typename T, precision P> struct tmat4x3;
-
48  template <typename T, precision P> struct tmat4x4;
-
49 
-
50  template <typename T, precision P, template <class, precision> class colType, template <class, precision> class rowType>
-
51  struct outerProduct_trait{};
-
52 
-
53  template <template <class, precision> class matType, typename T, precision P>
-
54  struct compute_inverse{};
-
55 }//namespace detail
-
56 
-
59 
-
65  typedef detail::tmat2x2<float, lowp> lowp_mat2;
-
66 
-
72  typedef detail::tmat2x2<float, mediump> mediump_mat2;
-
73 
-
79  typedef detail::tmat2x2<float, highp> highp_mat2;
-
80 
-
86  typedef detail::tmat2x2<float, lowp> lowp_mat2x2;
-
87 
-
93  typedef detail::tmat2x2<float, mediump> mediump_mat2x2;
-
94 
-
100  typedef detail::tmat2x2<float, highp> highp_mat2x2;
-
101 
-
103 
-
106 
-
112  typedef detail::tmat2x3<float, lowp> lowp_mat2x3;
-
113 
-
119  typedef detail::tmat2x3<float, mediump> mediump_mat2x3;
-
120 
-
126  typedef detail::tmat2x3<float, highp> highp_mat2x3;
-
127 
-
129 
-
132 
-
138  typedef detail::tmat2x4<float, lowp> lowp_mat2x4;
-
139 
-
145  typedef detail::tmat2x4<float, mediump> mediump_mat2x4;
-
146 
-
152  typedef detail::tmat2x4<float, highp> highp_mat2x4;
-
153 
-
155 
-
158 
-
164  typedef detail::tmat3x2<float, lowp> lowp_mat3x2;
-
165 
-
171  typedef detail::tmat3x2<float, mediump> mediump_mat3x2;
-
172 
-
178  typedef detail::tmat3x2<float, highp> highp_mat3x2;
-
179 
-
181 
-
184 
-
190  typedef detail::tmat3x3<float, lowp> lowp_mat3;
-
191 
-
197  typedef detail::tmat3x3<float, mediump> mediump_mat3;
-
198 
-
204  typedef detail::tmat3x3<float, highp> highp_mat3;
-
205 
-
211  typedef detail::tmat3x3<float, lowp> lowp_mat3x3;
-
212 
-
218  typedef detail::tmat3x3<float, mediump> mediump_mat3x3;
-
219 
-
225  typedef detail::tmat3x3<float, highp> highp_mat3x3;
-
226 
-
228 
-
231 
-
237  typedef detail::tmat3x4<float, lowp> lowp_mat3x4;
-
238 
-
244  typedef detail::tmat3x4<float, mediump> mediump_mat3x4;
-
245 
-
251  typedef detail::tmat3x4<float, highp> highp_mat3x4;
-
252 
-
254 
-
257 
-
263  typedef detail::tmat4x2<float, lowp> lowp_mat4x2;
-
264 
-
270  typedef detail::tmat4x2<float, mediump> mediump_mat4x2;
-
271 
-
277  typedef detail::tmat4x2<float, highp> highp_mat4x2;
-
278 
-
280 
-
283 
-
289  typedef detail::tmat4x3<float, lowp> lowp_mat4x3;
-
290 
-
296  typedef detail::tmat4x3<float, mediump> mediump_mat4x3;
-
297 
-
303  typedef detail::tmat4x3<float, highp> highp_mat4x3;
-
304 
-
306 
-
307 
-
310 
-
316  typedef detail::tmat4x4<float, lowp> lowp_mat4;
-
317 
-
323  typedef detail::tmat4x4<float, mediump> mediump_mat4;
-
324 
-
330  typedef detail::tmat4x4<float, highp> highp_mat4;
-
331 
-
337  typedef detail::tmat4x4<float, lowp> lowp_mat4x4;
-
338 
-
344  typedef detail::tmat4x4<float, mediump> mediump_mat4x4;
-
345 
-
351  typedef detail::tmat4x4<float, highp> highp_mat4x4;
-
352 
-
354 
-
357 
-
359  // Float definition
-
360 
-
361 #if(defined(GLM_PRECISION_LOWP_FLOAT))
-
362  typedef lowp_mat2x2 mat2x2;
-
363  typedef lowp_mat2x3 mat2x3;
-
364  typedef lowp_mat2x4 mat2x4;
-
365  typedef lowp_mat3x2 mat3x2;
-
366  typedef lowp_mat3x3 mat3x3;
-
367  typedef lowp_mat3x4 mat3x4;
-
368  typedef lowp_mat4x2 mat4x2;
-
369  typedef lowp_mat4x3 mat4x3;
-
370  typedef lowp_mat4x4 mat4x4;
-
371 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
372  typedef mediump_mat2x2 mat2x2;
-
373  typedef mediump_mat2x3 mat2x3;
-
374  typedef mediump_mat2x4 mat2x4;
-
375  typedef mediump_mat3x2 mat3x2;
-
376  typedef mediump_mat3x3 mat3x3;
-
377  typedef mediump_mat3x4 mat3x4;
-
378  typedef mediump_mat4x2 mat4x2;
-
379  typedef mediump_mat4x3 mat4x3;
-
380  typedef mediump_mat4x4 mat4x4;
-
381 #else
-
382  typedef highp_mat2x2 mat2x2;
-
386 
- -
391 
- -
396 
- -
401 
- -
406 
- -
411 
- -
416 
- -
421 
- -
426 
-
427 #endif//GLM_PRECISION
-
428 
-
432  typedef mat2x2 mat2;
-
433 
-
437  typedef mat3x3 mat3;
-
438 
-
442  typedef mat4x4 mat4;
-
443 
-
445  // Double definition
-
446 
-
449 
-
454  typedef detail::tmat2x2<double, lowp> lowp_dmat2;
-
455 
-
460  typedef detail::tmat2x2<double, mediump> mediump_dmat2;
-
461 
-
466  typedef detail::tmat2x2<double, highp> highp_dmat2;
-
467 
-
472  typedef detail::tmat2x2<double, lowp> lowp_dmat2x2;
-
473 
-
478  typedef detail::tmat2x2<double, mediump> mediump_dmat2x2;
-
479 
-
484  typedef detail::tmat2x2<double, highp> highp_dmat2x2;
-
485 
-
487 
-
490 
-
495  typedef detail::tmat2x3<double, lowp> lowp_dmat2x3;
-
496 
-
501  typedef detail::tmat2x3<double, mediump> mediump_dmat2x3;
-
502 
-
507  typedef detail::tmat2x3<double, highp> highp_dmat2x3;
-
508 
-
510 
-
513 
-
518  typedef detail::tmat2x4<double, lowp> lowp_dmat2x4;
-
519 
-
524  typedef detail::tmat2x4<double, mediump> mediump_dmat2x4;
-
525 
-
530  typedef detail::tmat2x4<double, highp> highp_dmat2x4;
-
531 
-
533 
-
536 
-
541  typedef detail::tmat3x2<double, lowp> lowp_dmat3x2;
-
542 
-
547  typedef detail::tmat3x2<double, mediump> mediump_dmat3x2;
-
548 
-
553  typedef detail::tmat3x2<double, highp> highp_dmat3x2;
-
554 
-
556 
-
559 
-
564  typedef detail::tmat3x3<float, lowp> lowp_dmat3;
-
565 
-
570  typedef detail::tmat3x3<double, mediump> mediump_dmat3;
-
571 
-
576  typedef detail::tmat3x3<double, highp> highp_dmat3;
-
577 
-
582  typedef detail::tmat3x3<double, lowp> lowp_dmat3x3;
-
583 
-
588  typedef detail::tmat3x3<double, mediump> mediump_dmat3x3;
-
589 
-
594  typedef detail::tmat3x3<double, highp> highp_dmat3x3;
-
595 
-
597 
-
600 
-
605  typedef detail::tmat3x4<double, lowp> lowp_dmat3x4;
-
606 
-
611  typedef detail::tmat3x4<double, mediump> mediump_dmat3x4;
-
612 
-
617  typedef detail::tmat3x4<double, highp> highp_dmat3x4;
-
618 
-
620 
-
623 
-
628  typedef detail::tmat4x2<double, lowp> lowp_dmat4x2;
-
629 
-
634  typedef detail::tmat4x2<double, mediump> mediump_dmat4x2;
-
635 
-
640  typedef detail::tmat4x2<double, highp> highp_dmat4x2;
-
641 
-
643 
-
646 
-
651  typedef detail::tmat4x3<double, lowp> lowp_dmat4x3;
-
652 
-
657  typedef detail::tmat4x3<double, mediump> mediump_dmat4x3;
-
658 
-
663  typedef detail::tmat4x3<double, highp> highp_dmat4x3;
-
664 
-
666 
-
669 
-
674  typedef detail::tmat4x4<double, lowp> lowp_dmat4;
-
675 
-
680  typedef detail::tmat4x4<double, mediump> mediump_dmat4;
-
681 
-
686  typedef detail::tmat4x4<double, highp> highp_dmat4;
-
687 
-
692  typedef detail::tmat4x4<double, lowp> lowp_dmat4x4;
-
693 
-
698  typedef detail::tmat4x4<double, mediump> mediump_dmat4x4;
-
699 
-
704  typedef detail::tmat4x4<double, highp> highp_dmat4x4;
-
705 
-
707 
-
708 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
-
709  typedef lowp_dmat2x2 dmat2x2;
-
710  typedef lowp_dmat2x3 dmat2x3;
-
711  typedef lowp_dmat2x4 dmat2x4;
-
712  typedef lowp_dmat3x2 dmat3x2;
-
713  typedef lowp_dmat3x3 dmat3x3;
-
714  typedef lowp_dmat3x4 dmat3x4;
-
715  typedef lowp_dmat4x2 dmat4x2;
-
716  typedef lowp_dmat4x3 dmat4x3;
-
717  typedef lowp_dmat4x4 dmat4x4;
-
718 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
-
719  typedef mediump_dmat2x2 dmat2x2;
-
720  typedef mediump_dmat2x3 dmat2x3;
-
721  typedef mediump_dmat2x4 dmat2x4;
-
722  typedef mediump_dmat3x2 dmat3x2;
-
723  typedef mediump_dmat3x3 dmat3x3;
-
724  typedef mediump_dmat3x4 dmat3x4;
-
725  typedef mediump_dmat4x2 dmat4x2;
-
726  typedef mediump_dmat4x3 dmat4x3;
-
727  typedef mediump_dmat4x4 dmat4x4;
-
728 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
-
729 
- -
734 
- -
739 
- -
744 
- -
749 
- -
754 
- -
759 
- -
764 
- -
769 
- -
774 
- -
779 
- -
784 
- -
789 
-
790 #endif//GLM_PRECISION
-
791 
-
793 }//namespace glm
-
794 
-
795 #endif//glm_core_type_mat
-
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:425
-
detail::tmat4x4< double, highp > highp_dmat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:704
-
highp_mat4x2 mat4x2
4 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:415
-
detail::tmat2x2< float, highp > highp_mat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:79
-
detail::tmat3x3< double, mediump > mediump_dmat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:570
-
detail::tmat2x4< float, lowp > lowp_mat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:138
-
highp_dmat3x2 dmat3x2
3 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:763
-
detail::tmat3x3< float, mediump > mediump_mat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:197
-
detail::tmat3x3< float, lowp > lowp_mat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:211
-
detail::tmat2x2< double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:472
-
highp_dmat2x4 dmat2x4
2 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:758
-
detail::tmat3x4< double, highp > highp_dmat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:617
-
detail::tmat3x4< double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:605
-
highp_mat3x3 mat3x3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:405
-
detail::tmat2x2< float, mediump > mediump_mat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:72
-
highp_mat4x3 mat4x3
4 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:420
-
detail::tmat4x4< float, highp > highp_mat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:351
-
detail::tmat4x2< double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:634
-
detail::tmat4x3< float, mediump > mediump_mat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:296
-
detail::tmat4x4< float, lowp > lowp_mat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:316
-
detail::tmat3x2< float, lowp > lowp_mat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:164
-
detail::tmat3x4< float, highp > highp_mat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:251
-
detail::tmat2x2< float, lowp > lowp_mat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:86
-
highp_dmat4x4 dmat4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:743
-
highp_dmat4x4 dmat4x4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:788
-
detail::tmat2x3< double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:501
-
detail::tmat4x4< float, highp > highp_mat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:330
-
highp_dmat4x2 dmat4x2
4 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:778
-
detail::tmat3x3< float, highp > highp_mat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:204
-
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
-
detail::tmat2x2< double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:478
-
detail::tmat4x3< float, highp > highp_mat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:303
-
highp_dmat3x3 dmat3x3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:768
-
detail::tmat2x4< double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:524
-
detail::tmat3x4< double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:611
-
detail::tmat2x2< double, highp > highp_dmat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:484
-
detail::tmat4x2< float, mediump > mediump_mat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:270
-
highp_dmat3x3 dmat3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:738
-
detail::tmat4x4< float, mediump > mediump_mat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:344
-
detail::tmat2x2< float, lowp > lowp_mat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:65
-
detail::tmat3x3< float, lowp > lowp_mat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:190
-
highp_dmat2x2 dmat2x2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:748
-
detail::tmat3x3< double, highp > highp_dmat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:594
-
detail::tmat2x2< float, mediump > mediump_mat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:93
-
highp_dmat4x3 dmat4x3
4 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:783
-
detail::tmat4x3< float, lowp > lowp_mat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:289
-
detail::tmat2x3< float, mediump > mediump_mat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:119
-
detail::tmat4x3< double, highp > highp_dmat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:663
-
detail::tmat2x4< double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:518
-
detail::tmat3x3< float, mediump > mediump_mat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:218
-
detail::tmat3x2< float, highp > highp_mat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:178
-
detail::tmat2x3< double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:495
-
detail::tmat3x3< float, highp > highp_mat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:225
-
detail::tmat2x3< double, highp > highp_dmat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:507
-
detail::tmat3x3< double, highp > highp_dmat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:576
-
detail::tmat4x4< double, lowp > lowp_dmat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:674
-
detail::tmat4x4< double, mediump > mediump_dmat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:680
-
detail::tmat3x2< double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:547
-
detail::tmat3x2< double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:541
-
highp_mat3x4 mat3x4
3 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:410
-
detail::tmat3x4< float, lowp > lowp_mat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:237
-
detail::tmat2x4< float, highp > highp_mat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:152
-
highp_dmat3x4 dmat3x4
3 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:773
-
detail::tmat4x4< double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:692
-
highp_mat2x2 mat2x2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:385
-
detail::tmat2x4< float, mediump > mediump_mat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:145
-
highp_mat2x3 mat2x3
2 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:390
-
highp_mat2x4 mat2x4
2 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:395
-
detail::tmat4x2< float, highp > highp_mat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:277
-
highp_mat3x2 mat3x2
3 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:400
-
detail::tmat4x2< float, lowp > lowp_mat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:263
-
detail::tmat3x3< double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:582
-
detail::tmat3x3< float, lowp > lowp_dmat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:564
-
detail::tmat2x2< float, highp > highp_mat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:100
-
detail::tmat4x4< float, mediump > mediump_mat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:323
-
detail::tmat4x2< double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:628
-
highp_dmat2x2 dmat2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:733
-
mat3x3 mat3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:437
-
detail::tmat3x2< double, highp > highp_dmat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:553
-
detail::tmat2x3< float, highp > highp_mat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:126
-
mat2x2 mat2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:432
-
detail::tmat4x4< double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:698
-
detail::tmat2x3< float, lowp > lowp_mat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:112
-
detail::tmat4x4< float, lowp > lowp_mat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:337
-
detail::tmat3x4< float, mediump > mediump_mat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:244
-
detail::tmat4x2< double, highp > highp_dmat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:640
-
detail::tmat3x3< double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:588
-
detail::tmat2x2< double, highp > highp_dmat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:466
-
detail::tmat2x2< double, mediump > mediump_dmat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:460
-
detail::tmat4x3< double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:657
-
detail::tmat2x4< double, highp > highp_dmat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:530
-
detail::tmat4x3< double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:651
-
detail::tmat3x2< float, mediump > mediump_mat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:171
-
detail::tmat2x2< double, lowp > lowp_dmat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:454
-
detail::tmat4x4< double, highp > highp_dmat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:686
-
highp_dmat2x3 dmat2x3
2 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:753
-
- - - - diff --git a/3party/glm/doc/api/a00123_source.html b/3party/glm/doc/api/a00123_source.html deleted file mode 100755 index e5da0b8dc0..0000000000 --- a/3party/glm/doc/api/a00123_source.html +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - -GLM: type_mat2x2.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_mat2x2.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_mat2x2
-
30 #define glm_core_type_mat2x2
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec2.hpp"
-
34 #include "type_mat.hpp"
-
35 #include <limits>
-
36 
-
37 namespace glm{
-
38 namespace detail
-
39 {
-
40  template <typename T, precision P>
-
41  struct tmat2x2
-
42  {
-
43  enum ctor{_null};
-
44  typedef T value_type;
-
45  typedef std::size_t size_type;
-
46  typedef tvec2<T, P> col_type;
-
47  typedef tvec2<T, P> row_type;
-
48  typedef tmat2x2<T, P> type;
-
49  typedef tmat2x2<T, P> transpose_type;
-
50 
-
51  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
52 
-
53  template <typename U, precision Q>
-
54  friend tvec2<U, Q> operator/(tmat2x2<U, Q> const & m, tvec2<U, Q> const & v);
-
55  template <typename U, precision Q>
-
56  friend tvec2<U, Q> operator/(tvec2<U, Q> const & v, tmat2x2<U, Q> const & m);
-
57 
-
58  private:
-
60  col_type value[2];
-
62 
-
63  public:
-
65  // Constructors
-
66  GLM_FUNC_DECL tmat2x2();
-
67  GLM_FUNC_DECL tmat2x2(tmat2x2<T, P> const & m);
-
68  template <precision Q>
-
69  GLM_FUNC_DECL tmat2x2(tmat2x2<T, Q> const & m);
-
70 
-
71  GLM_FUNC_DECL explicit tmat2x2(
-
72  ctor Null);
-
73  GLM_FUNC_DECL explicit tmat2x2(
-
74  T const & x);
-
75  GLM_FUNC_DECL explicit tmat2x2(
-
76  T const & x1, T const & y1,
-
77  T const & x2, T const & y2);
-
78  GLM_FUNC_DECL explicit tmat2x2(
-
79  col_type const & v1,
-
80  col_type const & v2);
-
81 
-
82 #if(GLM_HAS_INITIALIZER_LISTS)
-
83  template <typename U>
-
84  GLM_FUNC_DECL tmat2x2(std::initializer_list<U> m);
-
85 
-
86  GLM_FUNC_DECL tmat2x2(std::initializer_list<tvec2<T, P> > m);
-
87 #endif//GLM_HAS_INITIALIZER_LISTS
-
88 
-
90  // Conversions
-
91  template <typename U, typename V, typename M, typename N>
-
92  GLM_FUNC_DECL explicit tmat2x2(
-
93  U const & x1, V const & y1,
-
94  M const & x2, N const & y2);
-
95 
-
96  template <typename U, typename V>
-
97  GLM_FUNC_DECL explicit tmat2x2(
-
98  tvec2<U, P> const & v1,
-
99  tvec2<V, P> const & v2);
-
100 
-
102  // Matrix conversions
-
103  template <typename U, precision Q>
-
104  GLM_FUNC_DECL explicit tmat2x2(tmat2x2<U, Q> const & m);
-
105 
-
106  GLM_FUNC_DECL explicit tmat2x2(tmat3x3<T, P> const & x);
-
107  GLM_FUNC_DECL explicit tmat2x2(tmat4x4<T, P> const & x);
-
108  GLM_FUNC_DECL explicit tmat2x2(tmat2x3<T, P> const & x);
-
109  GLM_FUNC_DECL explicit tmat2x2(tmat3x2<T, P> const & x);
-
110  GLM_FUNC_DECL explicit tmat2x2(tmat2x4<T, P> const & x);
-
111  GLM_FUNC_DECL explicit tmat2x2(tmat4x2<T, P> const & x);
-
112  GLM_FUNC_DECL explicit tmat2x2(tmat3x4<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat2x2(tmat4x3<T, P> const & x);
-
114 
-
116  // Accesses
-
117 
-
118  GLM_FUNC_DECL col_type & operator[](length_t i);
-
119  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
120 
-
121  // Unary updatable operators
-
122  GLM_FUNC_DECL tmat2x2<T, P> & operator=(tmat2x2<T, P> const & m);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tmat2x2<T, P> & operator=(tmat2x2<U, P> const & m);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tmat2x2<T, P> & operator+=(U s);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat2x2<T, P> & operator+=(tmat2x2<U, P> const & m);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat2x2<T, P> & operator-=(U s);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tmat2x2<T, P> & operator-=(tmat2x2<U, P> const & m);
-
133  template <typename U>
-
134  GLM_FUNC_DECL tmat2x2<T, P> & operator*=(U s);
-
135  template <typename U>
-
136  GLM_FUNC_DECL tmat2x2<T, P> & operator*=(tmat2x2<U, P> const & m);
-
137  template <typename U>
-
138  GLM_FUNC_DECL tmat2x2<T, P> & operator/=(U s);
-
139  template <typename U>
-
140  GLM_FUNC_DECL tmat2x2<T, P> & operator/=(tmat2x2<U, P> const & m);
-
141 
-
143  // Increment and decrement operators
-
144 
-
145  GLM_FUNC_DECL tmat2x2<T, P> & operator++ ();
-
146  GLM_FUNC_DECL tmat2x2<T, P> & operator-- ();
-
147  GLM_FUNC_DECL tmat2x2<T, P> operator++(int);
-
148  GLM_FUNC_DECL tmat2x2<T, P> operator--(int);
-
149  };
-
150 
-
151  template <typename T, precision P>
-
152  GLM_FUNC_DECL tmat2x2<T, P> compute_inverse_mat2(tmat2x2<T, P> const & m);
-
153 
-
154  // Binary operators
-
155  template <typename T, precision P>
-
156  GLM_FUNC_DECL tmat2x2<T, P> operator+ (
-
157  tmat2x2<T, P> const & m,
-
158  T const & s);
-
159 
-
160  template <typename T, precision P>
-
161  GLM_FUNC_DECL tmat2x2<T, P> operator+ (
-
162  T const & s,
-
163  tmat2x2<T, P> const & m);
-
164 
-
165  template <typename T, precision P>
-
166  GLM_FUNC_DECL tmat2x2<T, P> operator+ (
-
167  tmat2x2<T, P> const & m1,
-
168  tmat2x2<T, P> const & m2);
-
169 
-
170  template <typename T, precision P>
-
171  GLM_FUNC_DECL tmat2x2<T, P> operator- (
-
172  tmat2x2<T, P> const & m,
-
173  T const & s);
-
174 
-
175  template <typename T, precision P>
-
176  GLM_FUNC_DECL tmat2x2<T, P> operator- (
-
177  T const & s,
-
178  tmat2x2<T, P> const & m);
-
179 
-
180  template <typename T, precision P>
-
181  GLM_FUNC_DECL tmat2x2<T, P> operator- (
-
182  tmat2x2<T, P> const & m1,
-
183  tmat2x2<T, P> const & m2);
-
184 
-
185  template <typename T, precision P>
-
186  GLM_FUNC_DECL tmat2x2<T, P> operator* (
-
187  tmat2x2<T, P> const & m,
-
188  T const & s);
-
189 
-
190  template <typename T, precision P>
-
191  GLM_FUNC_DECL tmat2x2<T, P> operator* (
-
192  T const & s,
-
193  tmat2x2<T, P> const & m);
-
194 
-
195  template <typename T, precision P>
-
196  GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator* (
-
197  tmat2x2<T, P> const & m,
-
198  typename tmat2x2<T, P>::row_type const & v);
-
199 
-
200  template <typename T, precision P>
-
201  GLM_FUNC_DECL typename tmat2x2<T, P>::row_type operator* (
-
202  typename tmat2x2<T, P>::col_type const & v,
-
203  tmat2x2<T, P> const & m);
-
204 
-
205  template <typename T, precision P>
-
206  GLM_FUNC_DECL tmat2x2<T, P> operator* (
-
207  tmat2x2<T, P> const & m1,
-
208  tmat2x2<T, P> const & m2);
-
209 
-
210  template <typename T, precision P>
-
211  GLM_FUNC_DECL tmat3x2<T, P> operator* (
-
212  tmat2x2<T, P> const & m1,
-
213  tmat3x2<T, P> const & m2);
-
214 
-
215  template <typename T, precision P>
-
216  GLM_FUNC_DECL tmat4x2<T, P> operator* (
-
217  tmat2x2<T, P> const & m1,
-
218  tmat4x2<T, P> const & m2);
-
219 
-
220  template <typename T, precision P>
-
221  GLM_FUNC_DECL tmat2x2<T, P> operator/ (
-
222  tmat2x2<T, P> const & m,
-
223  T const & s);
-
224 
-
225  template <typename T, precision P>
-
226  GLM_FUNC_DECL tmat2x2<T, P> operator/ (
-
227  T const & s,
-
228  tmat2x2<T, P> const & m);
-
229 
-
230  template <typename T, precision P>
-
231  GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator/ (
-
232  tmat2x2<T, P> const & m,
-
233  typename tmat2x2<T, P>::row_type const & v);
-
234 
-
235  template <typename T, precision P>
-
236  GLM_FUNC_DECL typename tmat2x2<T, P>::row_type operator/ (
-
237  typename tmat2x2<T, P>::col_type const & v,
-
238  tmat2x2<T, P> const & m);
-
239 
-
240  template <typename T, precision P>
-
241  GLM_FUNC_DECL tmat2x2<T, P> operator/ (
-
242  tmat2x2<T, P> const & m1,
-
243  tmat2x2<T, P> const & m2);
-
244 
-
245  // Unary constant operators
-
246  template <typename T, precision P>
-
247  GLM_FUNC_DECL tmat2x2<T, P> const operator-(
-
248  tmat2x2<T, P> const & m);
-
249 } //namespace detail
-
250 } //namespace glm
-
251 
-
252 #ifndef GLM_EXTERNAL_TEMPLATE
-
253 #include "type_mat2x2.inl"
-
254 #endif
-
255 
-
256 #endif //glm_core_type_mat2x2
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00124_source.html b/3party/glm/doc/api/a00124_source.html deleted file mode 100755 index 82a9e5743f..0000000000 --- a/3party/glm/doc/api/a00124_source.html +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - -GLM: type_mat2x3.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_mat2x3.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_mat2x3
-
30 #define glm_core_type_mat2x3
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec2.hpp"
-
34 #include "type_vec3.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat2x3
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
-
47  typedef tvec3<T, P> col_type;
-
48  typedef tvec2<T, P> row_type;
-
49  typedef tmat2x3<T, P> type;
-
50  typedef tmat3x2<T, P> transpose_type;
-
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[2];
-
57 
-
58  public:
-
59  // Constructors
-
60  GLM_FUNC_DECL tmat2x3();
-
61  GLM_FUNC_DECL tmat2x3(tmat2x3<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat2x3(tmat2x3<T, Q> const & m);
-
64 
-
65  GLM_FUNC_DECL explicit tmat2x3(
-
66  ctor);
-
67  GLM_FUNC_DECL explicit tmat2x3(
-
68  T const & s);
-
69  GLM_FUNC_DECL explicit tmat2x3(
-
70  T const & x0, T const & y0, T const & z0,
-
71  T const & x1, T const & y1, T const & z1);
-
72  GLM_FUNC_DECL explicit tmat2x3(
-
73  col_type const & v0,
-
74  col_type const & v1);
-
75 
-
76 #if(GLM_HAS_INITIALIZER_LISTS)
-
77  template <typename U>
-
78  GLM_FUNC_DECL tmat2x3(std::initializer_list<U> m);
-
79 
-
80  GLM_FUNC_DECL tmat2x3(std::initializer_list<tvec3<T, P> > m);
-
81 #endif//GLM_HAS_INITIALIZER_LISTS
-
82 
-
84  // Conversions
-
85  template <typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2>
-
86  GLM_FUNC_DECL explicit tmat2x3(
-
87  X1 const & x1, Y1 const & y1, Z1 const & z1,
-
88  X2 const & x2, Y2 const & y2, Z2 const & z2);
-
89 
-
90  template <typename U, typename V>
-
91  GLM_FUNC_DECL explicit tmat2x3(
-
92  tvec3<U, P> const & v1,
-
93  tvec3<V, P> const & v2);
-
94 
-
96  // Matrix conversion
-
97  template <typename U, precision Q>
-
98  GLM_FUNC_DECL explicit tmat2x3(tmat2x3<U, Q> const & m);
-
99 
-
100  GLM_FUNC_DECL explicit tmat2x3(tmat2x2<T, P> const & x);
-
101  GLM_FUNC_DECL explicit tmat2x3(tmat3x3<T, P> const & x);
-
102  GLM_FUNC_DECL explicit tmat2x3(tmat4x4<T, P> const & x);
-
103  GLM_FUNC_DECL explicit tmat2x3(tmat2x4<T, P> const & x);
-
104  GLM_FUNC_DECL explicit tmat2x3(tmat3x2<T, P> const & x);
-
105  GLM_FUNC_DECL explicit tmat2x3(tmat3x4<T, P> const & x);
-
106  GLM_FUNC_DECL explicit tmat2x3(tmat4x2<T, P> const & x);
-
107  GLM_FUNC_DECL explicit tmat2x3(tmat4x3<T, P> const & x);
-
108 
-
109  // Accesses
-
110  GLM_FUNC_DECL col_type & operator[](length_t i);
-
111  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
112 
-
113  // Unary updatable operators
-
114  GLM_FUNC_DECL tmat2x3<T, P> & operator= (tmat2x3<T, P> const & m);
-
115  template <typename U>
-
116  GLM_FUNC_DECL tmat2x3<T, P> & operator= (tmat2x3<U, P> const & m);
-
117  template <typename U>
-
118  GLM_FUNC_DECL tmat2x3<T, P> & operator+= (U s);
-
119  template <typename U>
-
120  GLM_FUNC_DECL tmat2x3<T, P> & operator+= (tmat2x3<U, P> const & m);
-
121  template <typename U>
-
122  GLM_FUNC_DECL tmat2x3<T, P> & operator-= (U s);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tmat2x3<T, P> & operator-= (tmat2x3<U, P> const & m);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tmat2x3<T, P> & operator*= (U s);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat2x3<T, P> & operator/= (U s);
-
129 
-
131  // Increment and decrement operators
-
132 
-
133  GLM_FUNC_DECL tmat2x3<T, P> & operator++ ();
-
134  GLM_FUNC_DECL tmat2x3<T, P> & operator-- ();
-
135  GLM_FUNC_DECL tmat2x3<T, P> operator++(int);
-
136  GLM_FUNC_DECL tmat2x3<T, P> operator--(int);
-
137  };
-
138 
-
139  // Binary operators
-
140 
-
141  template <typename T, precision P>
-
142  GLM_FUNC_DECL tmat2x3<T, P> operator+ (
-
143  tmat2x3<T, P> const & m,
-
144  T const & s);
-
145 
-
146  template <typename T, precision P>
-
147  tmat2x3<T, P> operator+ (
-
148  tmat2x3<T, P> const & m1,
-
149  tmat2x3<T, P> const & m2);
-
150 
-
151  template <typename T, precision P>
-
152  GLM_FUNC_DECL tmat2x3<T, P> operator- (
-
153  tmat2x3<T, P> const & m,
-
154  T const & s);
-
155 
-
156  template <typename T, precision P>
-
157  GLM_FUNC_DECL tmat2x3<T, P> operator- (
-
158  tmat2x3<T, P> const & m1,
-
159  tmat2x3<T, P> const & m2);
-
160 
-
161  template <typename T, precision P>
-
162  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
163  tmat2x3<T, P> const & m,
-
164  T const & s);
-
165 
-
166  template <typename T, precision P>
-
167  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
168  T const & s,
-
169  tmat2x3<T, P> const & m);
-
170 
-
171  template <typename T, precision P>
-
172  GLM_FUNC_DECL typename tmat2x3<T, P>::col_type operator* (
-
173  tmat2x3<T, P> const & m,
-
174  typename tmat2x3<T, P>::row_type const & v);
-
175 
-
176  template <typename T, precision P>
-
177  GLM_FUNC_DECL typename tmat2x3<T, P>::row_type operator* (
-
178  typename tmat2x3<T, P>::col_type const & v,
-
179  tmat2x3<T, P> const & m);
-
180 
-
181  template <typename T, precision P>
-
182  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
183  tmat2x3<T, P> const & m1,
-
184  tmat2x2<T, P> const & m2);
-
185 
-
186  template <typename T, precision P>
-
187  GLM_FUNC_DECL tmat3x3<T, P> operator* (
-
188  tmat2x3<T, P> const & m1,
-
189  tmat3x2<T, P> const & m2);
-
190 
-
191  template <typename T, precision P>
-
192  GLM_FUNC_DECL tmat4x3<T, P> operator* (
-
193  tmat2x3<T, P> const & m1,
-
194  tmat4x2<T, P> const & m2);
-
195 
-
196  template <typename T, precision P>
-
197  GLM_FUNC_DECL tmat2x3<T, P> operator/ (
-
198  tmat2x3<T, P> const & m,
-
199  T const & s);
-
200 
-
201  template <typename T, precision P>
-
202  GLM_FUNC_DECL tmat2x3<T, P> operator/ (
-
203  T const & s,
-
204  tmat2x3<T, P> const & m);
-
205 
-
206  // Unary constant operators
-
207  template <typename T, precision P>
-
208  GLM_FUNC_DECL tmat2x3<T, P> const operator- (
-
209  tmat2x3<T, P> const & m);
-
210 
-
211 }//namespace detail
-
212 }//namespace glm
-
213 
-
214 #ifndef GLM_EXTERNAL_TEMPLATE
-
215 #include "type_mat2x3.inl"
-
216 #endif
-
217 
-
218 #endif //glm_core_type_mat2x3
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00125_source.html b/3party/glm/doc/api/a00125_source.html deleted file mode 100755 index 20cd0f1879..0000000000 --- a/3party/glm/doc/api/a00125_source.html +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - -GLM: type_mat2x4.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_mat2x4.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_mat2x4
-
30 #define glm_core_type_mat2x4
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec2.hpp"
-
34 #include "type_vec4.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat2x4
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
-
47  typedef tvec4<T, P> col_type;
-
48  typedef tvec2<T, P> row_type;
-
49  typedef tmat2x4<T, P> type;
-
50  typedef tmat4x2<T, P> transpose_type;
-
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[2];
-
57 
-
58  public:
-
59  // Constructors
-
60  GLM_FUNC_DECL tmat2x4();
-
61  GLM_FUNC_DECL tmat2x4(tmat2x4<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat2x4(tmat2x4<T, Q> const & m);
-
64 
-
65  GLM_FUNC_DECL explicit tmat2x4(
-
66  ctor);
-
67  GLM_FUNC_DECL explicit tmat2x4(
-
68  T const & s);
-
69  GLM_FUNC_DECL explicit tmat2x4(
-
70  T const & x0, T const & y0, T const & z0, T const & w0,
-
71  T const & x1, T const & y1, T const & z1, T const & w1);
-
72  GLM_FUNC_DECL explicit tmat2x4(
-
73  col_type const & v0,
-
74  col_type const & v1);
-
75 
-
76 #if(GLM_HAS_INITIALIZER_LISTS)
-
77  template <typename U>
-
78  GLM_FUNC_DECL tmat2x4(std::initializer_list<U> m);
-
79 
-
80  GLM_FUNC_DECL tmat2x4(std::initializer_list<tvec4<T, P> > m);
-
81 #endif//GLM_HAS_INITIALIZER_LISTS
-
82 
-
84  // Conversions
-
85  template <
-
86  typename X1, typename Y1, typename Z1, typename W1,
-
87  typename X2, typename Y2, typename Z2, typename W2>
-
88  GLM_FUNC_DECL explicit tmat2x4(
-
89  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
-
90  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2);
-
91 
-
92  template <typename U, typename V>
-
93  GLM_FUNC_DECL explicit tmat2x4(
-
94  tvec4<U, P> const & v1,
-
95  tvec4<V, P> const & v2);
-
96 
-
98  // Matrix conversions
-
99  template <typename U, precision Q>
-
100  GLM_FUNC_DECL explicit tmat2x4(tmat2x4<U, Q> const & m);
-
101 
-
102  GLM_FUNC_DECL explicit tmat2x4(tmat2x2<T, P> const & x);
-
103  GLM_FUNC_DECL explicit tmat2x4(tmat3x3<T, P> const & x);
-
104  GLM_FUNC_DECL explicit tmat2x4(tmat4x4<T, P> const & x);
-
105  GLM_FUNC_DECL explicit tmat2x4(tmat2x3<T, P> const & x);
-
106  GLM_FUNC_DECL explicit tmat2x4(tmat3x2<T, P> const & x);
-
107  GLM_FUNC_DECL explicit tmat2x4(tmat3x4<T, P> const & x);
-
108  GLM_FUNC_DECL explicit tmat2x4(tmat4x2<T, P> const & x);
-
109  GLM_FUNC_DECL explicit tmat2x4(tmat4x3<T, P> const & x);
-
110 
-
111  // Accesses
-
112  GLM_FUNC_DECL col_type & operator[](length_t i);
-
113  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
114 
-
115  // Unary updatable operators
-
116  GLM_FUNC_DECL tmat2x4<T, P>& operator= (tmat2x4<T, P> const & m);
-
117  template <typename U>
-
118  GLM_FUNC_DECL tmat2x4<T, P>& operator= (tmat2x4<U, P> const & m);
-
119  template <typename U>
-
120  GLM_FUNC_DECL tmat2x4<T, P>& operator+= (U s);
-
121  template <typename U>
-
122  GLM_FUNC_DECL tmat2x4<T, P>& operator+= (tmat2x4<U, P> const & m);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tmat2x4<T, P>& operator-= (U s);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tmat2x4<T, P>& operator-= (tmat2x4<U, P> const & m);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat2x4<T, P>& operator*= (U s);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat2x4<T, P>& operator/= (U s);
-
131 
-
133  // Increment and decrement operators
-
134 
-
135  GLM_FUNC_DECL tmat2x4<T, P> & operator++ ();
-
136  GLM_FUNC_DECL tmat2x4<T, P> & operator-- ();
-
137  GLM_FUNC_DECL tmat2x4<T, P> operator++(int);
-
138  GLM_FUNC_DECL tmat2x4<T, P> operator--(int);
-
139  };
-
140 
-
141  // Binary operators
-
142 
-
143  template <typename T, precision P>
-
144  GLM_FUNC_DECL tmat2x4<T, P> operator+ (
-
145  tmat2x4<T, P> const & m,
-
146  T const & s);
-
147 
-
148  template <typename T, precision P>
-
149  GLM_FUNC_DECL tmat2x4<T, P> operator+ (
-
150  tmat2x4<T, P> const & m1,
-
151  tmat2x4<T, P> const & m2);
-
152 
-
153  template <typename T, precision P>
-
154  GLM_FUNC_DECL tmat2x4<T, P> operator- (
-
155  tmat2x4<T, P> const & m,
-
156  T const & s);
-
157 
-
158  template <typename T, precision P>
-
159  GLM_FUNC_DECL tmat2x4<T, P> operator- (
-
160  tmat2x4<T, P> const & m1,
-
161  tmat2x4<T, P> const & m2);
-
162 
-
163  template <typename T, precision P>
-
164  GLM_FUNC_DECL tmat2x4<T, P> operator* (
-
165  tmat2x4<T, P> const & m,
-
166  T const & s);
-
167 
-
168  template <typename T, precision P>
-
169  GLM_FUNC_DECL tmat2x4<T, P> operator* (
-
170  T const & s,
-
171  tmat2x4<T, P> const & m);
-
172 
-
173  template <typename T, precision P>
-
174  GLM_FUNC_DECL typename tmat2x4<T, P>::col_type operator* (
-
175  tmat2x4<T, P> const & m,
-
176  typename tmat2x4<T, P>::row_type const & v);
-
177 
-
178  template <typename T, precision P>
-
179  GLM_FUNC_DECL typename tmat2x4<T, P>::row_type operator* (
-
180  typename tmat2x4<T, P>::col_type const & v,
-
181  tmat2x4<T, P> const & m);
-
182 
-
183  template <typename T, precision P>
-
184  GLM_FUNC_DECL tmat4x4<T, P> operator* (
-
185  tmat2x4<T, P> const & m1,
-
186  tmat4x2<T, P> const & m2);
-
187 
-
188  template <typename T, precision P>
-
189  GLM_FUNC_DECL tmat2x4<T, P> operator* (
-
190  tmat2x4<T, P> const & m1,
-
191  tmat2x2<T, P> const & m2);
-
192 
-
193  template <typename T, precision P>
-
194  GLM_FUNC_DECL tmat3x4<T, P> operator* (
-
195  tmat2x4<T, P> const & m1,
-
196  tmat3x2<T, P> const & m2);
-
197 
-
198  template <typename T, precision P>
-
199  GLM_FUNC_DECL tmat2x4<T, P> operator/ (
-
200  tmat2x4<T, P> const & m,
-
201  T const & s);
-
202 
-
203  template <typename T, precision P>
-
204  GLM_FUNC_DECL tmat2x4<T, P> operator/ (
-
205  T const & s,
-
206  tmat2x4<T, P> const & m);
-
207 
-
208  // Unary constant operators
-
209  template <typename T, precision P>
-
210  GLM_FUNC_DECL tmat2x4<T, P> const operator- (
-
211  tmat2x4<T, P> const & m);
-
212 
-
213 }//namespace detail
-
214 }//namespace glm
-
215 
-
216 #ifndef GLM_EXTERNAL_TEMPLATE
-
217 #include "type_mat2x4.inl"
-
218 #endif
-
219 
-
220 #endif //glm_core_type_mat2x4
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00126_source.html b/3party/glm/doc/api/a00126_source.html deleted file mode 100755 index 429e23a302..0000000000 --- a/3party/glm/doc/api/a00126_source.html +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - -GLM: type_mat3x2.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_mat3x2.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_mat3x2
-
30 #define glm_core_type_mat3x2
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec2.hpp"
-
34 #include "type_vec3.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat3x2
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
-
47  typedef tvec2<T, P> col_type;
-
48  typedef tvec3<T, P> row_type;
-
49  typedef tmat3x2<T, P> type;
-
50  typedef tmat2x3<T, P> transpose_type;
-
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[3];
-
57 
-
58  public:
-
59  // Constructors
-
60  GLM_FUNC_DECL tmat3x2();
-
61  GLM_FUNC_DECL tmat3x2(tmat3x2<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat3x2(tmat3x2<T, Q> const & m);
-
64 
-
65  GLM_FUNC_DECL explicit tmat3x2(
-
66  ctor);
-
67  GLM_FUNC_DECL explicit tmat3x2(
-
68  T const & s);
-
69  GLM_FUNC_DECL explicit tmat3x2(
-
70  T const & x0, T const & y0,
-
71  T const & x1, T const & y1,
-
72  T const & x2, T const & y2);
-
73  GLM_FUNC_DECL explicit tmat3x2(
-
74  col_type const & v0,
-
75  col_type const & v1,
-
76  col_type const & v2);
-
77 
-
78 #if(GLM_HAS_INITIALIZER_LISTS)
-
79  template <typename U>
-
80  GLM_FUNC_DECL tmat3x2(std::initializer_list<U> l);
-
81 
-
82  GLM_FUNC_DECL tmat3x2(std::initializer_list<tvec2<T, P> > l);
-
83 #endif//GLM_HAS_INITIALIZER_LISTS
-
84 
-
86  // Conversions
-
87  template<
-
88  typename X1, typename Y1,
-
89  typename X2, typename Y2,
-
90  typename X3, typename Y3>
-
91  GLM_FUNC_DECL explicit tmat3x2(
-
92  X1 const & x1, Y1 const & y1,
-
93  X2 const & x2, Y2 const & y2,
-
94  X3 const & x3, Y3 const & y3);
-
95 
-
96  template <typename V1, typename V2, typename V3>
-
97  GLM_FUNC_DECL explicit tmat3x2(
-
98  tvec2<V1, P> const & v1,
-
99  tvec2<V2, P> const & v2,
-
100  tvec2<V3, P> const & v3);
-
101 
-
102  // Matrix conversions
-
103  template <typename U, precision Q>
-
104  GLM_FUNC_DECL explicit tmat3x2(tmat3x2<U, Q> const & m);
-
105 
-
106  GLM_FUNC_DECL explicit tmat3x2(tmat2x2<T, P> const & x);
-
107  GLM_FUNC_DECL explicit tmat3x2(tmat3x3<T, P> const & x);
-
108  GLM_FUNC_DECL explicit tmat3x2(tmat4x4<T, P> const & x);
-
109  GLM_FUNC_DECL explicit tmat3x2(tmat2x3<T, P> const & x);
-
110  GLM_FUNC_DECL explicit tmat3x2(tmat2x4<T, P> const & x);
-
111  GLM_FUNC_DECL explicit tmat3x2(tmat3x4<T, P> const & x);
-
112  GLM_FUNC_DECL explicit tmat3x2(tmat4x2<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat3x2(tmat4x3<T, P> const & x);
-
114 
-
115  // Accesses
-
116  GLM_FUNC_DECL col_type & operator[](length_t i);
-
117  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
118 
-
119  // Unary updatable operators
-
120  GLM_FUNC_DECL tmat3x2<T, P> & operator= (tmat3x2<T, P> const & m);
-
121  template <typename U>
-
122  GLM_FUNC_DECL tmat3x2<T, P> & operator= (tmat3x2<U, P> const & m);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tmat3x2<T, P> & operator+= (U s);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tmat3x2<T, P> & operator+= (tmat3x2<U, P> const & m);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat3x2<T, P> & operator-= (U s);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat3x2<T, P> & operator-= (tmat3x2<U, P> const & m);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tmat3x2<T, P> & operator*= (U s);
-
133  template <typename U>
-
134  GLM_FUNC_DECL tmat3x2<T, P> & operator/= (U s);
-
135 
-
137  // Increment and decrement operators
-
138 
-
139  GLM_FUNC_DECL tmat3x2<T, P> & operator++ ();
-
140  GLM_FUNC_DECL tmat3x2<T, P> & operator-- ();
-
141  GLM_FUNC_DECL tmat3x2<T, P> operator++(int);
-
142  GLM_FUNC_DECL tmat3x2<T, P> operator--(int);
-
143  };
-
144 
-
145  // Binary operators
-
146  template <typename T, precision P>
-
147  GLM_FUNC_DECL tmat3x2<T, P> operator+ (
-
148  tmat3x2<T, P> const & m,
-
149  T const & s);
-
150 
-
151  template <typename T, precision P>
-
152  GLM_FUNC_DECL tmat3x2<T, P> operator+ (
-
153  tmat3x2<T, P> const & m1,
-
154  tmat3x2<T, P> const & m2);
-
155 
-
156  template <typename T, precision P>
-
157  GLM_FUNC_DECL tmat3x2<T, P> operator- (
-
158  tmat3x2<T, P> const & m,
-
159  T const & s);
-
160 
-
161  template <typename T, precision P>
-
162  GLM_FUNC_DECL tmat3x2<T, P> operator- (
-
163  tmat3x2<T, P> const & m1,
-
164  tmat3x2<T, P> const & m2);
-
165 
-
166  template <typename T, precision P>
-
167  GLM_FUNC_DECL tmat3x2<T, P> operator* (
-
168  tmat3x2<T, P> const & m,
-
169  T const & s);
-
170 
-
171  template <typename T, precision P>
-
172  GLM_FUNC_DECL tmat3x2<T, P> operator* (
-
173  T const & s,
-
174  tmat3x2<T, P> const & m);
-
175 
-
176  template <typename T, precision P>
-
177  GLM_FUNC_DECL typename tmat3x2<T, P>::col_type operator* (
-
178  tmat3x2<T, P> const & m,
-
179  typename tmat3x2<T, P>::row_type const & v);
-
180 
-
181  template <typename T, precision P>
-
182  GLM_FUNC_DECL typename tmat3x2<T, P>::row_type operator* (
-
183  typename tmat3x2<T, P>::col_type const & v,
-
184  tmat3x2<T, P> const & m);
-
185 
-
186  template <typename T, precision P>
-
187  GLM_FUNC_DECL tmat2x2<T, P> operator* (
-
188  tmat3x2<T, P> const & m1,
-
189  tmat2x3<T, P> const & m2);
-
190 
-
191  template <typename T, precision P>
-
192  GLM_FUNC_DECL tmat3x2<T, P> operator* (
-
193  tmat3x2<T, P> const & m1,
-
194  tmat3x3<T, P> const & m2);
-
195 
-
196  template <typename T, precision P>
-
197  GLM_FUNC_DECL tmat4x2<T, P> operator* (
-
198  tmat3x2<T, P> const & m1,
-
199  tmat4x3<T, P> const & m2);
-
200 
-
201  template <typename T, precision P>
-
202  GLM_FUNC_DECL tmat3x2<T, P> operator/ (
-
203  tmat3x2<T, P> const & m,
-
204  T const & s);
-
205 
-
206  template <typename T, precision P>
-
207  GLM_FUNC_DECL tmat3x2<T, P> operator/ (
-
208  T const & s,
-
209  tmat3x2<T, P> const & m);
-
210 
-
211  // Unary constant operators
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL tmat3x2<T, P> const operator-(
-
214  tmat3x2<T, P> const & m);
-
215 
-
216 }//namespace detail
-
217 }//namespace glm
-
218 
-
219 #ifndef GLM_EXTERNAL_TEMPLATE
-
220 #include "type_mat3x2.inl"
-
221 #endif
-
222 
-
223 #endif //glm_core_type_mat3x2
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00127_source.html b/3party/glm/doc/api/a00127_source.html deleted file mode 100755 index d999393616..0000000000 --- a/3party/glm/doc/api/a00127_source.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - -GLM: type_mat3x3.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_mat3x3.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_mat3x3
-
30 #define glm_core_type_mat3x3
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec3.hpp"
-
34 #include "type_mat.hpp"
-
35 #include <limits>
-
36 
-
37 namespace glm{
-
38 namespace detail
-
39 {
-
40  template <typename T, precision P>
-
41  struct tmat3x3
-
42  {
-
43  enum ctor{_null};
-
44  typedef T value_type;
-
45  typedef std::size_t size_type;
-
46  typedef tvec3<T, P> col_type;
-
47  typedef tvec3<T, P> row_type;
-
48  typedef tmat3x3<T, P> type;
-
49  typedef tmat3x3<T, P> transpose_type;
-
50 
-
51  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
52 
-
53  template <typename U, precision Q>
-
54  friend tvec3<U, Q> operator/(tmat3x3<U, Q> const & m, tvec3<U, Q> const & v);
-
55  template <typename U, precision Q>
-
56  friend tvec3<U, Q> operator/(tvec3<U, Q> const & v, tmat3x3<U, Q> const & m);
-
57 
-
58  private:
-
60  col_type value[3];
-
62 
-
63  public:
-
64  // Constructors
-
65  GLM_FUNC_DECL tmat3x3();
-
66  GLM_FUNC_DECL tmat3x3(tmat3x3<T, P> const & m);
-
67  template <precision Q>
-
68  GLM_FUNC_DECL tmat3x3(tmat3x3<T, Q> const & m);
-
69 
-
70  GLM_FUNC_DECL explicit tmat3x3(
-
71  ctor Null);
-
72  GLM_FUNC_DECL explicit tmat3x3(
-
73  T const & s);
-
74  GLM_FUNC_DECL explicit tmat3x3(
-
75  T const & x0, T const & y0, T const & z0,
-
76  T const & x1, T const & y1, T const & z1,
-
77  T const & x2, T const & y2, T const & z2);
-
78  GLM_FUNC_DECL explicit tmat3x3(
-
79  col_type const & v0,
-
80  col_type const & v1,
-
81  col_type const & v2);
-
82 
-
83 #if(GLM_HAS_INITIALIZER_LISTS)
-
84  template <typename U>
-
85  GLM_FUNC_DECL tmat3x3(std::initializer_list<U> m);
-
86 
-
87  GLM_FUNC_DECL tmat3x3(std::initializer_list<tvec3<T, P> > m);
-
88 #endif//GLM_HAS_INITIALIZER_LISTS
-
89 
-
91  // Conversions
-
92  template<
-
93  typename X1, typename Y1, typename Z1,
-
94  typename X2, typename Y2, typename Z2,
-
95  typename X3, typename Y3, typename Z3>
-
96  GLM_FUNC_DECL explicit tmat3x3(
-
97  X1 const & x1, Y1 const & y1, Z1 const & z1,
-
98  X2 const & x2, Y2 const & y2, Z2 const & z2,
-
99  X3 const & x3, Y3 const & y3, Z3 const & z3);
-
100 
-
101  template <typename V1, typename V2, typename V3>
-
102  GLM_FUNC_DECL explicit tmat3x3(
-
103  tvec3<V1, P> const & v1,
-
104  tvec3<V2, P> const & v2,
-
105  tvec3<V3, P> const & v3);
-
106 
-
107  // Matrix conversions
-
108  template <typename U, precision Q>
-
109  GLM_FUNC_DECL explicit tmat3x3(tmat3x3<U, Q> const & m);
-
110 
-
111  GLM_FUNC_DECL explicit tmat3x3(tmat2x2<T, P> const & x);
-
112  GLM_FUNC_DECL explicit tmat3x3(tmat4x4<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat3x3(tmat2x3<T, P> const & x);
-
114  GLM_FUNC_DECL explicit tmat3x3(tmat3x2<T, P> const & x);
-
115  GLM_FUNC_DECL explicit tmat3x3(tmat2x4<T, P> const & x);
-
116  GLM_FUNC_DECL explicit tmat3x3(tmat4x2<T, P> const & x);
-
117  GLM_FUNC_DECL explicit tmat3x3(tmat3x4<T, P> const & x);
-
118  GLM_FUNC_DECL explicit tmat3x3(tmat4x3<T, P> const & x);
-
119 
-
120  // Accesses
-
121  GLM_FUNC_DECL col_type & operator[](length_t i);
-
122  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
123 
-
124  // Unary updatable operators
-
125  GLM_FUNC_DECL tmat3x3<T, P>& operator= (tmat3x3<T, P> const & m);
-
126  template <typename U>
-
127  GLM_FUNC_DECL tmat3x3<T, P>& operator= (tmat3x3<U, P> const & m);
-
128  template <typename U>
-
129  GLM_FUNC_DECL tmat3x3<T, P>& operator+= (U s);
-
130  template <typename U>
-
131  GLM_FUNC_DECL tmat3x3<T, P>& operator+= (tmat3x3<U, P> const & m);
-
132  template <typename U>
-
133  GLM_FUNC_DECL tmat3x3<T, P>& operator-= (U s);
-
134  template <typename U>
-
135  GLM_FUNC_DECL tmat3x3<T, P>& operator-= (tmat3x3<U, P> const & m);
-
136  template <typename U>
-
137  GLM_FUNC_DECL tmat3x3<T, P>& operator*= (U s);
-
138  template <typename U>
-
139  GLM_FUNC_DECL tmat3x3<T, P>& operator*= (tmat3x3<U, P> const & m);
-
140  template <typename U>
-
141  GLM_FUNC_DECL tmat3x3<T, P>& operator/= (U s);
-
142  template <typename U>
-
143  GLM_FUNC_DECL tmat3x3<T, P>& operator/= (tmat3x3<U, P> const & m);
-
144 
-
146  // Increment and decrement operators
-
147 
-
148  GLM_FUNC_DECL tmat3x3<T, P> & operator++ ();
-
149  GLM_FUNC_DECL tmat3x3<T, P> & operator-- ();
-
150  GLM_FUNC_DECL tmat3x3<T, P> operator++(int);
-
151  GLM_FUNC_DECL tmat3x3<T, P> operator--(int);
-
152  };
-
153 
-
154  template <typename T, precision P>
-
155  GLM_FUNC_DECL tmat3x3<T, P> compute_inverse_mat3(tmat3x3<T, P> const & m);
-
156 
-
157  // Binary operators
-
158  template <typename T, precision P>
-
159  GLM_FUNC_DECL tmat3x3<T, P> operator+ (
-
160  tmat3x3<T, P> const & m,
-
161  T const & s);
-
162 
-
163  template <typename T, precision P>
-
164  GLM_FUNC_DECL tmat3x3<T, P> operator+ (
-
165  T const & s,
-
166  tmat3x3<T, P> const & m);
-
167 
-
168  template <typename T, precision P>
-
169  GLM_FUNC_DECL tmat3x3<T, P> operator+ (
-
170  tmat3x3<T, P> const & m1,
-
171  tmat3x3<T, P> const & m2);
-
172 
-
173  template <typename T, precision P>
-
174  GLM_FUNC_DECL tmat3x3<T, P> operator- (
-
175  tmat3x3<T, P> const & m,
-
176  T const & s);
-
177 
-
178  template <typename T, precision P>
-
179  GLM_FUNC_DECL tmat3x3<T, P> operator- (
-
180  T const & s,
-
181  tmat3x3<T, P> const & m);
-
182 
-
183  template <typename T, precision P>
-
184  GLM_FUNC_DECL tmat3x3<T, P> operator- (
-
185  tmat3x3<T, P> const & m1,
-
186  tmat3x3<T, P> const & m2);
-
187 
-
188  template <typename T, precision P>
-
189  GLM_FUNC_DECL tmat3x3<T, P> operator* (
-
190  tmat3x3<T, P> const & m,
-
191  T const & s);
-
192 
-
193  template <typename T, precision P>
-
194  GLM_FUNC_DECL tmat3x3<T, P> operator* (
-
195  T const & s,
-
196  tmat3x3<T, P> const & m);
-
197 
-
198  template <typename T, precision P>
-
199  GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator* (
-
200  tmat3x3<T, P> const & m,
-
201  typename tmat3x3<T, P>::row_type const & v);
-
202 
-
203  template <typename T, precision P>
-
204  GLM_FUNC_DECL typename tmat3x3<T, P>::row_type operator* (
-
205  typename tmat3x3<T, P>::col_type const & v,
-
206  tmat3x3<T, P> const & m);
-
207 
-
208  template <typename T, precision P>
-
209  GLM_FUNC_DECL tmat3x3<T, P> operator* (
-
210  tmat3x3<T, P> const & m1,
-
211  tmat3x3<T, P> const & m2);
-
212 
-
213  template <typename T, precision P>
-
214  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
215  tmat3x3<T, P> const & m1,
-
216  tmat2x3<T, P> const & m2);
-
217 
-
218  template <typename T, precision P>
-
219  GLM_FUNC_DECL tmat4x3<T, P> operator* (
-
220  tmat3x3<T, P> const & m1,
-
221  tmat4x3<T, P> const & m2);
-
222 
-
223  template <typename T, precision P>
-
224  GLM_FUNC_DECL tmat3x3<T, P> operator/ (
-
225  tmat3x3<T, P> const & m,
-
226  T const & s);
-
227 
-
228  template <typename T, precision P>
-
229  GLM_FUNC_DECL tmat3x3<T, P> operator/ (
-
230  T const & s,
-
231  tmat3x3<T, P> const & m);
-
232 
-
233  template <typename T, precision P>
-
234  GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator/ (
-
235  tmat3x3<T, P> const & m,
-
236  typename tmat3x3<T, P>::row_type const & v);
-
237 
-
238  template <typename T, precision P>
-
239  GLM_FUNC_DECL typename tmat3x3<T, P>::row_type operator/ (
-
240  typename tmat3x3<T, P>::col_type const & v,
-
241  tmat3x3<T, P> const & m);
-
242 
-
243  template <typename T, precision P>
-
244  GLM_FUNC_DECL tmat3x3<T, P> operator/ (
-
245  tmat3x3<T, P> const & m1,
-
246  tmat3x3<T, P> const & m2);
-
247 
-
248  // Unary constant operators
-
249  template <typename T, precision P>
-
250  GLM_FUNC_DECL tmat3x3<T, P> const operator-(
-
251  tmat3x3<T, P> const & m);
-
252 
-
253 }//namespace detail
-
254 }//namespace glm
-
255 
-
256 #ifndef GLM_EXTERNAL_TEMPLATE
-
257 #include "type_mat3x3.inl"
-
258 #endif
-
259 
-
260 #endif //glm_core_type_mat3x3
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00128_source.html b/3party/glm/doc/api/a00128_source.html deleted file mode 100755 index 9fa191d493..0000000000 --- a/3party/glm/doc/api/a00128_source.html +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - -GLM: type_mat3x4.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_mat3x4.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_mat3x4
-
30 #define glm_core_type_mat3x4
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec3.hpp"
-
34 #include "type_vec4.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat3x4
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
-
47  typedef tvec4<T, P> col_type;
-
48  typedef tvec3<T, P> row_type;
-
49  typedef tmat3x4<T, P> type;
-
50  typedef tmat4x3<T, P> transpose_type;
-
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[3];
-
57 
-
58  public:
-
59  // Constructors
-
60  GLM_FUNC_DECL tmat3x4();
-
61  GLM_FUNC_DECL tmat3x4(tmat3x4<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat3x4(tmat3x4<T, Q> const & m);
-
64 
-
65  GLM_FUNC_DECL explicit tmat3x4(
-
66  ctor Null);
-
67  GLM_FUNC_DECL explicit tmat3x4(
-
68  T const & s);
-
69  GLM_FUNC_DECL explicit tmat3x4(
-
70  T const & x0, T const & y0, T const & z0, T const & w0,
-
71  T const & x1, T const & y1, T const & z1, T const & w1,
-
72  T const & x2, T const & y2, T const & z2, T const & w2);
-
73  GLM_FUNC_DECL explicit tmat3x4(
-
74  col_type const & v0,
-
75  col_type const & v1,
-
76  col_type const & v2);
-
77 
-
78 #if(GLM_HAS_INITIALIZER_LISTS)
-
79  template <typename U>
-
80  GLM_FUNC_DECL tmat3x4(std::initializer_list<U> m);
-
81 
-
82  GLM_FUNC_DECL tmat3x4(std::initializer_list<tvec4<T, P> > m);
-
83 #endif//GLM_HAS_INITIALIZER_LISTS
-
84 
-
86  // Conversions
-
87  template<
-
88  typename X1, typename Y1, typename Z1, typename W1,
-
89  typename X2, typename Y2, typename Z2, typename W2,
-
90  typename X3, typename Y3, typename Z3, typename W3>
-
91  GLM_FUNC_DECL explicit tmat3x4(
-
92  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
-
93  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
-
94  X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3);
-
95 
-
96  template <typename V1, typename V2, typename V3>
-
97  GLM_FUNC_DECL explicit tmat3x4(
-
98  tvec4<V1, P> const & v1,
-
99  tvec4<V2, P> const & v2,
-
100  tvec4<V3, P> const & v3);
-
101 
-
102  // Matrix conversion
-
103  template <typename U, precision Q>
-
104  GLM_FUNC_DECL explicit tmat3x4(tmat3x4<U, Q> const & m);
-
105 
-
106  GLM_FUNC_DECL explicit tmat3x4(tmat2x2<T, P> const & x);
-
107  GLM_FUNC_DECL explicit tmat3x4(tmat3x3<T, P> const & x);
-
108  GLM_FUNC_DECL explicit tmat3x4(tmat4x4<T, P> const & x);
-
109  GLM_FUNC_DECL explicit tmat3x4(tmat2x3<T, P> const & x);
-
110  GLM_FUNC_DECL explicit tmat3x4(tmat3x2<T, P> const & x);
-
111  GLM_FUNC_DECL explicit tmat3x4(tmat2x4<T, P> const & x);
-
112  GLM_FUNC_DECL explicit tmat3x4(tmat4x2<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat3x4(tmat4x3<T, P> const & x);
-
114 
-
115  // Accesses
-
116  GLM_FUNC_DECL col_type & operator[](length_t i);
-
117  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
118 
-
119  // Unary updatable operators
-
120  GLM_FUNC_DECL tmat3x4<T, P> & operator= (tmat3x4<T, P> const & m);
-
121  template <typename U>
-
122  GLM_FUNC_DECL tmat3x4<T, P> & operator= (tmat3x4<U, P> const & m);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tmat3x4<T, P> & operator+= (U s);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tmat3x4<T, P> & operator+= (tmat3x4<U, P> const & m);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat3x4<T, P> & operator-= (U s);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat3x4<T, P> & operator-= (tmat3x4<U, P> const & m);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tmat3x4<T, P> & operator*= (U s);
-
133  template <typename U>
-
134  GLM_FUNC_DECL tmat3x4<T, P> & operator/= (U s);
-
135 
-
137  // Increment and decrement operators
-
138 
-
139  GLM_FUNC_DECL tmat3x4<T, P> & operator++ ();
-
140  GLM_FUNC_DECL tmat3x4<T, P> & operator-- ();
-
141  GLM_FUNC_DECL tmat3x4<T, P> operator++(int);
-
142  GLM_FUNC_DECL tmat3x4<T, P> operator--(int);
-
143  };
-
144 
-
145  // Binary operators
-
146  template <typename T, precision P>
-
147  GLM_FUNC_DECL tmat3x4<T, P> operator+ (
-
148  tmat3x4<T, P> const & m,
-
149  T const & s);
-
150 
-
151  template <typename T, precision P>
-
152  GLM_FUNC_DECL tmat3x4<T, P> operator+ (
-
153  tmat3x4<T, P> const & m1,
-
154  tmat3x4<T, P> const & m2);
-
155 
-
156  template <typename T, precision P>
-
157  GLM_FUNC_DECL tmat3x4<T, P> operator- (
-
158  tmat3x4<T, P> const & m,
-
159  T const & s);
-
160 
-
161  template <typename T, precision P>
-
162  GLM_FUNC_DECL tmat3x4<T, P> operator- (
-
163  tmat3x4<T, P> const & m1,
-
164  tmat3x4<T, P> const & m2);
-
165 
-
166  template <typename T, precision P>
-
167  GLM_FUNC_DECL tmat3x4<T, P> operator* (
-
168  tmat3x4<T, P> const & m,
-
169  T const & s);
-
170 
-
171  template <typename T, precision P>
-
172  GLM_FUNC_DECL tmat3x4<T, P> operator* (
-
173  T const & s,
-
174  tmat3x4<T, P> const & m);
-
175 
-
176  template <typename T, precision P>
-
177  GLM_FUNC_DECL typename tmat3x4<T, P>::col_type operator* (
-
178  tmat3x4<T, P> const & m,
-
179  typename tmat3x4<T, P>::row_type const & v);
-
180 
-
181  template <typename T, precision P>
-
182  GLM_FUNC_DECL typename tmat3x4<T, P>::row_type operator* (
-
183  typename tmat3x4<T, P>::col_type const & v,
-
184  tmat3x4<T, P> const & m);
-
185 
-
186  template <typename T, precision P>
-
187  GLM_FUNC_DECL tmat4x4<T, P> operator* (
-
188  tmat3x4<T, P> const & m1,
-
189  tmat4x3<T, P> const & m2);
-
190 
-
191  template <typename T, precision P>
-
192  GLM_FUNC_DECL tmat2x4<T, P> operator* (
-
193  tmat3x4<T, P> const & m1,
-
194  tmat2x3<T, P> const & m2);
-
195 
-
196  template <typename T, precision P>
-
197  GLM_FUNC_DECL tmat3x4<T, P> operator* (
-
198  tmat3x4<T, P> const & m1,
-
199  tmat3x3<T, P> const & m2);
-
200 
-
201  template <typename T, precision P>
-
202  GLM_FUNC_DECL tmat3x4<T, P> operator/ (
-
203  tmat3x4<T, P> const & m,
-
204  T const & s);
-
205 
-
206  template <typename T, precision P>
-
207  GLM_FUNC_DECL tmat3x4<T, P> operator/ (
-
208  T const & s,
-
209  tmat3x4<T, P> const & m);
-
210 
-
211  // Unary constant operators
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL tmat3x4<T, P> const operator-(
-
214  tmat3x4<T, P> const & m);
-
215 
-
216 }//namespace detail
-
217 }//namespace glm
-
218 
-
219 #ifndef GLM_EXTERNAL_TEMPLATE
-
220 #include "type_mat3x4.inl"
-
221 #endif
-
222 
-
223 #endif //glm_core_type_mat3x4
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00129_source.html b/3party/glm/doc/api/a00129_source.html deleted file mode 100755 index 7e8b424ba6..0000000000 --- a/3party/glm/doc/api/a00129_source.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - -GLM: type_mat4x2.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_mat4x2.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_mat4x2
-
30 #define glm_core_type_mat4x2
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec2.hpp"
-
34 #include "type_vec4.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat4x2
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
-
47  typedef tvec2<T, P> col_type;
-
48  typedef tvec4<T, P> row_type;
-
49  typedef tmat4x2<T, P> type;
-
50  typedef tmat2x4<T, P> transpose_type;
-
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[4];
-
57 
-
58  public:
-
59  // Constructors
-
60  GLM_FUNC_DECL tmat4x2();
-
61  GLM_FUNC_DECL tmat4x2(tmat4x2<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat4x2(tmat4x2<T, Q> const & m);
-
64 
-
65  GLM_FUNC_DECL explicit tmat4x2(
-
66  ctor Null);
-
67  GLM_FUNC_DECL explicit tmat4x2(
-
68  T const & x);
-
69  GLM_FUNC_DECL explicit tmat4x2(
-
70  T const & x0, T const & y0,
-
71  T const & x1, T const & y1,
-
72  T const & x2, T const & y2,
-
73  T const & x3, T const & y3);
-
74  GLM_FUNC_DECL explicit tmat4x2(
-
75  col_type const & v0,
-
76  col_type const & v1,
-
77  col_type const & v2,
-
78  col_type const & v3);
-
79 
-
80 #if(GLM_HAS_INITIALIZER_LISTS)
-
81  template <typename U>
-
82  GLM_FUNC_DECL tmat4x2(std::initializer_list<U> m);
-
83 
-
84  GLM_FUNC_DECL tmat4x2(std::initializer_list<tvec2<T, P> > m);
-
85 #endif//GLM_HAS_INITIALIZER_LISTS
-
86 
-
88  // Conversions
-
89 
-
90  template<
-
91  typename X1, typename Y1,
-
92  typename X2, typename Y2,
-
93  typename X3, typename Y3,
-
94  typename X4, typename Y4>
-
95  GLM_FUNC_DECL explicit tmat4x2(
-
96  X1 const & x1, Y1 const & y1,
-
97  X2 const & x2, Y2 const & y2,
-
98  X3 const & x3, Y3 const & y3,
-
99  X4 const & x4, Y4 const & y4);
-
100 
-
101  template <typename V1, typename V2, typename V3, typename V4>
-
102  GLM_FUNC_DECL explicit tmat4x2(
-
103  tvec2<V1, P> const & v1,
-
104  tvec2<V2, P> const & v2,
-
105  tvec2<V3, P> const & v3,
-
106  tvec2<V4, P> const & v4);
-
107 
-
108  // Matrix conversions
-
109  template <typename U, precision Q>
-
110  GLM_FUNC_DECL explicit tmat4x2(tmat4x2<U, Q> const & m);
-
111 
-
112  GLM_FUNC_DECL explicit tmat4x2(tmat2x2<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat4x2(tmat3x3<T, P> const & x);
-
114  GLM_FUNC_DECL explicit tmat4x2(tmat4x4<T, P> const & x);
-
115  GLM_FUNC_DECL explicit tmat4x2(tmat2x3<T, P> const & x);
-
116  GLM_FUNC_DECL explicit tmat4x2(tmat3x2<T, P> const & x);
-
117  GLM_FUNC_DECL explicit tmat4x2(tmat2x4<T, P> const & x);
-
118  GLM_FUNC_DECL explicit tmat4x2(tmat4x3<T, P> const & x);
-
119  GLM_FUNC_DECL explicit tmat4x2(tmat3x4<T, P> const & x);
-
120 
-
121  // Accesses
-
122  GLM_FUNC_DECL col_type & operator[](length_t i);
-
123  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
124 
-
125  // Unary updatable operators
-
126  GLM_FUNC_DECL tmat4x2<T, P>& operator= (tmat4x2<T, P> const & m);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat4x2<T, P>& operator= (tmat4x2<U, P> const & m);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat4x2<T, P>& operator+= (U s);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tmat4x2<T, P>& operator+= (tmat4x2<U, P> const & m);
-
133  template <typename U>
-
134  GLM_FUNC_DECL tmat4x2<T, P>& operator-= (U s);
-
135  template <typename U>
-
136  GLM_FUNC_DECL tmat4x2<T, P>& operator-= (tmat4x2<U, P> const & m);
-
137  template <typename U>
-
138  GLM_FUNC_DECL tmat4x2<T, P>& operator*= (U s);
-
139  template <typename U>
-
140  GLM_FUNC_DECL tmat4x2<T, P>& operator/= (U s);
-
141 
-
143  // Increment and decrement operators
-
144 
-
145  GLM_FUNC_DECL tmat4x2<T, P> & operator++ ();
-
146  GLM_FUNC_DECL tmat4x2<T, P> & operator-- ();
-
147  GLM_FUNC_DECL tmat4x2<T, P> operator++(int);
-
148  GLM_FUNC_DECL tmat4x2<T, P> operator--(int);
-
149  };
-
150 
-
151  // Binary operators
-
152  template <typename T, precision P>
-
153  GLM_FUNC_DECL tmat4x2<T, P> operator+ (
-
154  tmat4x2<T, P> const & m,
-
155  T const & s);
-
156 
-
157  template <typename T, precision P>
-
158  GLM_FUNC_DECL tmat4x2<T, P> operator+ (
-
159  tmat4x2<T, P> const & m1,
-
160  tmat4x2<T, P> const & m2);
-
161 
-
162  template <typename T, precision P>
-
163  GLM_FUNC_DECL tmat4x2<T, P> operator- (
-
164  tmat4x2<T, P> const & m,
-
165  T const & s);
-
166 
-
167  template <typename T, precision P>
-
168  GLM_FUNC_DECL tmat4x2<T, P> operator- (
-
169  tmat4x2<T, P> const & m1,
-
170  tmat4x2<T, P> const & m2);
-
171 
-
172  template <typename T, precision P>
-
173  GLM_FUNC_DECL tmat4x2<T, P> operator* (
-
174  tmat4x2<T, P> const & m,
-
175  T const & s);
-
176 
-
177  template <typename T, precision P>
-
178  GLM_FUNC_DECL tmat4x2<T, P> operator* (
-
179  T const & s,
-
180  tmat4x2<T, P> const & m);
-
181 
-
182  template <typename T, precision P>
-
183  GLM_FUNC_DECL typename tmat4x2<T, P>::col_type operator* (
-
184  tmat4x2<T, P> const & m,
-
185  typename tmat4x2<T, P>::row_type const & v);
-
186 
-
187  template <typename T, precision P>
-
188  GLM_FUNC_DECL typename tmat4x2<T, P>::row_type operator* (
-
189  typename tmat4x2<T, P>::col_type const & v,
-
190  tmat4x2<T, P> const & m);
-
191 
-
192  template <typename T, precision P>
-
193  GLM_FUNC_DECL tmat3x2<T, P> operator* (
-
194  tmat4x2<T, P> const & m1,
-
195  tmat3x4<T, P> const & m2);
-
196 
-
197  template <typename T, precision P>
-
198  GLM_FUNC_DECL tmat4x2<T, P> operator* (
-
199  tmat4x2<T, P> const & m1,
-
200  tmat4x4<T, P> const & m2);
-
201 
-
202  template <typename T, precision P>
-
203  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
204  tmat4x3<T, P> const & m1,
-
205  tmat2x4<T, P> const & m2);
-
206 
-
207  template <typename T, precision P>
-
208  GLM_FUNC_DECL tmat4x2<T, P> operator/ (
-
209  tmat4x2<T, P> const & m,
-
210  T const & s);
-
211 
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL tmat4x2<T, P> operator/ (
-
214  T const & s,
-
215  tmat4x2<T, P> const & m);
-
216 
-
217  // Unary constant operators
-
218  template <typename T, precision P>
-
219  GLM_FUNC_DECL tmat4x2<T, P> const operator-(
-
220  tmat4x2<T, P> const & m);
-
221 
-
222 }//namespace detail
-
223 }//namespace glm
-
224 
-
225 #ifndef GLM_EXTERNAL_TEMPLATE
-
226 #include "type_mat4x2.inl"
-
227 #endif
-
228 
-
229 #endif //glm_core_type_mat4x2
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00130_source.html b/3party/glm/doc/api/a00130_source.html deleted file mode 100755 index 72c77d7d6c..0000000000 --- a/3party/glm/doc/api/a00130_source.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - -GLM: type_mat4x3.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_mat4x3.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_mat4x3
-
30 #define glm_core_type_mat4x3
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec3.hpp"
-
34 #include "type_vec4.hpp"
-
35 #include "type_mat.hpp"
-
36 #include <limits>
-
37 
-
38 namespace glm{
-
39 namespace detail
-
40 {
-
41  template <typename T, precision P>
-
42  struct tmat4x3
-
43  {
-
44  enum ctor{_null};
-
45  typedef T value_type;
-
46  typedef std::size_t size_type;
-
47  typedef tvec3<T, P> col_type;
-
48  typedef tvec4<T, P> row_type;
-
49  typedef tmat4x3<T, P> type;
-
50  typedef tmat3x4<T, P> transpose_type;
-
51 
-
52  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
53 
-
54  private:
-
55  // Data
-
56  col_type value[4];
-
57 
-
58  public:
-
59  // Constructors
-
60  GLM_FUNC_DECL tmat4x3();
-
61  GLM_FUNC_DECL tmat4x3(tmat4x3<T, P> const & m);
-
62  template <precision Q>
-
63  GLM_FUNC_DECL tmat4x3(tmat4x3<T, Q> const & m);
-
64 
-
65  GLM_FUNC_DECL explicit tmat4x3(
-
66  ctor Null);
-
67  GLM_FUNC_DECL explicit tmat4x3(
-
68  T const & x);
-
69  GLM_FUNC_DECL explicit tmat4x3(
-
70  T const & x0, T const & y0, T const & z0,
-
71  T const & x1, T const & y1, T const & z1,
-
72  T const & x2, T const & y2, T const & z2,
-
73  T const & x3, T const & y3, T const & z3);
-
74  GLM_FUNC_DECL explicit tmat4x3(
-
75  col_type const & v0,
-
76  col_type const & v1,
-
77  col_type const & v2,
-
78  col_type const & v3);
-
79 
-
80 #if(GLM_HAS_INITIALIZER_LISTS)
-
81  template <typename U>
-
82  GLM_FUNC_DECL tmat4x3(std::initializer_list<U> m);
-
83 
-
84  GLM_FUNC_DECL tmat4x3(std::initializer_list<tvec3<T, P> > m);
-
85 #endif//GLM_HAS_INITIALIZER_LISTS
-
86 
-
88  // Conversions
-
89 
-
90  template <
-
91  typename X1, typename Y1, typename Z1,
-
92  typename X2, typename Y2, typename Z2,
-
93  typename X3, typename Y3, typename Z3,
-
94  typename X4, typename Y4, typename Z4>
-
95  GLM_FUNC_DECL explicit tmat4x3(
-
96  X1 const & x1, Y1 const & y1, Z1 const & z1,
-
97  X2 const & x2, Y2 const & y2, Z2 const & z2,
-
98  X3 const & x3, Y3 const & y3, Z3 const & z3,
-
99  X4 const & x4, Y4 const & y4, Z4 const & z4);
-
100 
-
101  template <typename V1, typename V2, typename V3, typename V4>
-
102  GLM_FUNC_DECL explicit tmat4x3(
-
103  tvec3<V1, P> const & v1,
-
104  tvec3<V2, P> const & v2,
-
105  tvec3<V3, P> const & v3,
-
106  tvec3<V4, P> const & v4);
-
107 
-
108  // Matrix conversions
-
109  template <typename U, precision Q>
-
110  GLM_FUNC_DECL explicit tmat4x3(tmat4x3<U, Q> const & m);
-
111 
-
112  GLM_FUNC_DECL explicit tmat4x3(tmat2x2<T, P> const & x);
-
113  GLM_FUNC_DECL explicit tmat4x3(tmat3x3<T, P> const & x);
-
114  GLM_FUNC_DECL explicit tmat4x3(tmat4x4<T, P> const & x);
-
115  GLM_FUNC_DECL explicit tmat4x3(tmat2x3<T, P> const & x);
-
116  GLM_FUNC_DECL explicit tmat4x3(tmat3x2<T, P> const & x);
-
117  GLM_FUNC_DECL explicit tmat4x3(tmat2x4<T, P> const & x);
-
118  GLM_FUNC_DECL explicit tmat4x3(tmat4x2<T, P> const & x);
-
119  GLM_FUNC_DECL explicit tmat4x3(tmat3x4<T, P> const & x);
-
120 
-
121  // Accesses
-
122  GLM_FUNC_DECL col_type & operator[](size_type i);
-
123  GLM_FUNC_DECL col_type const & operator[](size_type i) const;
-
124 
-
125  // Unary updatable operators
-
126  GLM_FUNC_DECL tmat4x3<T, P> & operator= (tmat4x3<T, P> const & m);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tmat4x3<T, P> & operator= (tmat4x3<U, P> const & m);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tmat4x3<T, P> & operator+= (U s);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tmat4x3<T, P> & operator+= (tmat4x3<U, P> const & m);
-
133  template <typename U>
-
134  GLM_FUNC_DECL tmat4x3<T, P> & operator-= (U s);
-
135  template <typename U>
-
136  GLM_FUNC_DECL tmat4x3<T, P> & operator-= (tmat4x3<U, P> const & m);
-
137  template <typename U>
-
138  GLM_FUNC_DECL tmat4x3<T, P> & operator*= (U s);
-
139  template <typename U>
-
140  GLM_FUNC_DECL tmat4x3<T, P> & operator/= (U s);
-
141 
-
143  // Increment and decrement operators
-
144 
-
145  GLM_FUNC_DECL tmat4x3<T, P> & operator++ ();
-
146  GLM_FUNC_DECL tmat4x3<T, P> & operator-- ();
-
147  GLM_FUNC_DECL tmat4x3<T, P> operator++(int);
-
148  GLM_FUNC_DECL tmat4x3<T, P> operator--(int);
-
149  };
-
150 
-
151  // Binary operators
-
152  template <typename T, precision P>
-
153  GLM_FUNC_DECL tmat4x3<T, P> operator+ (
-
154  tmat4x3<T, P> const & m,
-
155  T const & s);
-
156 
-
157  template <typename T, precision P>
-
158  GLM_FUNC_DECL tmat4x3<T, P> operator+ (
-
159  tmat4x3<T, P> const & m1,
-
160  tmat4x3<T, P> const & m2);
-
161 
-
162  template <typename T, precision P>
-
163  GLM_FUNC_DECL tmat4x3<T, P> operator- (
-
164  tmat4x3<T, P> const & m,
-
165  T const & s);
-
166 
-
167  template <typename T, precision P>
-
168  GLM_FUNC_DECL tmat4x3<T, P> operator- (
-
169  tmat4x3<T, P> const & m1,
-
170  tmat4x3<T, P> const & m2);
-
171 
-
172  template <typename T, precision P>
-
173  GLM_FUNC_DECL tmat4x3<T, P> operator* (
-
174  tmat4x3<T, P> const & m,
-
175  T const & s);
-
176 
-
177  template <typename T, precision P>
-
178  GLM_FUNC_DECL tmat4x3<T, P> operator* (
-
179  T const & s,
-
180  tmat4x3<T, P> const & m);
-
181 
-
182  template <typename T, precision P>
-
183  GLM_FUNC_DECL typename tmat4x3<T, P>::col_type operator* (
-
184  tmat4x3<T, P> const & m,
-
185  typename tmat4x3<T, P>::row_type const & v);
-
186 
-
187  template <typename T, precision P>
-
188  GLM_FUNC_DECL typename tmat4x3<T, P>::row_type operator* (
-
189  typename tmat4x3<T, P>::col_type const & v,
-
190  tmat4x3<T, P> const & m);
-
191 
-
192  template <typename T, precision P>
-
193  GLM_FUNC_DECL tmat2x3<T, P> operator* (
-
194  tmat4x3<T, P> const & m1,
-
195  tmat2x4<T, P> const & m2);
-
196 
-
197  template <typename T, precision P>
-
198  GLM_FUNC_DECL tmat3x3<T, P> operator* (
-
199  tmat4x3<T, P> const & m1,
-
200  tmat3x4<T, P> const & m2);
-
201 
-
202  template <typename T, precision P>
-
203  GLM_FUNC_DECL tmat4x3<T, P> operator* (
-
204  tmat4x3<T, P> const & m1,
-
205  tmat4x4<T, P> const & m2);
-
206 
-
207  template <typename T, precision P>
-
208  GLM_FUNC_DECL tmat4x3<T, P> operator/ (
-
209  tmat4x3<T, P> const & m,
-
210  T const & s);
-
211 
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL tmat4x3<T, P> operator/ (
-
214  T const & s,
-
215  tmat4x3<T, P> const & m);
-
216 
-
217  // Unary constant operators
-
218  template <typename T, precision P>
-
219  GLM_FUNC_DECL tmat4x3<T, P> const operator- (
-
220  tmat4x3<T, P> const & m);
-
221 
-
222 }//namespace detail
-
223 }//namespace glm
-
224 
-
225 #ifndef GLM_EXTERNAL_TEMPLATE
-
226 #include "type_mat4x3.inl"
-
227 #endif //GLM_EXTERNAL_TEMPLATE
-
228 
-
229 #endif//glm_core_type_mat4x3
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00131_source.html b/3party/glm/doc/api/a00131_source.html deleted file mode 100755 index f999786f3a..0000000000 --- a/3party/glm/doc/api/a00131_source.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - -GLM: type_mat4x4.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_mat4x4.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_mat4x4
-
30 #define glm_core_type_mat4x4
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec4.hpp"
-
34 #include "type_mat.hpp"
-
35 #if(GLM_HAS_INITIALIZER_LISTS)
-
36 # include <initializer_list>
-
37 #endif //GLM_HAS_INITIALIZER_LISTS
-
38 #include <limits>
-
39 #include <cstddef>
-
40 
-
41 namespace glm{
-
42 namespace detail
-
43 {
-
44  template <typename T, precision P>
-
45  struct tmat4x4
-
46  {
-
47  enum ctor{_null};
-
48  typedef T value_type;
-
49  typedef std::size_t size_type;
-
50  typedef tvec4<T, P> col_type;
-
51  typedef tvec4<T, P> row_type;
-
52  typedef tmat4x4<T, P> type;
-
53  typedef tmat4x4<T, P> transpose_type;
-
54 
-
55  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
56 
-
57  template <typename U, precision Q>
-
58  friend tvec4<U, Q> operator/(tmat4x4<U, Q> const & m, tvec4<U, Q> const & v);
-
59  template <typename U, precision Q>
-
60  friend tvec4<U, Q> operator/(tvec4<U, Q> const & v, tmat4x4<U, Q> const & m);
-
61 
-
62  private:
-
64  col_type value[4];
-
65 
-
66  public:
-
67  // Constructors
-
68  GLM_FUNC_DECL tmat4x4();
-
69  GLM_FUNC_DECL tmat4x4(tmat4x4<T, P> const & m);
-
70  template <precision Q>
-
71  GLM_FUNC_DECL tmat4x4(tmat4x4<T, Q> const & m);
-
72 
-
73  GLM_FUNC_DECL explicit tmat4x4(
-
74  ctor Null);
-
75  GLM_FUNC_DECL explicit tmat4x4(
-
76  T const & x);
-
77  GLM_FUNC_DECL explicit tmat4x4(
-
78  T const & x0, T const & y0, T const & z0, T const & w0,
-
79  T const & x1, T const & y1, T const & z1, T const & w1,
-
80  T const & x2, T const & y2, T const & z2, T const & w2,
-
81  T const & x3, T const & y3, T const & z3, T const & w3);
-
82  GLM_FUNC_DECL explicit tmat4x4(
-
83  col_type const & v0,
-
84  col_type const & v1,
-
85  col_type const & v2,
-
86  col_type const & v3);
-
87 
-
88 #if(GLM_HAS_INITIALIZER_LISTS)
-
89  template <typename U>
-
90  GLM_FUNC_DECL tmat4x4(std::initializer_list<U> m);
-
91 
-
92  GLM_FUNC_DECL tmat4x4(std::initializer_list<tvec4<T, P> > m);
-
93 #endif//GLM_HAS_INITIALIZER_LISTS
-
94 
-
96  // Conversions
-
97 
-
98  template <
-
99  typename X1, typename Y1, typename Z1, typename W1,
-
100  typename X2, typename Y2, typename Z2, typename W2,
-
101  typename X3, typename Y3, typename Z3, typename W3,
-
102  typename X4, typename Y4, typename Z4, typename W4>
-
103  GLM_FUNC_DECL explicit tmat4x4(
-
104  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
-
105  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
-
106  X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3,
-
107  X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4);
-
108 
-
109  template <typename V1, typename V2, typename V3, typename V4>
-
110  GLM_FUNC_DECL explicit tmat4x4(
-
111  tvec4<V1, P> const & v1,
-
112  tvec4<V2, P> const & v2,
-
113  tvec4<V3, P> const & v3,
-
114  tvec4<V4, P> const & v4);
-
115 
-
116  // Matrix conversions
-
117  template <typename U, precision Q>
-
118  GLM_FUNC_DECL explicit tmat4x4(tmat4x4<U, Q> const & m);
-
119 
-
120  GLM_FUNC_DECL explicit tmat4x4(tmat2x2<T, P> const & x);
-
121  GLM_FUNC_DECL explicit tmat4x4(tmat3x3<T, P> const & x);
-
122  GLM_FUNC_DECL explicit tmat4x4(tmat2x3<T, P> const & x);
-
123  GLM_FUNC_DECL explicit tmat4x4(tmat3x2<T, P> const & x);
-
124  GLM_FUNC_DECL explicit tmat4x4(tmat2x4<T, P> const & x);
-
125  GLM_FUNC_DECL explicit tmat4x4(tmat4x2<T, P> const & x);
-
126  GLM_FUNC_DECL explicit tmat4x4(tmat3x4<T, P> const & x);
-
127  GLM_FUNC_DECL explicit tmat4x4(tmat4x3<T, P> const & x);
-
128 
-
129  // Accesses
-
130  GLM_FUNC_DECL col_type & operator[](length_t i);
-
131  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
-
132 
-
133  // Unary updatable operators
-
134  GLM_FUNC_DECL tmat4x4<T, P> & operator= (tmat4x4<T, P> const & m);
-
135  template <typename U>
-
136  GLM_FUNC_DECL tmat4x4<T, P> & operator= (tmat4x4<U, P> const & m);
-
137  template <typename U>
-
138  GLM_FUNC_DECL tmat4x4<T, P> & operator+= (U s);
-
139  template <typename U>
-
140  GLM_FUNC_DECL tmat4x4<T, P> & operator+= (tmat4x4<U, P> const & m);
-
141  template <typename U>
-
142  GLM_FUNC_DECL tmat4x4<T, P> & operator-= (U s);
-
143  template <typename U>
-
144  GLM_FUNC_DECL tmat4x4<T, P> & operator-= (tmat4x4<U, P> const & m);
-
145  template <typename U>
-
146  GLM_FUNC_DECL tmat4x4<T, P> & operator*= (U s);
-
147  template <typename U>
-
148  GLM_FUNC_DECL tmat4x4<T, P> & operator*= (tmat4x4<U, P> const & m);
-
149  template <typename U>
-
150  GLM_FUNC_DECL tmat4x4<T, P> & operator/= (U s);
-
151  template <typename U>
-
152  GLM_FUNC_DECL tmat4x4<T, P> & operator/= (tmat4x4<U, P> const & m);
-
153 
-
155  // Increment and decrement operators
-
156 
-
157  GLM_FUNC_DECL tmat4x4<T, P> & operator++ ();
-
158  GLM_FUNC_DECL tmat4x4<T, P> & operator-- ();
-
159  GLM_FUNC_DECL tmat4x4<T, P> operator++(int);
-
160  GLM_FUNC_DECL tmat4x4<T, P> operator--(int);
-
161  };
-
162 
-
163  template <typename T, precision P>
-
164  GLM_FUNC_DECL tmat4x4<T, P> compute_inverse_mat4(tmat4x4<T, P> const & m);
-
165 
-
166  // Binary operators
-
167  template <typename T, precision P>
-
168  GLM_FUNC_DECL tmat4x4<T, P> operator+ (
-
169  tmat4x4<T, P> const & m,
-
170  T const & s);
-
171 
-
172  template <typename T, precision P>
-
173  GLM_FUNC_DECL tmat4x4<T, P> operator+ (
-
174  T const & s,
-
175  tmat4x4<T, P> const & m);
-
176 
-
177  template <typename T, precision P>
-
178  GLM_FUNC_DECL tmat4x4<T, P> operator+ (
-
179  tmat4x4<T, P> const & m1,
-
180  tmat4x4<T, P> const & m2);
-
181 
-
182  template <typename T, precision P>
-
183  GLM_FUNC_DECL tmat4x4<T, P> operator- (
-
184  tmat4x4<T, P> const & m,
-
185  T const & s);
-
186 
-
187  template <typename T, precision P>
-
188  GLM_FUNC_DECL tmat4x4<T, P> operator- (
-
189  T const & s,
-
190  tmat4x4<T, P> const & m);
-
191 
-
192  template <typename T, precision P>
-
193  GLM_FUNC_DECL tmat4x4<T, P> operator- (
-
194  tmat4x4<T, P> const & m1,
-
195  tmat4x4<T, P> const & m2);
-
196 
-
197  template <typename T, precision P>
-
198  GLM_FUNC_DECL tmat4x4<T, P> operator* (
-
199  tmat4x4<T, P> const & m,
-
200  T const & s);
-
201 
-
202  template <typename T, precision P>
-
203  GLM_FUNC_DECL tmat4x4<T, P> operator* (
-
204  T const & s,
-
205  tmat4x4<T, P> const & m);
-
206 
-
207  template <typename T, precision P>
-
208  GLM_FUNC_DECL typename tmat4x4<T, P>::col_type operator* (
-
209  tmat4x4<T, P> const & m,
-
210  typename tmat4x4<T, P>::row_type const & v);
-
211 
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL typename tmat4x4<T, P>::row_type operator* (
-
214  typename tmat4x4<T, P>::col_type const & v,
-
215  tmat4x4<T, P> const & m);
-
216 
-
217  template <typename T, precision P>
-
218  GLM_FUNC_DECL tmat2x4<T, P> operator* (
-
219  tmat4x4<T, P> const & m1,
-
220  tmat2x4<T, P> const & m2);
-
221 
-
222  template <typename T, precision P>
-
223  GLM_FUNC_DECL tmat3x4<T, P> operator* (
-
224  tmat4x4<T, P> const & m1,
-
225  tmat3x4<T, P> const & m2);
-
226 
-
227  template <typename T, precision P>
-
228  GLM_FUNC_DECL tmat4x4<T, P> operator* (
-
229  tmat4x4<T, P> const & m1,
-
230  tmat4x4<T, P> const & m2);
-
231 
-
232  template <typename T, precision P>
-
233  GLM_FUNC_DECL tmat4x4<T, P> operator/ (
-
234  tmat4x4<T, P> const & m,
-
235  T const & s);
-
236 
-
237  template <typename T, precision P>
-
238  GLM_FUNC_DECL tmat4x4<T, P> operator/ (
-
239  T const & s,
-
240  tmat4x4<T, P> const & m);
-
241 
-
242  template <typename T, precision P>
-
243  GLM_FUNC_DECL typename tmat4x4<T, P>::col_type operator/ (
-
244  tmat4x4<T, P> const & m,
-
245  typename tmat4x4<T, P>::row_type const & v);
-
246 
-
247  template <typename T, precision P>
-
248  GLM_FUNC_DECL typename tmat4x4<T, P>::row_type operator/ (
-
249  typename tmat4x4<T, P>::col_type & v,
-
250  tmat4x4<T, P> const & m);
-
251 
-
252  template <typename T, precision P>
-
253  GLM_FUNC_DECL tmat4x4<T, P> operator/ (
-
254  tmat4x4<T, P> const & m1,
-
255  tmat4x4<T, P> const & m2);
-
256 
-
257  // Unary constant operators
-
258  template <typename T, precision P>
-
259  GLM_FUNC_DECL tmat4x4<T, P> const operator- (
-
260  tmat4x4<T, P> const & m);
-
261 
-
262 }//namespace detail
-
263 }//namespace glm
-
264 
-
265 #ifndef GLM_EXTERNAL_TEMPLATE
-
266 #include "type_mat4x4.inl"
-
267 #endif//GLM_EXTERNAL_TEMPLATE
-
268 
-
269 #endif//glm_core_type_mat4x4
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00132.html b/3party/glm/doc/api/a00132.html deleted file mode 100755 index ec3466a35a..0000000000 --- a/3party/glm/doc/api/a00132.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - -GLM: type_precision.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
type_precision.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_type_precision

-
Date
2009-06-04 / 2011-12-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file type_precision.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00132_source.html b/3party/glm/doc/api/a00132_source.html deleted file mode 100755 index 5010e8936a..0000000000 --- a/3party/glm/doc/api/a00132_source.html +++ /dev/null @@ -1,691 +0,0 @@ - - - - - - -GLM: type_precision.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
43 #ifndef GLM_GTC_type_precision
-
44 #define GLM_GTC_type_precision
-
45 
-
46 // Dependency:
-
47 #include "../gtc/quaternion.hpp"
-
48 #include "../vec2.hpp"
-
49 #include "../vec3.hpp"
-
50 #include "../vec4.hpp"
-
51 #include "../mat2x2.hpp"
-
52 #include "../mat2x3.hpp"
-
53 #include "../mat2x4.hpp"
-
54 #include "../mat3x2.hpp"
-
55 #include "../mat3x3.hpp"
-
56 #include "../mat3x4.hpp"
-
57 #include "../mat4x2.hpp"
-
58 #include "../mat4x3.hpp"
-
59 #include "../mat4x4.hpp"
-
60 
-
61 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
62 # pragma message("GLM: GLM_GTC_type_precision extension included")
-
63 #endif
-
64 
-
65 namespace glm
-
66 {
-
68  // Signed int vector types
-
69 
-
72 
-
75  typedef detail::int8 lowp_int8;
-
76 
-
79  typedef detail::int16 lowp_int16;
-
80 
-
83  typedef detail::int32 lowp_int32;
-
84 
-
87  typedef detail::int64 lowp_int64;
-
88 
-
91  typedef detail::int8 lowp_int8_t;
-
92 
- -
96 
- -
100 
-
103  typedef detail::int64 lowp_int64_t;
-
104 
-
107  typedef detail::int8 lowp_i8;
-
108 
-
111  typedef detail::int16 lowp_i16;
-
112 
-
115  typedef detail::int32 lowp_i32;
-
116 
-
119  typedef detail::int64 lowp_i64;
-
120 
-
123  typedef detail::int8 mediump_int8;
-
124 
- -
128 
- -
132 
- -
136 
- -
140 
- -
144 
- -
148 
- -
152 
-
155  typedef detail::int8 mediump_i8;
-
156 
-
159  typedef detail::int16 mediump_i16;
-
160 
-
163  typedef detail::int32 mediump_i32;
-
164 
-
167  typedef detail::int64 mediump_i64;
-
168 
-
171  typedef detail::int8 highp_int8;
-
172 
-
175  typedef detail::int16 highp_int16;
-
176 
-
179  typedef detail::int32 highp_int32;
-
180 
-
183  typedef detail::int64 highp_int64;
-
184 
-
187  typedef detail::int8 highp_int8_t;
-
188 
- -
192 
- -
196 
- -
200 
-
203  typedef detail::int8 highp_i8;
-
204 
-
207  typedef detail::int16 highp_i16;
-
208 
-
211  typedef detail::int32 highp_i32;
-
212 
-
215  typedef detail::int64 highp_i64;
-
216 
-
217 
-
220  typedef detail::int8 int8;
-
221 
-
224  typedef detail::int16 int16;
-
225 
-
228  typedef detail::int32 int32;
-
229 
-
232  typedef detail::int64 int64;
-
233 
-
236  typedef detail::int8 int8_t;
-
237 
-
240  typedef detail::int16 int16_t;
-
241 
-
244  typedef detail::int32 int32_t;
-
245 
-
248  typedef detail::int64 int64_t;
-
249 
-
252  typedef detail::int8 i8;
-
253 
-
256  typedef detail::int16 i16;
-
257 
-
260  typedef detail::int32 i32;
-
261 
-
264  typedef detail::int64 i64;
-
265 
-
266 
-
269  typedef detail::tvec1<i8, defaultp> i8vec1;
-
270 
-
273  typedef detail::tvec2<i8, defaultp> i8vec2;
-
274 
-
277  typedef detail::tvec3<i8, defaultp> i8vec3;
-
278 
-
281  typedef detail::tvec4<i8, defaultp> i8vec4;
-
282 
-
283 
-
286  typedef detail::tvec1<i16, defaultp> i16vec1;
-
287 
-
290  typedef detail::tvec2<i16, defaultp> i16vec2;
-
291 
-
294  typedef detail::tvec3<i16, defaultp> i16vec3;
-
295 
-
298  typedef detail::tvec4<i16, defaultp> i16vec4;
-
299 
-
300 
-
303  typedef detail::tvec1<i32, defaultp> i32vec1;
-
304 
-
307  typedef detail::tvec2<i32, defaultp> i32vec2;
-
308 
-
311  typedef detail::tvec3<i32, defaultp> i32vec3;
-
312 
-
315  typedef detail::tvec4<i32, defaultp> i32vec4;
-
316 
-
317 
-
320  typedef detail::tvec1<i64, defaultp> i64vec1;
-
321 
-
324  typedef detail::tvec2<i64, defaultp> i64vec2;
-
325 
-
328  typedef detail::tvec3<i64, defaultp> i64vec3;
-
329 
-
332  typedef detail::tvec4<i64, defaultp> i64vec4;
-
333 
-
334 
-
336  // Unsigned int vector types
-
337 
-
340  typedef detail::uint8 lowp_uint8;
-
341 
-
344  typedef detail::uint16 lowp_uint16;
-
345 
-
348  typedef detail::uint32 lowp_uint32;
-
349 
-
352  typedef detail::uint64 lowp_uint64;
-
353 
-
356  typedef detail::uint8 lowp_uint8_t;
-
357 
- -
361 
- -
365 
- -
369 
-
372  typedef detail::uint8 lowp_u8;
-
373 
-
376  typedef detail::uint16 lowp_u16;
-
377 
-
380  typedef detail::uint32 lowp_u32;
-
381 
-
384  typedef detail::uint64 lowp_u64;
-
385 
- -
389 
- -
393 
- -
397 
- -
401 
- -
405 
- -
409 
- -
413 
- -
417 
-
420  typedef detail::uint8 mediump_u8;
-
421 
-
424  typedef detail::uint16 mediump_u16;
-
425 
-
428  typedef detail::uint32 mediump_u32;
-
429 
-
432  typedef detail::uint64 mediump_u64;
-
433 
-
436  typedef detail::uint8 highp_uint8;
-
437 
- -
441 
- -
445 
- -
449 
- -
453 
- -
457 
- -
461 
- -
465 
-
468  typedef detail::uint8 highp_u8;
-
469 
-
472  typedef detail::uint16 highp_u16;
-
473 
-
476  typedef detail::uint32 highp_u32;
-
477 
-
480  typedef detail::uint64 highp_u64;
-
481 
-
484  typedef detail::uint8 uint8;
-
485 
-
488  typedef detail::uint16 uint16;
-
489 
-
492  typedef detail::uint32 uint32;
-
493 
-
496  typedef detail::uint64 uint64;
-
497 
-
500  typedef detail::uint8 uint8_t;
-
501 
-
504  typedef detail::uint16 uint16_t;
-
505 
-
508  typedef detail::uint32 uint32_t;
-
509 
-
512  typedef detail::uint64 uint64_t;
-
513 
-
516  typedef detail::uint8 u8;
-
517 
-
520  typedef detail::uint16 u16;
-
521 
-
524  typedef detail::uint32 u32;
-
525 
-
528  typedef detail::uint64 u64;
-
529 
-
530 
-
531 
-
534  typedef detail::tvec1<u8, defaultp> u8vec1;
-
535 
-
538  typedef detail::tvec2<u8, defaultp> u8vec2;
-
539 
-
542  typedef detail::tvec3<u8, defaultp> u8vec3;
-
543 
-
546  typedef detail::tvec4<u8, defaultp> u8vec4;
-
547 
-
548 
-
551  typedef detail::tvec1<u16, defaultp> u16vec1;
-
552 
-
555  typedef detail::tvec2<u16, defaultp> u16vec2;
-
556 
-
559  typedef detail::tvec3<u16, defaultp> u16vec3;
-
560 
-
563  typedef detail::tvec4<u16, defaultp> u16vec4;
-
564 
-
565 
-
568  typedef detail::tvec1<u32, defaultp> u32vec1;
-
569 
-
572  typedef detail::tvec2<u32, defaultp> u32vec2;
-
573 
-
576  typedef detail::tvec3<u32, defaultp> u32vec3;
-
577 
-
580  typedef detail::tvec4<u32, defaultp> u32vec4;
-
581 
-
582 
-
585  typedef detail::tvec1<u64, defaultp> u64vec1;
-
586 
-
589  typedef detail::tvec2<u64, defaultp> u64vec2;
-
590 
-
593  typedef detail::tvec3<u64, defaultp> u64vec3;
-
594 
-
597  typedef detail::tvec4<u64, defaultp> u64vec4;
-
598 
-
599 
-
601  // Float vector types
-
602 
-
605  typedef detail::float32 float32;
-
606 
-
609  typedef detail::float64 float64;
-
610 
-
611 
-
614  typedef detail::float32 float32_t;
-
615 
-
618  typedef detail::float64 float64_t;
-
619 
-
620 
-
623  typedef float32 f32;
-
624 
-
627  typedef float64 f64;
-
628 
-
629 
-
632  typedef detail::tvec1<float, defaultp> fvec1;
-
633 
-
636  typedef detail::tvec2<float, defaultp> fvec2;
-
637 
-
640  typedef detail::tvec3<float, defaultp> fvec3;
-
641 
-
644  typedef detail::tvec4<float, defaultp> fvec4;
-
645 
-
646 
-
649  typedef detail::tvec1<f32, defaultp> f32vec1;
-
650 
-
653  typedef detail::tvec2<f32, defaultp> f32vec2;
-
654 
-
657  typedef detail::tvec3<f32, defaultp> f32vec3;
-
658 
-
661  typedef detail::tvec4<f32, defaultp> f32vec4;
-
662 
-
663 
-
666  typedef detail::tvec1<f64, defaultp> f64vec1;
-
667 
-
670  typedef detail::tvec2<f64, defaultp> f64vec2;
-
671 
-
674  typedef detail::tvec3<f64, defaultp> f64vec3;
-
675 
-
678  typedef detail::tvec4<f64, defaultp> f64vec4;
-
679 
-
680 
-
682  // Float matrix types
-
683 
-
686  //typedef detail::tmat1x1<f32> fmat1;
-
687 
-
690  typedef detail::tmat2x2<f32, defaultp> fmat2;
-
691 
-
694  typedef detail::tmat3x3<f32, defaultp> fmat3;
-
695 
-
698  typedef detail::tmat4x4<f32, defaultp> fmat4;
-
699 
-
700 
-
703  //typedef f32 fmat1x1;
-
704 
-
707  typedef detail::tmat2x2<f32, defaultp> fmat2x2;
-
708 
-
711  typedef detail::tmat2x3<f32, defaultp> fmat2x3;
-
712 
-
715  typedef detail::tmat2x4<f32, defaultp> fmat2x4;
-
716 
-
719  typedef detail::tmat3x2<f32, defaultp> fmat3x2;
-
720 
-
723  typedef detail::tmat3x3<f32, defaultp> fmat3x3;
-
724 
-
727  typedef detail::tmat3x4<f32, defaultp> fmat3x4;
-
728 
-
731  typedef detail::tmat4x2<f32, defaultp> fmat4x2;
-
732 
-
735  typedef detail::tmat4x3<f32, defaultp> fmat4x3;
-
736 
-
739  typedef detail::tmat4x4<f32, defaultp> fmat4x4;
-
740 
-
741 
-
744  //typedef detail::tmat1x1<f32, defaultp> f32mat1;
-
745 
-
748  typedef detail::tmat2x2<f32, defaultp> f32mat2;
-
749 
-
752  typedef detail::tmat3x3<f32, defaultp> f32mat3;
-
753 
-
756  typedef detail::tmat4x4<f32, defaultp> f32mat4;
-
757 
-
758 
-
761  //typedef f32 f32mat1x1;
-
762 
-
765  typedef detail::tmat2x2<f32, defaultp> f32mat2x2;
-
766 
-
769  typedef detail::tmat2x3<f32, defaultp> f32mat2x3;
-
770 
-
773  typedef detail::tmat2x4<f32, defaultp> f32mat2x4;
-
774 
-
777  typedef detail::tmat3x2<f32, defaultp> f32mat3x2;
-
778 
-
781  typedef detail::tmat3x3<f32, defaultp> f32mat3x3;
-
782 
-
785  typedef detail::tmat3x4<f32, defaultp> f32mat3x4;
-
786 
-
789  typedef detail::tmat4x2<f32, defaultp> f32mat4x2;
-
790 
-
793  typedef detail::tmat4x3<f32, defaultp> f32mat4x3;
-
794 
-
797  typedef detail::tmat4x4<f32, defaultp> f32mat4x4;
-
798 
-
799 
-
802  //typedef detail::tmat1x1<f64, defaultp> f64mat1;
-
803 
-
806  typedef detail::tmat2x2<f64, defaultp> f64mat2;
-
807 
-
810  typedef detail::tmat3x3<f64, defaultp> f64mat3;
-
811 
-
814  typedef detail::tmat4x4<f64, defaultp> f64mat4;
-
815 
-
816 
-
819  //typedef f64 f64mat1x1;
-
820 
-
823  typedef detail::tmat2x2<f64, defaultp> f64mat2x2;
-
824 
-
827  typedef detail::tmat2x3<f64, defaultp> f64mat2x3;
-
828 
-
831  typedef detail::tmat2x4<f64, defaultp> f64mat2x4;
-
832 
-
835  typedef detail::tmat3x2<f64, defaultp> f64mat3x2;
-
836 
-
839  typedef detail::tmat3x3<f64, defaultp> f64mat3x3;
-
840 
-
843  typedef detail::tmat3x4<f64, defaultp> f64mat3x4;
-
844 
-
847  typedef detail::tmat4x2<f64, defaultp> f64mat4x2;
-
848 
-
851  typedef detail::tmat4x3<f64, defaultp> f64mat4x3;
-
852 
-
855  typedef detail::tmat4x4<f64, defaultp> f64mat4x4;
-
856 
-
857 
-
859  // Quaternion types
-
860 
-
863  typedef detail::tquat<f32, defaultp> f32quat;
-
864 
-
867  typedef detail::tquat<f64, defaultp> f64quat;
-
868 
-
870 }//namespace glm
-
871 
-
872 #include "type_precision.inl"
-
873 
-
874 #endif//GLM_GTC_type_precision
-
highp_i16vec1 i16vec1
Default precision 16 bit signed integer scalar type.
Definition: fwd.hpp:468
-
highp_u16vec1 u16vec1
Default precision 16 bit unsigned integer scalar type.
Definition: fwd.hpp:1071
-
detail::int8 mediump_int8_t
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:196
-
highp_f32mat4x3 fmat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2397
-
detail::uint8 highp_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:845
-
highp_f32vec1 fvec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2353
-
highp_u8vec3 u8vec3
Default precision 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:999
-
detail::int8 int8
8 bit signed integer type.
Definition: type_int.hpp:89
-
highp_i64vec2 i64vec2
Default precision 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:710
-
highp_u64vec3 u64vec3
Default precision 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1317
-
detail::uint16 mediump_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:815
-
detail::uint64 lowp_uint64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:739
-
detail::uint32 mediump_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:787
-
detail::uint32 uint32
32 bit unsigned integer type.
Definition: type_int.hpp:96
-
detail::int16 int16
16 bit signed integer type.
Definition: type_int.hpp:90
-
highp_i32vec2 i32vec2
Default precision 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:551
-
detail::uint8 lowp_uint8_t
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:744
-
float float32
Default 32 bit single-precision floating-point scalar.
Definition: type_float.hpp:81
-
highp_u16vec3 u16vec3
Default precision 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1079
-
detail::int32 highp_int32
High precision 32 bit signed integer type.
Definition: fwd.hpp:236
-
detail::uint8 uint8_t
8 bit unsigned integer type.
Definition: fwd.hpp:895
-
highp_f32vec3 f32vec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2431
-
highp_u64vec1 u64vec1
Default precision 64 bit unsigned integer scalar type.
Definition: fwd.hpp:1309
-
detail::int16 highp_int16_t
High precision 16 bit signed integer type.
Definition: fwd.hpp:248
-
highp_u8vec4 u8vec4
Default precision 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1003
-
detail::int64 mediump_int64_t
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:208
-
detail::int32 lowp_int32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:140
-
detail::int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:305
-
highp_float32_t f32
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1523
-
detail::uint32 uint32_t
32 bit unsigned integer type.
Definition: fwd.hpp:903
-
detail::uint8 u8
8 bit unsigned integer type.
Definition: fwd.hpp:911
-
detail::int64 int64
64 bit signed integer type.
Definition: type_int.hpp:92
-
detail::uint16 lowp_u16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:765
-
highp_float32_t float32_t
Default 32 bit single-precision floating-point scalar.
Definition: fwd.hpp:1515
-
detail::int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:252
-
highp_f32vec2 fvec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2357
-
highp_i16vec2 i16vec2
Default precision 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:472
-
detail::uint32 mediump_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:803
-
detail::uint32 highp_uint32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:837
-
detail::uint16 mediump_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:783
-
detail::uint16 lowp_uint16_t
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:748
-
detail::int16 mediump_int16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:184
-
highp_f64mat3x4 f64mat3x4
Default double-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2566
-
detail::uint8 mediump_uint8_t
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:795
-
detail::int32 i32
32 bit signed integer type.
Definition: fwd.hpp:317
-
highp_f64vec1 f64vec1
Default double-precision floating-point vector of 1 components.
Definition: fwd.hpp:2530
-
detail::int8 lowp_int8_t
Low precision 8 bit signed integer type.
Definition: fwd.hpp:148
-
detail::uint16 highp_uint16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:833
-
detail::uint64 mediump_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:823
-
detail::uint64 uint64_t
64 bit unsigned integer type.
Definition: fwd.hpp:907
-
highp_i64vec1 i64vec1
Default precision 64 bit signed integer scalar type.
Definition: fwd.hpp:706
-
detail::int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:297
-
highp_f32vec2 f32vec2
Default single-precision floating-point vector of 2 components.
Definition: fwd.hpp:2427
-
detail::uint16 highp_u16
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:865
-
highp_f64mat4x4 f64mat4x4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2578
-
highp_f64mat4x2 f64mat4x2
Default double-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2570
-
highp_f32vec3 fvec3
Default single-precision floating-point vector of 3 components.
Definition: fwd.hpp:2361
-
detail::int64 i64
64 bit signed integer type.
Definition: fwd.hpp:321
-
detail::int32 mediump_int32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:188
-
f32mat4x4 f32mat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2483
-
detail::int64 lowp_i64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:176
-
detail::uint64 uint64
64 bit unsigned integer type.
Definition: type_int.hpp:97
-
detail::int64 highp_int64
High precision 64 bit signed integer type.
Definition: fwd.hpp:240
-
detail::uint32 highp_uint32_t
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:853
-
detail::int16 mediump_int16_t
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:200
-
detail::int16 lowp_int16_t
Low precision 16 bit signed integer type.
Definition: fwd.hpp:152
-
highp_i8vec4 i8vec4
Default precision 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:400
-
detail::int32 mediump_int32_t
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:204
-
highp_f32mat4x3 f32mat4x3
Default single-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2467
-
detail::uint16 lowp_uint16
Low precision 16 bit unsigned integer type.
Definition: fwd.hpp:731
-
highp_f32mat3x4 f32mat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2459
-
detail::int64 mediump_int64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:192
-
highp_u32vec2 u32vec2
Default precision 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1154
-
detail::int32 lowp_int32_t
Low precision 32 bit signed integer type.
Definition: fwd.hpp:156
-
highp_f64mat2x3 f64mat2x3
Default double-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2550
-
detail::uint16 highp_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:849
-
highp_f32vec4 f32vec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2435
-
f64mat3x3 f64mat3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2586
-
detail::uint64 highp_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:841
-
detail::uint64 highp_u64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:873
-
detail::uint8 lowp_uint8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:727
-
highp_i16vec3 i16vec3
Default precision 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:476
-
detail::int16 i16
16 bit signed integer type.
Definition: fwd.hpp:313
-
detail::uint64 lowp_u64
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:773
-
detail::uint64 lowp_uint64_t
Low precision 64 bit unsigned integer type.
Definition: fwd.hpp:756
-
detail::int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:293
-
highp_f64vec3 f64vec3
Default double-precision floating-point vector of 3 components.
Definition: fwd.hpp:2538
-
fmat4x4 fmat4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2413
-
detail::uint16 uint16_t
16 bit unsigned integer type.
Definition: fwd.hpp:899
-
detail::uint8 lowp_u8
Low precision 8 bit unsigned integer type.
Definition: fwd.hpp:761
-
detail::int8 i8
8 bit signed integer type.
Definition: fwd.hpp:309
-
highp_f32mat4x2 f32mat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2463
-
detail::uint32 lowp_uint32_t
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:752
-
detail::int32 int32
32 bit signed integer type.
Definition: type_int.hpp:91
-
highp_i64vec4 i64vec4
Default precision 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:718
-
f64mat4x4 f64mat4
Default double-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2590
-
highp_f64mat2x4 f64mat2x4
Default double-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2554
-
highp_f32mat4x2 fmat4x2
Default single-precision floating-point 4x2 matrix.
Definition: fwd.hpp:2393
-
highp_f32mat2x2 fmat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2369
-
detail::int32 highp_i32
High precision 32 bit signed integer type.
Definition: fwd.hpp:268
-
fmat2x2 fmat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2405
-
highp_u64vec2 u64vec2
Default precision 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1313
-
detail::int64 highp_int64_t
High precision 64 bit signed integer type.
Definition: fwd.hpp:256
-
detail::int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:301
-
highp_f32mat3x2 f32mat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2451
-
highp_f64mat4x3 f64mat4x3
Default double-precision floating-point 4x3 matrix.
Definition: fwd.hpp:2574
-
detail::int64 lowp_int64_t
Low precision 64 bit signed integer type.
Definition: fwd.hpp:160
-
detail::int8 mediump_int8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:180
-
detail::uint32 highp_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:869
-
highp_u16vec4 u16vec4
Default precision 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1083
-
detail::int16 lowp_int16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:136
-
detail::uint64 mediump_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:807
-
highp_u16vec2 u16vec2
Default precision 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:1075
-
detail::uint64 u64
64 bit unsigned integer type.
Definition: fwd.hpp:923
-
f64mat2x2 f64mat2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2582
-
highp_u64vec4 u64vec4
Default precision 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1321
-
detail::uint8 mediump_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:811
-
highp_f32mat4x4 f32mat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2471
-
highp_f32mat2x3 fmat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2373
-
highp_f32mat4x4 fmat4x4
Default single-precision floating-point 4x4 matrix.
Definition: fwd.hpp:2401
-
highp_u8vec2 u8vec2
Default precision 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:995
-
highp_u32vec3 u32vec3
Default precision 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:1158
-
detail::uint8 uint8
8 bit unsigned integer type.
Definition: type_int.hpp:94
-
detail::int8 lowp_int8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:132
-
detail::uint32 mediump_u32
Medium precision 32 bit unsigned integer type.
Definition: fwd.hpp:819
-
detail::uint32 lowp_uint32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:735
-
detail::int32 lowp_i32
Low precision 32 bit signed integer type.
Definition: fwd.hpp:172
-
detail::uint32 u32
32 bit unsigned integer type.
Definition: fwd.hpp:919
-
highp_i8vec2 i8vec2
Default precision 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:392
-
highp_i32vec3 i32vec3
Default precision 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:555
-
highp_f64mat2x2 f64mat2x2
Default double-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2546
-
highp_f32vec1 f32vec1
Default single-precision floating-point vector of 1 components.
Definition: fwd.hpp:2423
-
highp_f32mat2x4 fmat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2377
-
detail::int64 highp_i64
High precision 64 bit signed integer type.
Definition: fwd.hpp:272
-
highp_float64_t float64_t
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1519
-
f32mat3x3 f32mat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2479
-
detail::int8 highp_i8
High precision 8 bit signed integer type.
Definition: fwd.hpp:260
-
highp_i8vec3 i8vec3
Default precision 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:396
-
detail::int32 mediump_i32
Medium precision 32 bit signed integer type.
Definition: fwd.hpp:220
-
highp_f32quat f32quat
Default single-precision floating-point quaternion.
Definition: fwd.hpp:2487
-
highp_u8vec1 u8vec1
Default precision 8 bit unsigned integer scalar type.
Definition: fwd.hpp:991
-
detail::uint64 mediump_uint64
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:791
-
highp_i32vec1 i32vec1
Default precision 32 bit signed integer scalar type.
Definition: fwd.hpp:547
-
highp_u32vec4 u32vec4
Default precision 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:1162
-
detail::uint8 highp_u8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:861
-
highp_f32mat2x2 f32mat2x2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2439
-
highp_i32vec4 i32vec4
Default precision 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:559
-
detail::uint8 mediump_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:779
-
highp_i16vec4 i16vec4
Default precision 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:480
-
highp_float64_t f64
Default 64 bit double-precision floating-point scalar.
Definition: fwd.hpp:1527
-
detail::int8 mediump_i8
Medium precision 8 bit signed integer type.
Definition: fwd.hpp:212
-
detail::int64 mediump_i64
Medium precision 64 bit signed integer type.
Definition: fwd.hpp:224
-
detail::int16 highp_int16
High precision 16 bit signed integer type.
Definition: fwd.hpp:232
-
highp_f64vec2 f64vec2
Default double-precision floating-point vector of 2 components.
Definition: fwd.hpp:2534
-
highp_i8vec1 i8vec1
Default precision 8 bit signed integer scalar type.
Definition: fwd.hpp:388
-
highp_f64mat3x2 f64mat3x2
Default double-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2558
-
detail::uint32 lowp_u32
Low precision 32 bit unsigned integer type.
Definition: fwd.hpp:769
-
detail::int16 highp_i16
High precision 16 bit signed integer type.
Definition: fwd.hpp:264
-
detail::int8 highp_int8
High precision 8 bit signed integer type.
Definition: fwd.hpp:228
-
highp_u32vec1 u32vec1
Default precision 32 bit unsigned integer scalar type.
Definition: fwd.hpp:1150
-
detail::uint16 u16
16 bit unsigned integer type.
Definition: fwd.hpp:915
-
fmat3x3 fmat3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2409
-
detail::int16 lowp_i16
Low precision 16 bit signed integer type.
Definition: fwd.hpp:168
-
highp_f32mat2x3 f32mat2x3
Default single-precision floating-point 2x3 matrix.
Definition: fwd.hpp:2443
-
detail::uint16 uint16
16 bit unsigned integer type.
Definition: type_int.hpp:95
-
highp_f32vec4 fvec4
Default single-precision floating-point vector of 4 components.
Definition: fwd.hpp:2365
-
highp_f64quat f64quat
Default double-precision floating-point quaternion.
Definition: fwd.hpp:2594
-
detail::int8 highp_int8_t
High precision 8 bit signed integer type.
Definition: fwd.hpp:244
-
highp_f32mat2x4 f32mat2x4
Default single-precision floating-point 2x4 matrix.
Definition: fwd.hpp:2447
-
f32mat2x2 f32mat2
Default single-precision floating-point 2x2 matrix.
Definition: fwd.hpp:2475
-
highp_f64vec4 f64vec4
Default double-precision floating-point vector of 4 components.
Definition: fwd.hpp:2542
-
detail::int64 lowp_int64
Low precision 64 bit signed integer type.
Definition: fwd.hpp:144
-
detail::uint64 highp_uint64_t
Medium precision 64 bit unsigned integer type.
Definition: fwd.hpp:857
-
double float64
Default 64 bit double-precision floating-point scalar.
Definition: type_float.hpp:82
-
highp_f32mat3x3 fmat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2385
-
detail::uint8 highp_uint8
Medium precision 8 bit unsigned integer type.
Definition: fwd.hpp:829
-
detail::int8 lowp_i8
Low precision 8 bit signed integer type.
Definition: fwd.hpp:164
-
highp_f32mat3x3 f32mat3x3
Default single-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2455
-
highp_f64mat3x3 f64mat3x3
Default double-precision floating-point 3x3 matrix.
Definition: fwd.hpp:2562
-
highp_f32mat3x4 fmat3x4
Default single-precision floating-point 3x4 matrix.
Definition: fwd.hpp:2389
-
highp_f32mat3x2 fmat3x2
Default single-precision floating-point 3x2 matrix.
Definition: fwd.hpp:2381
-
detail::int16 mediump_i16
Medium precision 16 bit signed integer type.
Definition: fwd.hpp:216
-
highp_i64vec3 i64vec3
Default precision 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:714
-
detail::uint16 mediump_uint16_t
Medium precision 16 bit unsigned integer type.
Definition: fwd.hpp:799
-
- - - - diff --git a/3party/glm/doc/api/a00133.html b/3party/glm/doc/api/a00133.html deleted file mode 100755 index 5b8d6f5dcb..0000000000 --- a/3party/glm/doc/api/a00133.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - -GLM: type_ptr.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
type_ptr.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_type_ptr

-
Date
2009-05-06 / 2011-06-05
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-gtc_half_float (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file type_ptr.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00133_source.html b/3party/glm/doc/api/a00133_source.html deleted file mode 100755 index 1a3994f217..0000000000 --- a/3party/glm/doc/api/a00133_source.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - -GLM: type_ptr.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_ptr.hpp
-
-
-Go to the documentation of this file.
1 
-
59 #ifndef GLM_GTC_type_ptr
-
60 #define GLM_GTC_type_ptr
-
61 
-
62 // Dependency:
-
63 #include "../gtc/quaternion.hpp"
-
64 #include "../vec2.hpp"
-
65 #include "../vec3.hpp"
-
66 #include "../vec4.hpp"
-
67 #include "../mat2x2.hpp"
-
68 #include "../mat2x3.hpp"
-
69 #include "../mat2x4.hpp"
-
70 #include "../mat3x2.hpp"
-
71 #include "../mat3x3.hpp"
-
72 #include "../mat3x4.hpp"
-
73 #include "../mat4x2.hpp"
-
74 #include "../mat4x3.hpp"
-
75 #include "../mat4x4.hpp"
-
76 #include <cstring>
-
77 
-
78 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
79 # pragma message("GLM: GLM_GTC_type_ptr extension included")
-
80 #endif
-
81 
-
82 namespace glm
-
83 {
-
86 
-
89  template<typename genType>
-
90  GLM_FUNC_DECL typename genType::value_type const * value_ptr(genType const & vec);
-
91 
-
94  template<typename T>
-
95  GLM_FUNC_DECL detail::tvec2<T, defaultp> make_vec2(T const * const ptr);
-
96 
-
99  template<typename T>
-
100  GLM_FUNC_DECL detail::tvec3<T, defaultp> make_vec3(T const * const ptr);
-
101 
-
104  template<typename T>
-
105  GLM_FUNC_DECL detail::tvec4<T, defaultp> make_vec4(T const * const ptr);
-
106 
-
109  template<typename T>
-
110  GLM_FUNC_DECL detail::tmat2x2<T, defaultp> make_mat2x2(T const * const ptr);
-
111 
-
114  template<typename T>
-
115  GLM_FUNC_DECL detail::tmat2x3<T, defaultp> make_mat2x3(T const * const ptr);
-
116 
-
119  template<typename T>
-
120  GLM_FUNC_DECL detail::tmat2x4<T, defaultp> make_mat2x4(T const * const ptr);
-
121 
-
124  template<typename T>
-
125  GLM_FUNC_DECL detail::tmat3x2<T, defaultp> make_mat3x2(T const * const ptr);
-
126 
-
129  template<typename T>
-
130  GLM_FUNC_DECL detail::tmat3x3<T, defaultp> make_mat3x3(T const * const ptr);
-
131 
-
134  template<typename T>
-
135  GLM_FUNC_DECL detail::tmat3x4<T, defaultp> make_mat3x4(T const * const ptr);
-
136 
-
139  template<typename T>
-
140  GLM_FUNC_DECL detail::tmat4x2<T, defaultp> make_mat4x2(
-
141  T const * const ptr);
-
142 
-
145  template<typename T>
-
146  GLM_FUNC_DECL detail::tmat4x3<T, defaultp> make_mat4x3(T const * const ptr);
-
147 
-
150  template<typename T>
-
151  GLM_FUNC_DECL detail::tmat4x4<T, defaultp> make_mat4x4(T const * const ptr);
-
152 
-
155  template<typename T>
-
156  GLM_FUNC_DECL detail::tmat2x2<T, defaultp> make_mat2(T const * const ptr);
-
157 
-
160  template<typename T>
-
161  GLM_FUNC_DECL detail::tmat3x3<T, defaultp> make_mat3(T const * const ptr);
-
162 
-
165  template<typename T>
-
166  GLM_FUNC_DECL detail::tmat4x4<T, defaultp> make_mat4(T const * const ptr);
-
167 
-
170  template<typename T>
-
171  GLM_FUNC_DECL detail::tquat<T, defaultp> make_quat(T const * const ptr);
-
172 
-
174 }//namespace glm
-
175 
-
176 #include "type_ptr.inl"
-
177 
-
178 #endif//GLM_GTC_type_ptr
-
179 
-
GLM_FUNC_DECL detail::tmat3x3< T, defaultp > make_mat3x3(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tquat< T, defaultp > make_quat(T const *const ptr)
Build a quaternion from a pointer.
-
GLM_FUNC_DECL detail::tmat3x3< T, defaultp > make_mat3(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat2x2< T, defaultp > make_mat2(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat3x2< T, defaultp > make_mat3x2(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat2x2< T, defaultp > make_mat2x2(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat3x4< T, defaultp > make_mat3x4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat4x2< T, defaultp > make_mat4x2(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > make_mat4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat2x4< T, defaultp > make_mat2x4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tvec3< T, defaultp > make_vec3(T const *const ptr)
Build a vector from a pointer.
-
GLM_FUNC_DECL detail::tvec2< T, defaultp > make_vec2(T const *const ptr)
Build a vector from a pointer.
-
GLM_FUNC_DECL detail::tvec4< T, defaultp > make_vec4(T const *const ptr)
Build a vector from a pointer.
-
GLM_FUNC_DECL detail::tmat4x3< T, defaultp > make_mat4x3(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &vec)
Return the constant address to the data of the input parameter.
-
GLM_FUNC_DECL detail::tmat4x4< T, defaultp > make_mat4x4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL detail::tmat2x3< T, defaultp > make_mat2x3(T const *const ptr)
Build a matrix from a pointer.
-
- - - - diff --git a/3party/glm/doc/api/a00134_source.html b/3party/glm/doc/api/a00134_source.html deleted file mode 100755 index a5e28fc5b0..0000000000 --- a/3party/glm/doc/api/a00134_source.html +++ /dev/null @@ -1,342 +0,0 @@ - - - - - - -GLM: type_vec.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_vec.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_vec
-
30 #define glm_core_type_vec
-
31 
-
32 #include "precision.hpp"
-
33 #include "type_int.hpp"
-
34 
-
35 namespace glm{
-
36 namespace detail
-
37 {
-
38  template <typename T, precision P> struct tvec1;
-
39  template <typename T, precision P> struct tvec2;
-
40  template <typename T, precision P> struct tvec3;
-
41  template <typename T, precision P> struct tvec4;
-
42 }//namespace detail
-
43 
-
44  typedef detail::tvec1<float, highp> highp_vec1_t;
-
45  typedef detail::tvec1<float, mediump> mediump_vec1_t;
-
46  typedef detail::tvec1<float, lowp> lowp_vec1_t;
-
47  typedef detail::tvec1<int, highp> highp_ivec1_t;
-
48  typedef detail::tvec1<int, mediump> mediump_ivec1_t;
-
49  typedef detail::tvec1<int, lowp> lowp_ivec1_t;
-
50  typedef detail::tvec1<uint, highp> highp_uvec1_t;
-
51  typedef detail::tvec1<uint, mediump> mediump_uvec1_t;
-
52  typedef detail::tvec1<uint, lowp> lowp_uvec1_t;
-
53  typedef detail::tvec1<bool, highp> highp_bvec1_t;
-
54  typedef detail::tvec1<bool, mediump> mediump_bvec1_t;
-
55  typedef detail::tvec1<bool, lowp> lowp_bvec1_t;
-
56 
-
59 
-
65  typedef detail::tvec2<float, highp> highp_vec2;
-
66 
-
72  typedef detail::tvec2<float, mediump> mediump_vec2;
-
73 
-
79  typedef detail::tvec2<float, lowp> lowp_vec2;
-
80 
-
86  typedef detail::tvec2<double, highp> highp_dvec2;
-
87 
-
93  typedef detail::tvec2<double, mediump> mediump_dvec2;
-
94 
-
100  typedef detail::tvec2<double, lowp> lowp_dvec2;
-
101 
-
107  typedef detail::tvec2<int, highp> highp_ivec2;
-
108 
-
114  typedef detail::tvec2<int, mediump> mediump_ivec2;
-
115 
-
121  typedef detail::tvec2<int, lowp> lowp_ivec2;
-
122 
-
128  typedef detail::tvec2<uint, highp> highp_uvec2;
-
129 
-
135  typedef detail::tvec2<uint, mediump> mediump_uvec2;
-
136 
-
142  typedef detail::tvec2<uint, lowp> lowp_uvec2;
-
143 
-
149  typedef detail::tvec2<bool, highp> highp_bvec2;
-
150 
-
156  typedef detail::tvec2<bool, mediump> mediump_bvec2;
-
157 
-
163  typedef detail::tvec2<bool, lowp> lowp_bvec2;
-
164 
-
166 
-
167 
-
170 
-
176  typedef detail::tvec3<float, highp> highp_vec3;
-
177 
-
183  typedef detail::tvec3<float, mediump> mediump_vec3;
-
184 
-
190  typedef detail::tvec3<float, lowp> lowp_vec3;
-
191 
-
197  typedef detail::tvec3<double, highp> highp_dvec3;
-
198 
-
204  typedef detail::tvec3<double, mediump> mediump_dvec3;
-
205 
-
211  typedef detail::tvec3<double, lowp> lowp_dvec3;
-
212 
-
218  typedef detail::tvec3<int, highp> highp_ivec3;
-
219 
-
225  typedef detail::tvec3<int, mediump> mediump_ivec3;
-
226 
-
232  typedef detail::tvec3<int, lowp> lowp_ivec3;
-
233 
-
239  typedef detail::tvec3<uint, highp> highp_uvec3;
-
240 
-
246  typedef detail::tvec3<uint, mediump> mediump_uvec3;
-
247 
-
253  typedef detail::tvec3<uint, lowp> lowp_uvec3;
-
254 
-
259  typedef detail::tvec3<bool, highp> highp_bvec3;
-
260 
-
265  typedef detail::tvec3<bool, mediump> mediump_bvec3;
-
266 
-
271  typedef detail::tvec3<bool, lowp> lowp_bvec3;
-
272 
-
274 
-
277 
-
282  typedef detail::tvec4<float, highp> highp_vec4;
-
283 
-
288  typedef detail::tvec4<float, mediump> mediump_vec4;
-
289 
-
294  typedef detail::tvec4<float, lowp> lowp_vec4;
-
295 
-
300  typedef detail::tvec4<double, highp> highp_dvec4;
-
301 
-
306  typedef detail::tvec4<double, mediump> mediump_dvec4;
-
307 
-
312  typedef detail::tvec4<double, lowp> lowp_dvec4;
-
313 
-
318  typedef detail::tvec4<int, highp> highp_ivec4;
-
319 
-
324  typedef detail::tvec4<int, mediump> mediump_ivec4;
-
325 
-
330  typedef detail::tvec4<int, lowp> lowp_ivec4;
-
331 
-
336  typedef detail::tvec4<uint, highp> highp_uvec4;
-
337 
-
342  typedef detail::tvec4<uint, mediump> mediump_uvec4;
-
343 
-
348  typedef detail::tvec4<uint, lowp> lowp_uvec4;
-
349 
-
354  typedef detail::tvec4<bool, highp> highp_bvec4;
-
355 
-
360  typedef detail::tvec4<bool, mediump> mediump_bvec4;
-
361 
-
366  typedef detail::tvec4<bool, lowp> lowp_bvec4;
-
367 
-
369 
-
372 
-
374  // Default float definition
-
375 
-
376 #if(defined(GLM_PRECISION_LOWP_FLOAT))
-
377  typedef lowp_vec2 vec2;
-
378  typedef lowp_vec3 vec3;
-
379  typedef lowp_vec4 vec4;
-
380 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
381  typedef mediump_vec2 vec2;
-
382  typedef mediump_vec3 vec3;
-
383  typedef mediump_vec4 vec4;
-
384 #else //defined(GLM_PRECISION_HIGHP_FLOAT)
-
385  typedef highp_vec2 vec2;
-
389 
-
393  typedef highp_vec3 vec3;
-
394 
-
398  typedef highp_vec4 vec4;
-
399 #endif//GLM_PRECISION
-
400 
-
402  // Default double definition
-
403 
-
404 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
-
405  typedef lowp_dvec2 dvec2;
-
406  typedef lowp_dvec3 dvec3;
-
407  typedef lowp_dvec4 dvec4;
-
408 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
-
409  typedef mediump_dvec2 dvec2;
-
410  typedef mediump_dvec3 dvec3;
-
411  typedef mediump_dvec4 dvec4;
-
412 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
-
413  typedef highp_dvec2 dvec2;
-
417 
- -
422 
- -
427 #endif//GLM_PRECISION
-
428 
-
430  // Signed integer definition
-
431 
-
432 #if(defined(GLM_PRECISION_LOWP_INT))
-
433  typedef lowp_ivec2 ivec2;
-
434  typedef lowp_ivec3 ivec3;
-
435  typedef lowp_ivec4 ivec4;
-
436 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
437  typedef mediump_ivec2 ivec2;
-
438  typedef mediump_ivec3 ivec3;
-
439  typedef mediump_ivec4 ivec4;
-
440 #else //defined(GLM_PRECISION_HIGHP_INT)
-
441  typedef highp_ivec2 ivec2;
-
445 
- -
450 
- -
455 #endif//GLM_PRECISION
-
456 
-
458  // Unsigned integer definition
-
459 
-
460 #if(defined(GLM_PRECISION_LOWP_UINT))
-
461  typedef lowp_uvec2 uvec2;
-
462  typedef lowp_uvec3 uvec3;
-
463  typedef lowp_uvec4 uvec4;
-
464 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
-
465  typedef mediump_uvec2 uvec2;
-
466  typedef mediump_uvec3 uvec3;
-
467  typedef mediump_uvec4 uvec4;
-
468 #else //defined(GLM_PRECISION_HIGHP_UINT)
-
469  typedef highp_uvec2 uvec2;
-
473 
- -
478 
- -
483 #endif//GLM_PRECISION
-
484 
-
486  // Boolean definition
-
487 
-
488 #if(defined(GLM_PRECISION_LOWP_BOOL))
-
489  typedef lowp_bvec2 bvec2;
-
490  typedef lowp_bvec3 bvec3;
-
491  typedef lowp_bvec4 bvec4;
-
492 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
-
493  typedef mediump_bvec2 bvec2;
-
494  typedef mediump_bvec3 bvec3;
-
495  typedef mediump_bvec4 bvec4;
-
496 #else //defined(GLM_PRECISION_HIGHP_BOOL)
-
497  typedef highp_bvec2 bvec2;
-
501 
- -
506 
- -
511 #endif//GLM_PRECISION
-
512 
-
514 }//namespace glm
-
515 
-
516 #endif//glm_core_type_vec
-
highp_ivec4 ivec4
4 components vector of signed integer numbers.
Definition: type_vec.hpp:454
-
detail::tvec4< bool, highp > highp_bvec4
4 components vector of high precision bool numbers.
Definition: type_vec.hpp:354
-
detail::tvec2< uint, highp > highp_uvec2
2 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:128
-
detail::tvec4< uint, highp > highp_uvec4
4 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:336
-
highp_bvec3 bvec3
3 components vector of boolean.
Definition: type_vec.hpp:505
-
detail::tvec3< int, mediump > mediump_ivec3
3 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:225
-
highp_bvec2 bvec2
2 components vector of boolean.
Definition: type_vec.hpp:500
-
highp_vec3 vec3
3 components vector of floating-point numbers.
Definition: type_vec.hpp:393
-
highp_dvec3 dvec3
3 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:421
-
detail::tvec2< int, mediump > mediump_ivec2
2 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:114
-
detail::tvec4< double, lowp > lowp_dvec4
4 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:312
-
highp_ivec2 ivec2
2 components vector of signed integer numbers.
Definition: type_vec.hpp:444
-
detail::tvec2< uint, lowp > lowp_uvec2
2 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:142
-
highp_vec4 vec4
4 components vector of floating-point numbers.
Definition: type_vec.hpp:398
-
detail::tvec4< float, mediump > mediump_vec4
4 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:288
-
detail::tvec2< bool, mediump > mediump_bvec2
2 components vector of medium precision bool numbers.
Definition: type_vec.hpp:156
-
detail::tvec4< bool, lowp > lowp_bvec4
4 components vector of low precision bool numbers.
Definition: type_vec.hpp:366
-
detail::tvec3< uint, lowp > lowp_uvec3
3 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:253
-
detail::tvec3< float, lowp > lowp_vec3
3 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:190
-
detail::tvec4< int, lowp > lowp_ivec4
4 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:330
-
detail::tvec2< bool, highp > highp_bvec2
2 components vector of high precision bool numbers.
Definition: type_vec.hpp:149
-
detail::tvec4< double, highp > highp_dvec4
4 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:300
-
detail::tvec4< uint, lowp > lowp_uvec4
4 components vector of low precision unsigned integer numbers.
Definition: type_vec.hpp:348
-
detail::tvec3< float, highp > highp_vec3
3 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:176
-
highp_dvec2 dvec2
2 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:416
-
detail::tvec3< bool, mediump > mediump_bvec3
3 components vector of medium precision bool numbers.
Definition: type_vec.hpp:265
-
detail::tvec4< double, mediump > mediump_dvec4
4 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:306
-
detail::tvec2< double, highp > highp_dvec2
2 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:86
-
detail::tvec3< uint, highp > highp_uvec3
3 components vector of high precision unsigned integer numbers.
Definition: type_vec.hpp:239
-
highp_ivec3 ivec3
3 components vector of signed integer numbers.
Definition: type_vec.hpp:449
-
detail::tvec3< uint, mediump > mediump_uvec3
3 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:246
-
detail::tvec4< bool, mediump > mediump_bvec4
4 components vector of medium precision bool numbers.
Definition: type_vec.hpp:360
-
detail::tvec3< bool, lowp > lowp_bvec3
3 components vector of low precision bool numbers.
Definition: type_vec.hpp:271
-
detail::tvec3< double, highp > highp_dvec3
3 components vector of high double-precision floating-point numbers.
Definition: type_vec.hpp:197
-
highp_uvec3 uvec3
3 components vector of unsigned integer numbers.
Definition: type_vec.hpp:477
-
highp_dvec4 dvec4
4 components vector of double-precision floating-point numbers.
Definition: type_vec.hpp:426
-
detail::tvec2< uint, mediump > mediump_uvec2
2 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:135
-
detail::tvec2< int, lowp > lowp_ivec2
2 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:121
-
detail::tvec2< bool, lowp > lowp_bvec2
2 components vector of low precision bool numbers.
Definition: type_vec.hpp:163
-
detail::tvec4< int, mediump > mediump_ivec4
4 components vector of medium precision signed integer numbers.
Definition: type_vec.hpp:324
-
detail::tvec2< double, lowp > lowp_dvec2
2 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:100
-
detail::tvec2< float, highp > highp_vec2
2 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:65
-
detail::tvec3< double, mediump > mediump_dvec3
3 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:204
-
detail::tvec3< double, lowp > lowp_dvec3
3 components vector of low double-precision floating-point numbers.
Definition: type_vec.hpp:211
-
detail::tvec2< float, lowp > lowp_vec2
2 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:79
-
detail::tvec2< double, mediump > mediump_dvec2
2 components vector of medium double-precision floating-point numbers.
Definition: type_vec.hpp:93
-
highp_uvec4 uvec4
4 components vector of unsigned integer numbers.
Definition: type_vec.hpp:482
-
detail::tvec3< int, lowp > lowp_ivec3
3 components vector of low precision signed integer numbers.
Definition: type_vec.hpp:232
-
highp_uvec2 uvec2
2 components vector of unsigned integer numbers.
Definition: type_vec.hpp:472
-
highp_bvec4 bvec4
4 components vector of boolean.
Definition: type_vec.hpp:510
-
detail::tvec2< int, highp > highp_ivec2
2 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:107
-
detail::tvec4< float, lowp > lowp_vec4
4 components vector of low single-precision floating-point numbers.
Definition: type_vec.hpp:294
-
detail::tvec2< float, mediump > mediump_vec2
2 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:72
-
highp_vec2 vec2
2 components vector of floating-point numbers.
Definition: type_vec.hpp:388
-
detail::tvec3< int, highp > highp_ivec3
3 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:218
-
detail::tvec3< bool, highp > highp_bvec3
3 components vector of high precision bool numbers.
Definition: type_vec.hpp:259
-
detail::tvec4< float, highp > highp_vec4
4 components vector of high single-precision floating-point numbers.
Definition: type_vec.hpp:282
-
detail::tvec4< int, highp > highp_ivec4
4 components vector of high precision signed integer numbers.
Definition: type_vec.hpp:318
-
detail::tvec4< uint, mediump > mediump_uvec4
4 components vector of medium precision unsigned integer numbers.
Definition: type_vec.hpp:342
-
detail::tvec3< float, mediump > mediump_vec3
3 components vector of medium single-precision floating-point numbers.
Definition: type_vec.hpp:183
-
- - - - diff --git a/3party/glm/doc/api/a00135_source.html b/3party/glm/doc/api/a00135_source.html deleted file mode 100755 index dd104ce6f1..0000000000 --- a/3party/glm/doc/api/a00135_source.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - -GLM: type_vec1.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_vec1.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_gentype1
-
30 #define glm_core_type_gentype1
-
31 
-
32 #include "../fwd.hpp"
-
33 #include "type_vec.hpp"
-
34 #ifdef GLM_SWIZZLE
-
35 # if GLM_HAS_ANONYMOUS_UNION
-
36 # include "_swizzle.hpp"
-
37 # else
-
38 # include "_swizzle_func.hpp"
-
39 # endif
-
40 #endif //GLM_SWIZZLE
-
41 #if(GLM_HAS_INITIALIZER_LISTS)
-
42 # include <initializer_list>
-
43 #endif //GLM_HAS_INITIALIZER_LISTS
-
44 #include <cstddef>
-
45 
-
46 namespace glm{
-
47 namespace detail
-
48 {
-
49  template <typename T, precision P>
-
50  struct tvec1
-
51  {
-
53  // Implementation detail
-
54 
-
55  enum ctor{_null};
-
56 
-
57  typedef tvec1<T, P> type;
-
58  typedef tvec1<bool, P> bool_type;
-
59  typedef T value_type;
-
60 
-
62  // Helper
-
63 
-
64  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
65 
-
67  // Data
-
68 
-
69  union {T x, r, s;};
-
70 
-
72  // Accesses
-
73 
-
74  GLM_FUNC_DECL T & operator[](length_t i);
-
75  GLM_FUNC_DECL T const & operator[](length_t i) const;
-
76 
-
78  // Implicit basic constructors
-
79 
-
80  GLM_FUNC_DECL tvec1();
-
81  GLM_FUNC_DECL tvec1(tvec1<T, P> const & v);
-
82  template <precision Q>
-
83  GLM_FUNC_DECL tvec1(tvec1<T, Q> const & v);
-
84 
-
85 #if(GLM_HAS_INITIALIZER_LISTS)
-
86  template <typename U>
-
87  GLM_FUNC_DECL tvec1(std::initializer_list<U> const & v);
-
88 #endif//GLM_HAS_INITIALIZER_LISTS
-
89 
-
91  // Explicit basic constructors
-
92 
-
93  GLM_FUNC_DECL explicit tvec1(
-
94  ctor);
-
95  GLM_FUNC_DECL tvec1(
-
96  T const & s);
-
97 
-
99  // Conversion vector constructors
-
100 
-
102  template <typename U, precision Q>
-
103  GLM_FUNC_DECL explicit tvec1(tvec1<U, Q> const & v);
-
105  template <typename U, precision Q>
-
106  GLM_FUNC_DECL explicit tvec1(tvec2<U, Q> const & v);
-
108  template <typename U, precision Q>
-
109  GLM_FUNC_DECL explicit tvec1(tvec3<U, Q> const & v);
-
111  template <typename U, precision Q>
-
112  GLM_FUNC_DECL explicit tvec1(tvec4<U, Q> const & v);
-
113 
-
115  // Unary arithmetic operators
-
116 
-
117  GLM_FUNC_DECL tvec1<T, P> & operator= (tvec1<T, P> const & v);
-
118  template <typename U>
-
119  GLM_FUNC_DECL tvec1<T, P> & operator= (tvec1<U, P> const & v);
-
120 
-
121  template <typename U>
-
122  GLM_FUNC_DECL tvec1<T, P> & operator+=(U const & s);
-
123  template <typename U>
-
124  GLM_FUNC_DECL tvec1<T, P> & operator+=(tvec1<U, P> const & v);
-
125  template <typename U>
-
126  GLM_FUNC_DECL tvec1<T, P> & operator-=(U const & s);
-
127  template <typename U>
-
128  GLM_FUNC_DECL tvec1<T, P> & operator-=(tvec1<U, P> const & v);
-
129  template <typename U>
-
130  GLM_FUNC_DECL tvec1<T, P> & operator*=(U const & s);
-
131  template <typename U>
-
132  GLM_FUNC_DECL tvec1<T, P> & operator*=(tvec1<U, P> const & v);
-
133  template <typename U>
-
134  GLM_FUNC_DECL tvec1<T, P> & operator/=(U const & s);
-
135  template <typename U>
-
136  GLM_FUNC_DECL tvec1<T, P> & operator/=(tvec1<U, P> const & v);
-
137 
-
139  // Increment and decrement operators
-
140 
-
141  GLM_FUNC_DECL tvec1<T, P> & operator++();
-
142  GLM_FUNC_DECL tvec1<T, P> & operator--();
-
143  GLM_FUNC_DECL tvec1<T, P> operator++(int);
-
144  GLM_FUNC_DECL tvec1<T, P> operator--(int);
-
145 
-
147  // Unary bit operators
-
148 
-
149  template <typename U>
-
150  GLM_FUNC_DECL tvec1<T, P> & operator%=(U const & s);
-
151  template <typename U>
-
152  GLM_FUNC_DECL tvec1<T, P> & operator%=(tvec1<U, P> const & v);
-
153  template <typename U>
-
154  GLM_FUNC_DECL tvec1<T, P> & operator&=(U const & s);
-
155  template <typename U>
-
156  GLM_FUNC_DECL tvec1<T, P> & operator&=(tvec1<U, P> const & v);
-
157  template <typename U>
-
158  GLM_FUNC_DECL tvec1<T, P> & operator|=(U const & s);
-
159  template <typename U>
-
160  GLM_FUNC_DECL tvec1<T, P> & operator|=(tvec1<U, P> const & v);
-
161  template <typename U>
-
162  GLM_FUNC_DECL tvec1<T, P> & operator^=(U const & s);
-
163  template <typename U>
-
164  GLM_FUNC_DECL tvec1<T, P> & operator^=(tvec1<U, P> const & v);
-
165  template <typename U>
-
166  GLM_FUNC_DECL tvec1<T, P> & operator<<=(U const & s);
-
167  template <typename U>
-
168  GLM_FUNC_DECL tvec1<T, P> & operator<<=(tvec1<U, P> const & v);
-
169  template <typename U>
-
170  GLM_FUNC_DECL tvec1<T, P> & operator>>=(U const & s);
-
171  template <typename U>
-
172  GLM_FUNC_DECL tvec1<T, P> & operator>>=(tvec1<U, P> const & v);
-
173  };
-
174 
-
175 
-
176  template <typename T, precision P>
-
177  GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v, T const & s);
-
178 
-
179  template <typename T, precision P>
-
180  GLM_FUNC_DECL tvec1<T, P> operator+(T const & s, tvec1<T, P> const & v);
-
181 
-
182  template <typename T, precision P>
-
183  GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
184 
-
185  template <typename T, precision P>
-
186  GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v, T const & s);
-
187 
-
188  template <typename T, precision P>
-
189  GLM_FUNC_DECL tvec1<T, P> operator-(T const & s, tvec1<T, P> const & v);
-
190 
-
191  template <typename T, precision P>
-
192  GLM_FUNC_DECL tvec1<T, P> operator- (tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
193 
-
194  template <typename T, precision P>
-
195  GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v, T const & s);
-
196 
-
197  template <typename T, precision P>
-
198  GLM_FUNC_DECL tvec1<T, P> operator*(T const & s, tvec1<T, P> const & v);
-
199 
-
200  template <typename T, precision P>
-
201  GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
202 
-
203  template <typename T, precision P>
-
204  GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v, T const & s);
-
205 
-
206  template <typename T, precision P>
-
207  GLM_FUNC_DECL tvec1<T, P> operator/(T const & s, tvec1<T, P> const & v);
-
208 
-
209  template <typename T, precision P>
-
210  GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
211 
-
212  template <typename T, precision P>
-
213  GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v);
-
214 
-
215  template <typename T, precision P>
-
216  GLM_FUNC_DECL bool operator==(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
217 
-
218  template <typename T, precision P>
-
219  GLM_FUNC_DECL bool operator!=(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
220 
-
221  template <typename T, precision P>
-
222  GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v, T const & s);
-
223 
-
224  template <typename T, precision P>
-
225  GLM_FUNC_DECL tvec1<T, P> operator%(T const & s, tvec1<T, P> const & v);
-
226 
-
227  template <typename T, precision P>
-
228  GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
229 
-
230  template <typename T, precision P>
-
231  GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v, T const & s);
-
232 
-
233  template <typename T, precision P>
-
234  GLM_FUNC_DECL tvec1<T, P> operator&(T const & s, tvec1<T, P> const & v);
-
235 
-
236  template <typename T, precision P>
-
237  GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
238 
-
239  template <typename T, precision P>
-
240  GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v, T const & s);
-
241 
-
242  template <typename T, precision P>
-
243  GLM_FUNC_DECL tvec1<T, P> operator|(T const & s, tvec1<T, P> const & v);
-
244 
-
245  template <typename T, precision P>
-
246  GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
247 
-
248  template <typename T, precision P>
-
249  GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v, T const & s);
-
250 
-
251  template <typename T, precision P>
-
252  GLM_FUNC_DECL tvec1<T, P> operator^(T const & s, tvec1<T, P> const & v);
-
253 
-
254  template <typename T, precision P>
-
255  GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
256 
-
257  template <typename T, precision P>
-
258  GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v, T const & s);
-
259 
-
260  template <typename T, precision P>
-
261  GLM_FUNC_DECL tvec1<T, P> operator<<(T const & s, tvec1<T, P> const & v);
-
262 
-
263  template <typename T, precision P>
-
264  GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
265 
-
266  template <typename T, precision P>
-
267  GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v, T const & s);
-
268 
-
269  template <typename T, precision P>
-
270  GLM_FUNC_DECL tvec1<T, P> operator>>(T const & s, tvec1<T, P> const & v);
-
271 
-
272  template <typename T, precision P>
-
273  GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
-
274 
-
275  template <typename T, precision P>
-
276  GLM_FUNC_DECL tvec1<T, P> operator~(tvec1<T, P> const & v);
-
277 
-
278 }//namespace detail
-
279 }//namespace glm
-
280 
-
281 #ifndef GLM_EXTERNAL_TEMPLATE
-
282 #include "type_vec1.inl"
-
283 #endif//GLM_EXTERNAL_TEMPLATE
-
284 
-
285 #endif//glm_core_type_gentype1
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00136_source.html b/3party/glm/doc/api/a00136_source.html deleted file mode 100755 index a397831226..0000000000 --- a/3party/glm/doc/api/a00136_source.html +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - -GLM: type_vec2.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_vec2.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_gentype2
-
30 #define glm_core_type_gentype2
-
31 
-
32 //#include "../fwd.hpp"
-
33 #include "type_vec.hpp"
-
34 #ifdef GLM_SWIZZLE
-
35 # if GLM_HAS_ANONYMOUS_UNION
-
36 # include "_swizzle.hpp"
-
37 # else
-
38 # include "_swizzle_func.hpp"
-
39 # endif
-
40 #endif //GLM_SWIZZLE
-
41 #if(GLM_HAS_INITIALIZER_LISTS)
-
42 # include <initializer_list>
-
43 #endif //GLM_HAS_INITIALIZER_LISTS
-
44 #include <cstddef>
-
45 
-
46 namespace glm{
-
47 namespace detail
-
48 {
-
49  template <typename T, precision P>
-
50  struct tvec2
-
51  {
-
53  // Implementation detail
-
54 
-
55  enum ctor{_null};
-
56 
-
57  typedef tvec2<T, P> type;
-
58  typedef tvec2<bool, P> bool_type;
-
59  typedef T value_type;
-
60  typedef int size_type;
-
61 
-
63  // Helper
-
64 
-
65  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
66 
-
68  // Data
-
69 
-
70 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
71  union
-
72  {
-
73  struct{ T x, y; };
-
74  struct{ T r, g; };
-
75  struct{ T s, t; };
-
76 
-
77  _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, x, y)
-
78  _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, r, g)
-
79  _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, s, t)
-
80  _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, x, y)
-
81  _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, r, g)
-
82  _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, s, t)
-
83  _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, x, y)
-
84  _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, r, g)
-
85  _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, s, t)
-
86  };
-
87 # else
-
88  union {T x, r, s;};
-
89  union {T y, g, t;};
-
90 
-
91 # ifdef GLM_SWIZZLE
-
92  GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P, detail::tvec2, detail::tvec2, detail::tvec3, detail::tvec4)
-
93 # endif
-
94 # endif
-
95 
-
97  // Accesses
-
98 
-
99  GLM_FUNC_DECL T & operator[](length_t i);
-
100  GLM_FUNC_DECL T const & operator[](length_t i) const;
-
101 
-
103  // Implicit basic constructors
-
104 
-
105  GLM_FUNC_DECL tvec2();
-
106  GLM_FUNC_DECL tvec2(tvec2<T, P> const & v);
-
107  template <precision Q>
-
108  GLM_FUNC_DECL tvec2(tvec2<T, Q> const & v);
-
109 
-
110 #if(GLM_HAS_INITIALIZER_LISTS)
-
111  template <typename U>
-
112  GLM_FUNC_DECL tvec2(std::initializer_list<U> const & v);
-
113 #endif//GLM_HAS_INITIALIZER_LISTS
-
114 
-
116  // Explicit basic constructors
-
117 
-
118  GLM_FUNC_DECL explicit tvec2(
-
119  ctor);
-
120  GLM_FUNC_DECL explicit tvec2(
-
121  T const & s);
-
122  GLM_FUNC_DECL explicit tvec2(
-
123  T const & s1,
-
124  T const & s2);
-
125 
-
127  // Swizzle constructors
-
128 
-
129 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
130  template <int E0, int E1>
-
131  GLM_FUNC_DECL tvec2(_swizzle<2,T, P, tvec2<T, P>, E0, E1,-1,-2> const & that)
-
132  {
-
133  *this = that();
-
134  }
-
135 # endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
136 
-
138  // Conversion constructors
-
139 
-
141  template <typename U, typename V>
-
142  GLM_FUNC_DECL explicit tvec2(
-
143  U const & x,
-
144  V const & y);
-
145 
-
147  // Conversion vector constructors
-
148 
-
150  template <typename U, precision Q>
-
151  GLM_FUNC_DECL explicit tvec2(tvec2<U, Q> const & v);
-
153  template <typename U, precision Q>
-
154  GLM_FUNC_DECL explicit tvec2(tvec3<U, Q> const & v);
-
156  template <typename U, precision Q>
-
157  GLM_FUNC_DECL explicit tvec2(tvec4<U, Q> const & v);
-
158 
-
160  // Unary arithmetic operators
-
161 
-
162  GLM_FUNC_DECL tvec2<T, P> & operator= (tvec2<T, P> const & v);
-
163  template <typename U>
-
164  GLM_FUNC_DECL tvec2<T, P> & operator= (tvec2<U, P> const & v);
-
165 
-
166  template <typename U>
-
167  GLM_FUNC_DECL tvec2<T, P> & operator+=(U s);
-
168  template <typename U>
-
169  GLM_FUNC_DECL tvec2<T, P> & operator+=(tvec2<U, P> const & v);
-
170  template <typename U>
-
171  GLM_FUNC_DECL tvec2<T, P> & operator-=(U s);
-
172  template <typename U>
-
173  GLM_FUNC_DECL tvec2<T, P> & operator-=(tvec2<U, P> const & v);
-
174  template <typename U>
-
175  GLM_FUNC_DECL tvec2<T, P> & operator*=(U s);
-
176  template <typename U>
-
177  GLM_FUNC_DECL tvec2<T, P> & operator*=(tvec2<U, P> const & v);
-
178  template <typename U>
-
179  GLM_FUNC_DECL tvec2<T, P> & operator/=(U s);
-
180  template <typename U>
-
181  GLM_FUNC_DECL tvec2<T, P> & operator/=(tvec2<U, P> const & v);
-
182 
-
184  // Increment and decrement operators
-
185 
-
186  GLM_FUNC_DECL tvec2<T, P> & operator++();
-
187  GLM_FUNC_DECL tvec2<T, P> & operator--();
-
188  GLM_FUNC_DECL tvec2<T, P> operator++(int);
-
189  GLM_FUNC_DECL tvec2<T, P> operator--(int);
-
190 
-
192  // Unary bit operators
-
193 
-
194  template <typename U>
-
195  GLM_FUNC_DECL tvec2<T, P> & operator%= (U s);
-
196  template <typename U>
-
197  GLM_FUNC_DECL tvec2<T, P> & operator%= (tvec2<U, P> const & v);
-
198  template <typename U>
-
199  GLM_FUNC_DECL tvec2<T, P> & operator&= (U s);
-
200  template <typename U>
-
201  GLM_FUNC_DECL tvec2<T, P> & operator&= (tvec2<U, P> const & v);
-
202  template <typename U>
-
203  GLM_FUNC_DECL tvec2<T, P> & operator|= (U s);
-
204  template <typename U>
-
205  GLM_FUNC_DECL tvec2<T, P> & operator|= (tvec2<U, P> const & v);
-
206  template <typename U>
-
207  GLM_FUNC_DECL tvec2<T, P> & operator^= (U s);
-
208  template <typename U>
-
209  GLM_FUNC_DECL tvec2<T, P> & operator^= (tvec2<U, P> const & v);
-
210  template <typename U>
-
211  GLM_FUNC_DECL tvec2<T, P> & operator<<=(U s);
-
212  template <typename U>
-
213  GLM_FUNC_DECL tvec2<T, P> & operator<<=(tvec2<U, P> const & v);
-
214  template <typename U>
-
215  GLM_FUNC_DECL tvec2<T, P> & operator>>=(U s);
-
216  template <typename U>
-
217  GLM_FUNC_DECL tvec2<T, P> & operator>>=(tvec2<U, P> const & v);
-
218  };
-
219 
-
220  template <typename T, precision P>
-
221  GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v, T const & s);
-
222 
-
223  template <typename T, precision P>
-
224  GLM_FUNC_DECL tvec2<T, P> operator+(T const & s, tvec2<T, P> const & v);
-
225 
-
226  template <typename T, precision P>
-
227  GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
228 
-
229  template <typename T, precision P>
-
230  GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v, T const & s);
-
231 
-
232  template <typename T, precision P>
-
233  GLM_FUNC_DECL tvec2<T, P> operator-(T const & s, tvec2<T, P> const & v);
-
234 
-
235  template <typename T, precision P>
-
236  GLM_FUNC_DECL tvec2<T, P> operator- (tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
237 
-
238  template <typename T, precision P>
-
239  GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v, T const & s);
-
240 
-
241  template <typename T, precision P>
-
242  GLM_FUNC_DECL tvec2<T, P> operator*(T const & s, tvec2<T, P> const & v);
-
243 
-
244  template <typename T, precision P>
-
245  GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
246 
-
247  template <typename T, precision P>
-
248  GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v, T const & s);
-
249 
-
250  template <typename T, precision P>
-
251  GLM_FUNC_DECL tvec2<T, P> operator/(T const & s, tvec2<T, P> const & v);
-
252 
-
253  template <typename T, precision P>
-
254  GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
255 
-
256  template <typename T, precision P>
-
257  GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v);
-
258 
-
259  template <typename T, precision P>
-
260  GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v, T const & s);
-
261 
-
262  template <typename T, precision P>
-
263  GLM_FUNC_DECL tvec2<T, P> operator%(T const & s, tvec2<T, P> const & v);
-
264 
-
265  template <typename T, precision P>
-
266  GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
267 
-
268  template <typename T, precision P>
-
269  GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v, T const & s);
-
270 
-
271  template <typename T, precision P>
-
272  GLM_FUNC_DECL tvec2<T, P> operator&(T const & s, tvec2<T, P> const & v);
-
273 
-
274  template <typename T, precision P>
-
275  GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
276 
-
277  template <typename T, precision P>
-
278  GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v, T const & s);
-
279 
-
280  template <typename T, precision P>
-
281  GLM_FUNC_DECL tvec2<T, P> operator|(T const & s, tvec2<T, P> const & v);
-
282 
-
283  template <typename T, precision P>
-
284  GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
285 
-
286  template <typename T, precision P>
-
287  GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v, T const & s);
-
288 
-
289  template <typename T, precision P>
-
290  GLM_FUNC_DECL tvec2<T, P> operator^(T const & s, tvec2<T, P> const & v);
-
291 
-
292  template <typename T, precision P>
-
293  GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
294 
-
295  template <typename T, precision P>
-
296  GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v, T const & s);
-
297 
-
298  template <typename T, precision P>
-
299  GLM_FUNC_DECL tvec2<T, P> operator<<(T const & s, tvec2<T, P> const & v);
-
300 
-
301  template <typename T, precision P>
-
302  GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
303 
-
304  template <typename T, precision P>
-
305  GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v, T const & s);
-
306 
-
307  template <typename T, precision P>
-
308  GLM_FUNC_DECL tvec2<T, P> operator>>(T const & s, tvec2<T, P> const & v);
-
309 
-
310  template <typename T, precision P>
-
311  GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
-
312 
-
313  template <typename T, precision P>
-
314  GLM_FUNC_DECL tvec2<T, P> operator~(tvec2<T, P> const & v);
-
315 
-
316 }//namespace detail
-
317 }//namespace glm
-
318 
-
319 #ifndef GLM_EXTERNAL_TEMPLATE
-
320 #include "type_vec2.inl"
-
321 #endif//GLM_EXTERNAL_TEMPLATE
-
322 
-
323 #endif//glm_core_type_gentype2
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00137_source.html b/3party/glm/doc/api/a00137_source.html deleted file mode 100755 index 22b068c96d..0000000000 --- a/3party/glm/doc/api/a00137_source.html +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - -GLM: type_vec3.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_vec3.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_gentype3
-
30 #define glm_core_type_gentype3
-
31 
-
32 //#include "../fwd.hpp"
-
33 #include "type_vec.hpp"
-
34 #ifdef GLM_SWIZZLE
-
35 # if GLM_HAS_ANONYMOUS_UNION
-
36 # include "_swizzle.hpp"
-
37 # else
-
38 # include "_swizzle_func.hpp"
-
39 # endif
-
40 #endif //GLM_SWIZZLE
-
41 #if(GLM_HAS_INITIALIZER_LISTS)
-
42 # include <initializer_list>
-
43 #endif //GLM_HAS_INITIALIZER_LISTS
-
44 #include <cstddef>
-
45 
-
46 namespace glm{
-
47 namespace detail
-
48 {
-
49  template <typename T, precision P>
-
50  struct tvec3
-
51  {
-
53  // Implementation detail
-
54 
-
55  enum ctor{_null};
-
56 
-
57  typedef tvec3<T, P> type;
-
58  typedef tvec3<bool, P> bool_type;
-
59  typedef T value_type;
-
60  typedef int size_type;
-
61 
-
63  // Helper
-
64 
-
65  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
66 
-
68  // Data
-
69 
-
70 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
71  union
-
72  {
-
73  struct{ T x, y, z; };
-
74  struct{ T r, g, b; };
-
75  struct{ T s, t, p; };
-
76 
-
77  _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, x, y, z)
-
78  _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, r, g, b)
-
79  _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, s, t, p)
-
80  _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, x, y, z)
-
81  _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, r, g, b)
-
82  _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, s, t, p)
-
83  _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, x, y, z)
-
84  _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, r, g, b)
-
85  _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, s, t, p)
-
86  };
-
87 # else
-
88  union { T x, r, s; };
-
89  union { T y, g, t; };
-
90  union { T z, b, p; };
-
91 
-
92 # ifdef GLM_SWIZZLE
-
93  GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, detail::tvec3, detail::tvec2, detail::tvec3, detail::tvec4)
-
94 # endif
-
95 # endif//GLM_LANG
-
96 
-
98  // Accesses
-
99 
-
100  GLM_FUNC_DECL T & operator[](length_t i);
-
101  GLM_FUNC_DECL T const & operator[](length_t i) const;
-
102 
-
104  // Implicit basic constructors
-
105 
-
106  GLM_FUNC_DECL tvec3();
-
107  GLM_FUNC_DECL tvec3(tvec3<T, P> const & v);
-
108  template <precision Q>
-
109  GLM_FUNC_DECL tvec3(tvec3<T, Q> const & v);
-
110 
-
111 #if(GLM_HAS_INITIALIZER_LISTS)
-
112  template <typename U>
-
113  GLM_FUNC_DECL tvec3(std::initializer_list<U> const & v);
-
114 #endif//GLM_HAS_INITIALIZER_LISTS
-
115 
-
117  // Explicit basic constructors
-
118 
-
119  GLM_FUNC_DECL explicit tvec3(
-
120  ctor);
-
121  GLM_FUNC_DECL explicit tvec3(
-
122  T const & s);
-
123  GLM_FUNC_DECL explicit tvec3(
-
124  T const & s1,
-
125  T const & s2,
-
126  T const & s3);
-
127 
-
129  // Conversion scalar constructors
-
130 
-
132  template <typename U, typename V, typename W>
-
133  GLM_FUNC_DECL explicit tvec3(
-
134  U const & x,
-
135  V const & y,
-
136  W const & z);
-
137 
-
139  // Conversion vector constructors
-
140 
-
142  template <typename A, typename B, precision Q>
-
143  GLM_FUNC_DECL explicit tvec3(tvec2<A, Q> const & v, B const & s);
-
145  template <typename A, typename B, precision Q>
-
146  GLM_FUNC_DECL explicit tvec3(A const & s, tvec2<B, Q> const & v);
-
148  template <typename U, precision Q>
-
149  GLM_FUNC_DECL explicit tvec3(tvec3<U, Q> const & v);
-
151  template <typename U, precision Q>
-
152  GLM_FUNC_DECL explicit tvec3(tvec4<U, Q> const & v);
-
153 
-
155  // Swizzle constructors
-
156 
-
157 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
158  template <int E0, int E1, int E2>
-
159  GLM_FUNC_DECL tvec3(_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & that)
-
160  {
-
161  *this = that();
-
162  }
-
163 
-
164  template <int E0, int E1>
-
165  GLM_FUNC_DECL tvec3(_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & s)
-
166  {
-
167  *this = tvec3<T, P>(v(), s);
-
168  }
-
169 
-
170  template <int E0, int E1>
-
171  GLM_FUNC_DECL tvec3(T const & s, _swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v)
-
172  {
-
173  *this = tvec3<T, P>(s, v());
-
174  }
-
175 # endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
176 
-
178  // Unary arithmetic operators
-
179 
-
180  GLM_FUNC_DECL tvec3<T, P> & operator= (tvec3<T, P> const & v);
-
181  template <typename U>
-
182  GLM_FUNC_DECL tvec3<T, P> & operator= (tvec3<U, P> const & v);
-
183 
-
184  template <typename U>
-
185  GLM_FUNC_DECL tvec3<T, P> & operator+=(U s);
-
186  template <typename U>
-
187  GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec3<U, P> const & v);
-
188  template <typename U>
-
189  GLM_FUNC_DECL tvec3<T, P> & operator-=(U s);
-
190  template <typename U>
-
191  GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec3<U, P> const & v);
-
192  template <typename U>
-
193  GLM_FUNC_DECL tvec3<T, P> & operator*=(U s);
-
194  template <typename U>
-
195  GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec3<U, P> const & v);
-
196  template <typename U>
-
197  GLM_FUNC_DECL tvec3<T, P> & operator/=(U s);
-
198  template <typename U>
-
199  GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec3<U, P> const & v);
-
200 
-
202  // Increment and decrement operators
-
203 
-
204  GLM_FUNC_DECL tvec3<T, P> & operator++();
-
205  GLM_FUNC_DECL tvec3<T, P> & operator--();
-
206  GLM_FUNC_DECL tvec3<T, P> operator++(int);
-
207  GLM_FUNC_DECL tvec3<T, P> operator--(int);
-
208 
-
210  // Unary bit operators
-
211 
-
212  template <typename U>
-
213  GLM_FUNC_DECL tvec3<T, P> & operator%= (U s);
-
214  template <typename U>
-
215  GLM_FUNC_DECL tvec3<T, P> & operator%= (tvec3<U, P> const & v);
-
216  template <typename U>
-
217  GLM_FUNC_DECL tvec3<T, P> & operator&= (U s);
-
218  template <typename U>
-
219  GLM_FUNC_DECL tvec3<T, P> & operator&= (tvec3<U, P> const & v);
-
220  template <typename U>
-
221  GLM_FUNC_DECL tvec3<T, P> & operator|= (U s);
-
222  template <typename U>
-
223  GLM_FUNC_DECL tvec3<T, P> & operator|= (tvec3<U, P> const & v);
-
224  template <typename U>
-
225  GLM_FUNC_DECL tvec3<T, P> & operator^= (U s);
-
226  template <typename U>
-
227  GLM_FUNC_DECL tvec3<T, P> & operator^= (tvec3<U, P> const & v);
-
228  template <typename U>
-
229  GLM_FUNC_DECL tvec3<T, P> & operator<<=(U s);
-
230  template <typename U>
-
231  GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec3<U, P> const & v);
-
232  template <typename U>
-
233  GLM_FUNC_DECL tvec3<T, P> & operator>>=(U s);
-
234  template <typename U>
-
235  GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec3<U, P> const & v);
-
236  };
-
237 
-
238  template <typename T, precision P>
-
239  GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v, T const & s);
-
240 
-
241  template <typename T, precision P>
-
242  GLM_FUNC_DECL tvec3<T, P> operator+(T const & s, tvec3<T, P> const & v);
-
243 
-
244  template <typename T, precision P>
-
245  GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
246 
-
247  template <typename T, precision P>
-
248  GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v, T const & s);
-
249 
-
250  template <typename T, precision P>
-
251  GLM_FUNC_DECL tvec3<T, P> operator-(T const & s, tvec3<T, P> const & v);
-
252 
-
253  template <typename T, precision P>
-
254  GLM_FUNC_DECL tvec3<T, P> operator- (tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
255 
-
256  template <typename T, precision P>
-
257  GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, T const & s);
-
258 
-
259  template <typename T, precision P>
-
260  GLM_FUNC_DECL tvec3<T, P> operator*(T const & s, tvec3<T, P> const & v);
-
261 
-
262  template <typename T, precision P>
-
263  GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
264 
-
265  template <typename T, precision P>
-
266  GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v, T const & s);
-
267 
-
268  template <typename T, precision P>
-
269  GLM_FUNC_DECL tvec3<T, P> operator/(T const & s, tvec3<T, P> const & v);
-
270 
-
271  template <typename T, precision P>
-
272  GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
273 
-
274  template <typename T, precision P>
-
275  GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v);
-
276 
-
277  template <typename T, precision P>
-
278  GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v, T const & s);
-
279 
-
280  template <typename T, precision P>
-
281  GLM_FUNC_DECL tvec3<T, P> operator%(T const & s, tvec3<T, P> const & v);
-
282 
-
283  template <typename T, precision P>
-
284  GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
285 
-
286  template <typename T, precision P>
-
287  GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v, T const & s);
-
288 
-
289  template <typename T, precision P>
-
290  GLM_FUNC_DECL tvec3<T, P> operator&(T const & s, tvec3<T, P> const & v);
-
291 
-
292  template <typename T, precision P>
-
293  GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
294 
-
295  template <typename T, precision P>
-
296  GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v, T const & s);
-
297 
-
298  template <typename T, precision P>
-
299  GLM_FUNC_DECL tvec3<T, P> operator|(T const & s, tvec3<T, P> const & v);
-
300 
-
301  template <typename T, precision P>
-
302  GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
303 
-
304  template <typename T, precision P>
-
305  GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v, T const & s);
-
306 
-
307  template <typename T, precision P>
-
308  GLM_FUNC_DECL tvec3<T, P> operator^(T const & s, tvec3<T, P> const & v);
-
309 
-
310  template <typename T, precision P>
-
311  GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
312 
-
313  template <typename T, precision P>
-
314  GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v, T const & s);
-
315 
-
316  template <typename T, precision P>
-
317  GLM_FUNC_DECL tvec3<T, P> operator<<(T const & s, tvec3<T, P> const & v);
-
318 
-
319  template <typename T, precision P>
-
320  GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
321 
-
322  template <typename T, precision P>
-
323  GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v, T const & s);
-
324 
-
325  template <typename T, precision P>
-
326  GLM_FUNC_DECL tvec3<T, P> operator>>(T const & s, tvec3<T, P> const & v);
-
327 
-
328  template <typename T, precision P>
-
329  GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
-
330 
-
331  template <typename T, precision P>
-
332  GLM_FUNC_DECL tvec3<T, P> operator~(tvec3<T, P> const & v);
-
333 
-
334 }//namespace detail
-
335 }//namespace glm
-
336 
-
337 #ifndef GLM_EXTERNAL_TEMPLATE
-
338 #include "type_vec3.inl"
-
339 #endif//GLM_EXTERNAL_TEMPLATE
-
340 
-
341 #endif//glm_core_type_gentype3
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00138_source.html b/3party/glm/doc/api/a00138_source.html deleted file mode 100755 index b962dc5273..0000000000 --- a/3party/glm/doc/api/a00138_source.html +++ /dev/null @@ -1,400 +0,0 @@ - - - - - - -GLM: type_vec4.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
type_vec4.hpp
-
-
-
1 
-
29 #ifndef glm_core_type_gentype4
-
30 #define glm_core_type_gentype4
-
31 
-
32 //#include "../fwd.hpp"
-
33 #include "setup.hpp"
-
34 #include "type_vec.hpp"
-
35 #ifdef GLM_SWIZZLE
-
36 # if GLM_HAS_ANONYMOUS_UNION
-
37 # include "_swizzle.hpp"
-
38 # else
-
39 # include "_swizzle_func.hpp"
-
40 # endif
-
41 #endif //GLM_SWIZZLE
-
42 #if(GLM_HAS_INITIALIZER_LISTS)
-
43 # include <initializer_list>
-
44 #endif //GLM_HAS_INITIALIZER_LISTS
-
45 #include <cstddef>
-
46 
-
47 namespace glm{
-
48 namespace detail
-
49 {
-
50  template <typename T, precision P>
-
51  struct tvec4
-
52  {
-
54  // Implementation detail
-
55 
-
56  enum ctor{_null};
-
57 
-
58  typedef tvec4<T, P> type;
-
59  typedef tvec4<bool, P> bool_type;
-
60  typedef T value_type;
-
61  typedef int size_type;
-
62 
-
64  // Helper
-
65 
-
66  GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
-
67 
-
69  // Data
-
70 
-
71 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
72  union
-
73  {
-
74  struct { T r, g, b, a; };
-
75  struct { T s, t, p, q; };
-
76  struct { T x, y, z, w;};
-
77 
-
78  _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, x, y, z, w)
-
79  _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, r, g, b, a)
-
80  _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, s, t, p, q)
-
81  _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, x, y, z, w)
-
82  _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, r, g, b, a)
-
83  _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, s, t, p, q)
-
84  _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, x, y, z, w)
-
85  _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, r, g, b, a)
-
86  _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, s, t, p, q)
-
87  };
-
88 # else
-
89  union { T x, r, s; };
-
90  union { T y, g, t; };
-
91  union { T z, b, p; };
-
92  union { T w, a, q; };
-
93 
-
94 # ifdef GLM_SWIZZLE
-
95  GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P, detail::tvec4, detail::tvec2, detail::tvec3, detail::tvec4)
-
96 # endif
-
97 # endif//GLM_LANG
-
98 
-
100  // Accesses
-
101 
-
102  GLM_FUNC_DECL T & operator[](length_t i);
-
103  GLM_FUNC_DECL T const & operator[](length_t i) const;
-
104 
-
106  // Implicit basic constructors
-
107 
-
108  GLM_FUNC_DECL tvec4();
-
109  GLM_FUNC_DECL tvec4(type const & v);
-
110  template <precision Q>
-
111  GLM_FUNC_DECL tvec4(tvec4<T, Q> const & v);
-
112 
-
113 #if(GLM_HAS_INITIALIZER_LISTS)
-
114  template <typename U>
-
115  GLM_FUNC_DECL tvec4(std::initializer_list<U> l);
-
116 #endif//GLM_HAS_INITIALIZER_LISTS
-
117 
-
119  // Explicit basic constructors
-
120 
-
121  GLM_FUNC_DECL explicit tvec4(
-
122  ctor);
-
123  GLM_FUNC_DECL explicit tvec4(
-
124  T const & s);
-
125  GLM_FUNC_DECL explicit tvec4(
-
126  T const & s0,
-
127  T const & s1,
-
128  T const & s2,
-
129  T const & s3);
-
130 
-
132  // Conversion scalar constructors
-
133 
-
135  template <typename A, typename B, typename C, typename D>
-
136  GLM_FUNC_DECL explicit tvec4(
-
137  A const & x,
-
138  B const & y,
-
139  C const & z,
-
140  D const & w);
-
141 
-
143  // Conversion vector constructors
-
144 
-
146  template <typename A, typename B, typename C, precision Q>
-
147  GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & v, B const & s1, C const & s2);
-
149  template <typename A, typename B, typename C, precision Q>
-
150  GLM_FUNC_DECL explicit tvec4(A const & s1, tvec2<B, Q> const & v, C const & s2);
-
152  template <typename A, typename B, typename C, precision Q>
-
153  GLM_FUNC_DECL explicit tvec4(A const & s1, B const & s2, tvec2<C, Q> const & v);
-
155  template <typename A, typename B, precision Q>
-
156  GLM_FUNC_DECL explicit tvec4(tvec3<A, Q> const & v, B const & s);
-
158  template <typename A, typename B, precision Q>
-
159  GLM_FUNC_DECL explicit tvec4(A const & s, tvec3<B, Q> const & v);
-
161  template <typename A, typename B, precision Q>
-
162  GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & v1, tvec2<B, Q> const & v2);
-
164  template <typename U, precision Q>
-
165  GLM_FUNC_DECL explicit tvec4(tvec4<U, Q> const & v);
-
166 
-
168  // Swizzle constructors
-
169 
-
170 # if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
171  template <int E0, int E1, int E2, int E3>
-
172  GLM_FUNC_DECL tvec4(_swizzle<4, T, P, tvec4<T, P>, E0, E1, E2, E3> const & that)
-
173  {
-
174  *this = that();
-
175  }
-
176 
-
177  template <int E0, int E1, int F0, int F1>
-
178  GLM_FUNC_DECL tvec4(_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, _swizzle<2, T, P, tvec2<T, P>, F0, F1, -1, -2> const & u)
-
179  {
-
180  *this = tvec4<T, P>(v(), u());
-
181  }
-
182 
-
183  template <int E0, int E1>
-
184  GLM_FUNC_DECL tvec4(T const & x, T const & y, _swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v)
-
185  {
-
186  *this = tvec4<T, P>(x, y, v());
-
187  }
-
188 
-
189  template <int E0, int E1>
-
190  GLM_FUNC_DECL tvec4(T const & x, _swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & w)
-
191  {
-
192  *this = tvec4<T, P>(x, v(), w);
-
193  }
-
194 
-
195  template <int E0, int E1>
-
196  GLM_FUNC_DECL tvec4(_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & z, T const & w)
-
197  {
-
198  *this = tvec4<T, P>(v(), z, w);
-
199  }
-
200 
-
201  template <int E0, int E1, int E2>
-
202  GLM_FUNC_DECL tvec4(_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & v, T const & w)
-
203  {
-
204  *this = tvec4<T, P>(v(), w);
-
205  }
-
206 
-
207  template <int E0, int E1, int E2>
-
208  GLM_FUNC_DECL tvec4(T const & x, _swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & v)
-
209  {
-
210  *this = tvec4<T, P>(x, v());
-
211  }
-
212 # endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
213 
-
215  // Unary arithmetic operators
-
216 
-
217  GLM_FUNC_DECL tvec4<T, P> & operator= (tvec4<T, P> const & v);
-
218  template <typename U, precision Q>
-
219  GLM_FUNC_DECL tvec4<T, P> & operator= (tvec4<U, Q> const & v);
-
220 
-
221  template <typename U>
-
222  GLM_FUNC_DECL tvec4<T, P> & operator+=(U s);
-
223  template <typename U>
-
224  GLM_FUNC_DECL tvec4<T, P> & operator+=(tvec4<U, P> const & v);
-
225  template <typename U>
-
226  GLM_FUNC_DECL tvec4<T, P> & operator-=(U s);
-
227  template <typename U>
-
228  GLM_FUNC_DECL tvec4<T, P> & operator-=(tvec4<U, P> const & v);
-
229  template <typename U>
-
230  GLM_FUNC_DECL tvec4<T, P> & operator*=(U s);
-
231  template <typename U>
-
232  GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec4<U, P> const & v);
-
233  template <typename U>
-
234  GLM_FUNC_DECL tvec4<T, P> & operator/=(U s);
-
235  template <typename U>
-
236  GLM_FUNC_DECL tvec4<T, P> & operator/=(tvec4<U, P> const & v);
-
237 
-
239  // Increment and decrement operators
-
240 
-
241  GLM_FUNC_DECL tvec4<T, P> & operator++();
-
242  GLM_FUNC_DECL tvec4<T, P> & operator--();
-
243  GLM_FUNC_DECL tvec4<T, P> operator++(int);
-
244  GLM_FUNC_DECL tvec4<T, P> operator--(int);
-
245 
-
247  // Unary bit operators
-
248 
-
249  template <typename U>
-
250  GLM_FUNC_DECL tvec4<T, P> & operator%= (U s);
-
251  template <typename U>
-
252  GLM_FUNC_DECL tvec4<T, P> & operator%= (tvec4<U, P> const & v);
-
253  template <typename U>
-
254  GLM_FUNC_DECL tvec4<T, P> & operator&= (U s);
-
255  template <typename U>
-
256  GLM_FUNC_DECL tvec4<T, P> & operator&= (tvec4<U, P> const & v);
-
257  template <typename U>
-
258  GLM_FUNC_DECL tvec4<T, P> & operator|= (U s);
-
259  template <typename U>
-
260  GLM_FUNC_DECL tvec4<T, P> & operator|= (tvec4<U, P> const & v);
-
261  template <typename U>
-
262  GLM_FUNC_DECL tvec4<T, P> & operator^= (U s);
-
263  template <typename U>
-
264  GLM_FUNC_DECL tvec4<T, P> & operator^= (tvec4<U, P> const & v);
-
265  template <typename U>
-
266  GLM_FUNC_DECL tvec4<T, P> & operator<<=(U s);
-
267  template <typename U>
-
268  GLM_FUNC_DECL tvec4<T, P> & operator<<=(tvec4<U, P> const & v);
-
269  template <typename U>
-
270  GLM_FUNC_DECL tvec4<T, P> & operator>>=(U s);
-
271  template <typename U>
-
272  GLM_FUNC_DECL tvec4<T, P> & operator>>=(tvec4<U, P> const & v);
-
273  };
-
274 
-
275  template <typename T, precision P>
-
276  GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> const & v, T const & s);
-
277 
-
278  template <typename T, precision P>
-
279  GLM_FUNC_DECL tvec4<T, P> operator+(T const & s, tvec4<T, P> const & v);
-
280 
-
281  template <typename T, precision P>
-
282  GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
283 
-
284  template <typename T, precision P>
-
285  GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v, T const & s);
-
286 
-
287  template <typename T, precision P>
-
288  GLM_FUNC_DECL tvec4<T, P> operator-(T const & s, tvec4<T, P> const & v);
-
289 
-
290  template <typename T, precision P>
-
291  GLM_FUNC_DECL tvec4<T, P> operator- (tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
292 
-
293  template <typename T, precision P>
-
294  GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v, T const & s);
-
295 
-
296  template <typename T, precision P>
-
297  GLM_FUNC_DECL tvec4<T, P> operator*(T const & s, tvec4<T, P> const & v);
-
298 
-
299  template <typename T, precision P>
-
300  GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
301 
-
302  template <typename T, precision P>
-
303  GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> const & v, T const & s);
-
304 
-
305  template <typename T, precision P>
-
306  GLM_FUNC_DECL tvec4<T, P> operator/(T const & s, tvec4<T, P> const & v);
-
307 
-
308  template <typename T, precision P>
-
309  GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
310 
-
311  template <typename T, precision P>
-
312  GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v);
-
313 
-
314  template <typename T, precision P>
-
315  GLM_FUNC_DECL bool operator==(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
316 
-
317  template <typename T, precision P>
-
318  GLM_FUNC_DECL bool operator!=(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
319 
-
320  template <typename T, precision P>
-
321  GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> const & v, T const & s);
-
322 
-
323  template <typename T, precision P>
-
324  GLM_FUNC_DECL tvec4<T, P> operator%(T const & s, tvec4<T, P> const & v);
-
325 
-
326  template <typename T, precision P>
-
327  GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
328 
-
329  template <typename T, precision P>
-
330  GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> const & v, T const & s);
-
331 
-
332  template <typename T, precision P>
-
333  GLM_FUNC_DECL tvec4<T, P> operator&(T const & s, tvec4<T, P> const & v);
-
334 
-
335  template <typename T, precision P>
-
336  GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
337 
-
338  template <typename T, precision P>
-
339  GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> const & v, T const & s);
-
340 
-
341  template <typename T, precision P>
-
342  GLM_FUNC_DECL tvec4<T, P> operator|(T const & s, tvec4<T, P> const & v);
-
343 
-
344  template <typename T, precision P>
-
345  GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
346 
-
347  template <typename T, precision P>
-
348  GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> const & v, T const & s);
-
349 
-
350  template <typename T, precision P>
-
351  GLM_FUNC_DECL tvec4<T, P> operator^(T const & s, tvec4<T, P> const & v);
-
352 
-
353  template <typename T, precision P>
-
354  GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
355 
-
356  template <typename T, precision P>
-
357  GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> const & v, T const & s);
-
358 
-
359  template <typename T, precision P>
-
360  GLM_FUNC_DECL tvec4<T, P> operator<<(T const & s, tvec4<T, P> const & v);
-
361 
-
362  template <typename T, precision P>
-
363  GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
364 
-
365  template <typename T, precision P>
-
366  GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> const & v, T const & s);
-
367 
-
368  template <typename T, precision P>
-
369  GLM_FUNC_DECL tvec4<T, P> operator>>(T const & s, tvec4<T, P> const & v);
-
370 
-
371  template <typename T, precision P>
-
372  GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
-
373 
-
374  template <typename T, precision P>
-
375  GLM_FUNC_DECL tvec4<T, P> operator~(tvec4<T, P> const & v);
-
376 
-
377 }//namespace detail
-
378 }//namespace glm
-
379 
-
380 #ifndef GLM_EXTERNAL_TEMPLATE
-
381 #include "type_vec4.inl"
-
382 #endif//GLM_EXTERNAL_TEMPLATE
-
383 
-
384 #endif//glm_core_type_gentype4
-
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
-
- - - - diff --git a/3party/glm/doc/api/a00139.html b/3party/glm/doc/api/a00139.html deleted file mode 100755 index e317811fcf..0000000000 --- a/3party/glm/doc/api/a00139.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -GLM: ulp.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
gtc/ulp.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTC_ulp

-
Date
2011-02-21 / 2011-12-12
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
- -

Definition in file gtc/ulp.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00139_source.html b/3party/glm/doc/api/a00139_source.html deleted file mode 100755 index 2622965628..0000000000 --- a/3party/glm/doc/api/a00139_source.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - -GLM: ulp.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtc/ulp.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_GTC_ulp
-
40 #define GLM_GTC_ulp
-
41 
-
42 // Dependencies
-
43 #include "../detail/setup.hpp"
-
44 #include "../detail/precision.hpp"
-
45 #include "../detail/type_int.hpp"
-
46 
-
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
48 # pragma message("GLM: GLM_GTC_ulp extension included")
-
49 #endif
-
50 
-
51 namespace glm
-
52 {
-
55 
-
58  template <typename genType>
-
59  GLM_FUNC_DECL genType next_float(genType const & x);
-
60 
-
63  template <typename genType>
-
64  GLM_FUNC_DECL genType prev_float(genType const & x);
-
65 
-
68  template <typename genType>
-
69  GLM_FUNC_DECL genType next_float(genType const & x, uint const & Distance);
-
70 
-
73  template <typename genType>
-
74  GLM_FUNC_DECL genType prev_float(genType const & x, uint const & Distance);
-
75 
-
78  template <typename T>
-
79  GLM_FUNC_DECL uint float_distance(T const & x, T const & y);
-
80 
-
83  template<typename T, template<typename> class vecType>
-
84  GLM_FUNC_DECL vecType<uint> float_distance(vecType<T> const & x, vecType<T> const & y);
-
85 
-
87 }// namespace glm
-
88 
-
89 #include "ulp.inl"
-
90 
-
91 #endif//GLM_GTC_ulp
-
92 
-
GLM_FUNC_DECL genType next_float(genType const &x)
Return the next ULP value(s) after the input value(s).
-
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:171
-
GLM_FUNC_DECL uint float_distance(T const &x, T const &y)
Return the distance in the number of ULP between 2 scalars.
-
GLM_FUNC_DECL genType prev_float(genType const &x)
Return the previous ULP value(s) before the input value(s).
-
- - - - diff --git a/3party/glm/doc/api/a00140_source.html b/3party/glm/doc/api/a00140_source.html deleted file mode 100755 index 8fa1ec2b2d..0000000000 --- a/3party/glm/doc/api/a00140_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: ulp.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
gtx/ulp.hpp
-
-
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_ulp extension is deprecated, include GLM_GTC_ulp (glm/gtc/ulp.hpp) instead")
-
26 #endif
-
27 
-
28 // Promoted:
-
29 #include "../gtc/ulp.hpp"
-
- - - - diff --git a/3party/glm/doc/api/a00141_source.html b/3party/glm/doc/api/a00141_source.html deleted file mode 100755 index b12c34ceb3..0000000000 --- a/3party/glm/doc/api/a00141_source.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -GLM: unsigned_int.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
unsigned_int.hpp
-
-
-
1 
-
24 #if(defined(GLM_MESSAGES))
-
25 # pragma message("GLM: GLM_GTX_unsigned_int extension is deprecated, include GLM_GTX_integer instead")
-
26 #endif
-
- - - - diff --git a/3party/glm/doc/api/a00142.html b/3party/glm/doc/api/a00142.html deleted file mode 100755 index d9bf41090d..0000000000 --- a/3party/glm/doc/api/a00142.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - -GLM: vec1.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
vec1.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef highp_bvec1 bvec1
 
typedef highp_bvec1_t highp_bvec1
 
typedef highp_ivec1_t highp_ivec1
 
typedef highp_uvec1_t highp_uvec1
 
typedef highp_ivec1 ivec1
 
typedef lowp_bvec1_t lowp_bvec1
 
typedef lowp_ivec1_t lowp_ivec1
 
typedef lowp_uvec1_t lowp_uvec1
 
typedef mediump_bvec1_t mediump_bvec1
 
typedef mediump_ivec1_t mediump_ivec1
 
typedef mediump_uvec1_t mediump_uvec1
 
typedef highp_uvec1 uvec1
 
typedef highp_vec1 vec1
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_vec1

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

Definition in file vec1.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00142_source.html b/3party/glm/doc/api/a00142_source.html deleted file mode 100755 index 0f6b8955fd..0000000000 --- a/3party/glm/doc/api/a00142_source.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - -GLM: vec1.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vec1.hpp
-
-
-Go to the documentation of this file.
1 
-
37 #ifndef GLM_GTX_vec1
-
38 #define GLM_GTX_vec1
-
39 
-
40 // Dependency:
-
41 #include "../glm.hpp"
-
42 #include "../detail/type_vec1.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_vec1 extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
53  typedef highp_vec1_t highp_vec1;
-
54 
-
58  typedef mediump_vec1_t mediump_vec1;
-
59 
-
63  typedef lowp_vec1_t lowp_vec1;
-
64 
-
68  typedef highp_ivec1_t highp_ivec1;
-
69 
-
73  typedef mediump_ivec1_t mediump_ivec1;
-
74 
-
78  typedef lowp_ivec1_t lowp_ivec1;
-
79 
-
83  typedef highp_uvec1_t highp_uvec1;
-
84 
-
88  typedef mediump_uvec1_t mediump_uvec1;
-
89 
-
93  typedef lowp_uvec1_t lowp_uvec1;
-
94 
-
98  typedef highp_bvec1_t highp_bvec1;
-
99 
-
103  typedef mediump_bvec1_t mediump_bvec1;
-
104 
-
108  typedef lowp_bvec1_t lowp_bvec1;
-
109 
-
111  // vec1 definition
-
112 
-
113 #if(defined(GLM_PRECISION_HIGHP_BOOL))
-
114  typedef highp_bvec1 bvec1;
-
115 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
-
116  typedef mediump_bvec1 bvec1;
-
117 #elif(defined(GLM_PRECISION_LOWP_BOOL))
-
118  typedef lowp_bvec1 bvec1;
-
119 #else
-
120  typedef highp_bvec1 bvec1;
-
123 #endif//GLM_PRECISION
-
124 
-
125 #if(defined(GLM_PRECISION_HIGHP_FLOAT))
-
126  typedef highp_vec1 vec1;
-
127 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
128  typedef mediump_vec1 vec1;
-
129 #elif(defined(GLM_PRECISION_LOWP_FLOAT))
-
130  typedef lowp_vec1 vec1;
-
131 #else
-
132  typedef highp_vec1 vec1;
-
135 #endif//GLM_PRECISION
-
136 
-
137 #if(defined(GLM_PRECISION_HIGHP_INT))
-
138  typedef highp_ivec1 ivec1;
-
139 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
140  typedef mediump_ivec1 ivec1;
-
141 #elif(defined(GLM_PRECISION_LOWP_INT))
-
142  typedef lowp_ivec1 ivec1;
-
143 #else
-
144  typedef highp_ivec1 ivec1;
-
147 #endif//GLM_PRECISION
-
148 
-
149 #if(defined(GLM_PRECISION_HIGHP_UINT))
-
150  typedef highp_uvec1 uvec1;
-
151 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
-
152  typedef mediump_uvec1 uvec1;
-
153 #elif(defined(GLM_PRECISION_LOWP_UINT))
-
154  typedef lowp_uvec1 uvec1;
-
155 #else
-
156  typedef highp_uvec1 uvec1;
-
159 #endif//GLM_PRECISION
-
160 
-
161 }// namespace glm
-
162 
-
163 #include "vec1.inl"
-
164 
-
165 #endif//GLM_GTX_vec1
-
166 
-
lowp_uvec1_t lowp_uvec1
1 component vector of low precision unsigned integer numbers.
Definition: vec1.hpp:93
-
mediump_uvec1_t mediump_uvec1
1 component vector of medium precision unsigned integer numbers.
Definition: vec1.hpp:88
-
detail::tvec1< float, highp > highp_vec1
High single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1601
-
highp_ivec1 ivec1
1 component vector of signed integer numbers.
Definition: vec1.hpp:146
-
highp_ivec1_t highp_ivec1
1 component vector of high precision signed integer numbers.
Definition: vec1.hpp:68
-
detail::tvec1< float, mediump > mediump_vec1
Medium single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1567
-
detail::tvec1< float, lowp > lowp_vec1
Low single-precision floating-point vector of 1 component.
Definition: fwd.hpp:1533
-
highp_uvec1_t highp_uvec1
1 component vector of high precision unsigned integer numbers.
Definition: vec1.hpp:83
-
highp_vec1 vec1
1 component vector of floating-point numbers.
Definition: vec1.hpp:134
-
highp_bvec1 bvec1
1 component vector of boolean.
Definition: vec1.hpp:122
-
mediump_bvec1_t mediump_bvec1
1 component vector of medium precision boolean.
Definition: vec1.hpp:103
-
mediump_ivec1_t mediump_ivec1
1 component vector of medium precision signed integer numbers.
Definition: vec1.hpp:73
-
highp_uvec1 uvec1
1 component vector of unsigned integer numbers.
Definition: vec1.hpp:158
-
lowp_ivec1_t lowp_ivec1
1 component vector of low precision signed integer numbers.
Definition: vec1.hpp:78
-
highp_bvec1_t highp_bvec1
1 component vector of high precision boolean.
Definition: vec1.hpp:98
-
lowp_bvec1_t lowp_bvec1
1 component vector of low precision boolean.
Definition: vec1.hpp:108
-
- - - - diff --git a/3party/glm/doc/api/a00143.html b/3party/glm/doc/api/a00143.html deleted file mode 100755 index 30b11efa63..0000000000 --- a/3party/glm/doc/api/a00143.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -GLM: vec2.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vec2.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file vec2.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00143_source.html b/3party/glm/doc/api/a00143_source.html deleted file mode 100755 index df9fa7224d..0000000000 --- a/3party/glm/doc/api/a00143_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: vec2.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vec2.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_VEC2_INCLUDED
-
30 #define GLM_VEC2_INCLUDED
-
31 
-
32 #include "detail/type_vec2.hpp"
-
33 
-
34 #endif//GLM_VEC2_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00144.html b/3party/glm/doc/api/a00144.html deleted file mode 100755 index f745ada887..0000000000 --- a/3party/glm/doc/api/a00144.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -GLM: vec3.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vec3.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file vec3.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00144_source.html b/3party/glm/doc/api/a00144_source.html deleted file mode 100755 index 0f2cb4c569..0000000000 --- a/3party/glm/doc/api/a00144_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: vec3.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vec3.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_VEC3_INCLUDED
-
30 #define GLM_VEC3_INCLUDED
-
31 
-
32 #include "detail/type_vec3.hpp"
-
33 
-
34 #endif//GLM_VEC3_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00145.html b/3party/glm/doc/api/a00145.html deleted file mode 100755 index dab97b44e9..0000000000 --- a/3party/glm/doc/api/a00145.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -GLM: vec4.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vec4.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file vec4.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00145_source.html b/3party/glm/doc/api/a00145_source.html deleted file mode 100755 index 797aebb13d..0000000000 --- a/3party/glm/doc/api/a00145_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: vec4.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vec4.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_VEC4_INCLUDED
-
30 #define GLM_VEC4_INCLUDED
-
31 
-
32 #include "detail/type_vec4.hpp"
-
33 
-
34 #endif//GLM_VEC4_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00146.html b/3party/glm/doc/api/a00146.html deleted file mode 100755 index bdaac8673e..0000000000 --- a/3party/glm/doc/api/a00146.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -GLM: vector_angle.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
vector_angle.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_vector_angle

-
Date
2005-12-30 / 2011-06-07
-
Author
Christophe Riccio
-
See Also
GLM Core (dependence)
-
-GLM_GTX_quaternion (dependence)
-
-gtx_epsilon (dependence)
- -

Definition in file vector_angle.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00146_source.html b/3party/glm/doc/api/a00146_source.html deleted file mode 100755 index 44fd9bf438..0000000000 --- a/3party/glm/doc/api/a00146_source.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -GLM: vector_angle.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vector_angle.hpp
-
-
-Go to the documentation of this file.
1 
-
40 #ifndef GLM_GTX_vector_angle
-
41 #define GLM_GTX_vector_angle
-
42 
-
43 // Dependency:
-
44 #include "../glm.hpp"
-
45 #include "../gtc/epsilon.hpp"
-
46 #include "../gtx/quaternion.hpp"
-
47 #include "../gtx/rotate_vector.hpp"
-
48 
-
49 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
50 # pragma message("GLM: GLM_GTX_vector_angle extension included")
-
51 #endif
-
52 
-
53 namespace glm
-
54 {
-
57 
-
61  template <typename vecType>
-
62  GLM_FUNC_QUALIFIER typename vecType::value_type angle(
-
63  vecType const & x,
-
64  vecType const & y);
-
65 
-
69  template <typename T, precision P>
-
70  GLM_FUNC_QUALIFIER T orientedAngle(
-
71  detail::tvec2<T, P> const & x,
-
72  detail::tvec2<T, P> const & y);
-
73 
-
77  template <typename T, precision P>
-
78  GLM_FUNC_QUALIFIER T orientedAngle(
-
79  detail::tvec3<T, P> const & x,
-
80  detail::tvec3<T, P> const & y,
-
81  detail::tvec3<T, P> const & ref);
-
82 
-
84 }// namespace glm
-
85 
-
86 #include "vector_angle.inl"
-
87 
-
88 #endif//GLM_GTX_vector_angle
-
GLM_FUNC_QUALIFIER T orientedAngle(detail::tvec2< T, P > const &x, detail::tvec2< T, P > const &y)
Returns the oriented angle between two 2d vectors Parameters need to be normalized.
-
GLM_FUNC_DECL T angle(detail::tquat< T, P > const &x)
Returns the quaternion rotation angle.
-
- - - - diff --git a/3party/glm/doc/api/a00147.html b/3party/glm/doc/api/a00147.html deleted file mode 100755 index 3ec552e508..0000000000 --- a/3party/glm/doc/api/a00147.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -GLM: vector_query.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
vector_query.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P, template< typename, precision > class vecType>
bool areCollinear (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthogonal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthonormal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
vecType< bool, P > isCompNull (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNormalized (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNull (vecType< T, P > const &v, T const &epsilon)
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_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/3party/glm/doc/api/a00147_source.html b/3party/glm/doc/api/a00147_source.html deleted file mode 100755 index 7e38f1da2d..0000000000 --- a/3party/glm/doc/api/a00147_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -GLM: vector_query.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vector_query.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_vector_query
-
39 #define GLM_GTX_vector_query
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 #include <cfloat>
-
44 #include <limits>
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
47 # pragma message("GLM: GLM_GTX_vector_query extension included")
-
48 #endif
-
49 
-
50 namespace glm
-
51 {
-
54 
-
57  template <typename T, precision P, template <typename, precision> class vecType>
-
58  bool areCollinear(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
-
59 
-
62  template <typename T, precision P, template <typename, precision> class vecType>
-
63  bool areOrthogonal(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
-
64 
-
67  template <typename T, precision P, template <typename, precision> class vecType>
-
68  bool isNormalized(vecType<T, P> const & v, T const & epsilon);
-
69 
-
72  template <typename T, precision P, template <typename, precision> class vecType>
-
73  bool isNull(vecType<T, P> const & v, T const & epsilon);
-
74 
-
77  template <typename T, precision P, template <typename, precision> class vecType>
-
78  vecType<bool, P> isCompNull(vecType<T, P> const & v, T const & epsilon);
-
79 
-
82  template <typename T, precision P, template <typename, precision> class vecType>
-
83  bool areOrthonormal(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
-
84 
-
86 }// namespace glm
-
87 
-
88 #include "vector_query.inl"
-
89 
-
90 #endif//GLM_GTX_vector_query
-
GLM_FUNC_DECL genType epsilon()
Return the epsilon constant for floating point types.
-
bool areOrthonormal(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
Check whether two vectors are orthonormal.
-
bool areOrthogonal(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
Check whether two vectors are orthogonals.
-
bool areCollinear(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
Check whether two vectors are collinears.
-
bool isNormalized(detail::tmat2x2< T, P > const &m, T const &epsilon)
Return whether a matrix is a normalized matrix.
-
bool isNull(detail::tmat2x2< T, P > const &m, T const &epsilon)
Return whether a matrix a null matrix.
-
vecType< bool, P > isCompNull(vecType< T, P > const &v, T const &epsilon)
Check whether a each component of a vector is null.
-
- - - - diff --git a/3party/glm/doc/api/a00148.html b/3party/glm/doc/api/a00148.html deleted file mode 100755 index 02fd022972..0000000000 --- a/3party/glm/doc/api/a00148.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -GLM: vector_relational.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vector_relational.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM Core

-
Date
2013-12-24 / 2013-12-24
-
Author
Christophe Riccio
- -

Definition in file vector_relational.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00148_source.html b/3party/glm/doc/api/a00148_source.html deleted file mode 100755 index fb2aa460da..0000000000 --- a/3party/glm/doc/api/a00148_source.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -GLM: vector_relational.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
vector_relational.hpp
-
-
-Go to the documentation of this file.
1 
-
29 #ifndef GLM_VECTOR_RELATIONAL_INCLUDED
-
30 #define GLM_VECTOR_RELATIONAL_INCLUDED
-
31 
-
32 #include "detail/func_vector_relational.hpp"
-
33 
-
34 #endif//GLM_VECTOR_RELATIONAL_INCLUDED
-
- - - - diff --git a/3party/glm/doc/api/a00149.html b/3party/glm/doc/api/a00149.html deleted file mode 100755 index 0273e74113..0000000000 --- a/3party/glm/doc/api/a00149.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -GLM: wrap.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
- -
-
wrap.hpp File Reference
-
-
- -

Go to the source code of this file.

- - - - -

-Namespaces

 glm
 
- - - - - - - - - - -

-Functions

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

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

GLM_GTX_wrap

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

Definition in file wrap.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00149_source.html b/3party/glm/doc/api/a00149_source.html deleted file mode 100755 index 24b7616143..0000000000 --- a/3party/glm/doc/api/a00149_source.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -GLM: wrap.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
wrap.hpp
-
-
-Go to the documentation of this file.
1 
-
38 #ifndef GLM_GTX_wrap
-
39 #define GLM_GTX_wrap
-
40 
-
41 // Dependency:
-
42 #include "../glm.hpp"
-
43 
-
44 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
-
45 # pragma message("GLM: GLM_GTX_wrap extension included")
-
46 #endif
-
47 
-
48 namespace glm
-
49 {
-
52 
-
55  template <typename genType>
-
56  GLM_FUNC_DECL genType clamp(genType const & Texcoord);
-
57 
-
60  template <typename genType>
-
61  GLM_FUNC_DECL genType repeat(genType const & Texcoord);
-
62 
-
65  template <typename genType>
-
66  GLM_FUNC_DECL genType mirrorRepeat(genType const & Texcoord);
-
67 
-
69 }// namespace glm
-
70 
-
71 #include "wrap.inl"
-
72 
-
73 #endif//GLM_GTX_wrap
-
GLM_FUNC_DECL genType mirrorRepeat(genType const &Texcoord)
Simulate GL_MIRROR_REPEAT OpenGL wrap mode.
-
GLM_FUNC_DECL genType 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 an...
-
GLM_FUNC_DECL genType repeat(genType const &Texcoord)
Simulate GL_REPEAT OpenGL wrap mode.
-
- - - - diff --git a/3party/glm/doc/api/a00150.html b/3party/glm/doc/api/a00150.html deleted file mode 100755 index ef4163f8a2..0000000000 --- a/3party/glm/doc/api/a00150.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - -GLM: xstream.hpp File Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
xstream.hpp File Reference
-
-
- -

Go to the source code of this file.

-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 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 (dependence)
- -

Definition in file xstream.hpp.

-
- - - - diff --git a/3party/glm/doc/api/a00150_source.html b/3party/glm/doc/api/a00150_source.html deleted file mode 100755 index 18172ea245..0000000000 --- a/3party/glm/doc/api/a00150_source.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - -GLM: xstream.hpp Source File - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - -
-
-
-
xstream.hpp
-
-
-Go to the documentation of this file.
1 
-
39 #ifndef GLM_VIRTREV_xstream
-
40 #define GLM_VIRTREV_xstream GLM_VERSION
-
41 
-
42 #include "../glm.hpp"
-
43 #include "../gtc/matrix_access.hpp"
-
44 #include <iostream>
-
45 
-
46 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
-
47 # pragma message("GLM: GLM_VIRTREV_xstream extension included")
-
48 #endif
-
49 /*
-
50 namespace glm{
-
51 namespace detail
-
52 {
-
53  template<typename T>
-
54  std::ostream & operator << (std::ostream & stream, glm::detail::tvec2<T, P> const & vec)
-
55  {
-
56  stream << "<glm_vec2 ";
-
57  stream << "x=\"" << vec.x << "\" ";
-
58  stream << "y=\"" << vec.y << "\" ";
-
59  stream << "/>";
-
60 
-
61  return stream;
-
62  }
-
63 
-
64  template<typename T>
-
65  std::ostream & operator << (std::ostream & stream, glm::detail::tvec3<T, P> const & vec)
-
66  {
-
67  stream << "<glm_vec3 ";
-
68  stream << "x=\"" << vec.x << "\" ";
-
69  stream << "y=\"" << vec.y << "\" ";
-
70  stream << "z=\"" << vec.z << "\" ";
-
71  stream << "/>";
-
72 
-
73  return stream;
-
74  }
-
75 
-
76  template<typename T>
-
77  std::ostream & operator << (std::ostream & stream, glm::detail::tvec4<T, P> const & vec)
-
78  {
-
79  stream << "<glm_vec4 ";
-
80  stream << "x=\"" << vec.x << "\" ";
-
81  stream << "y=\"" << vec.y << "\" ";
-
82  stream << "z=\"" << vec.z << "\" ";
-
83  stream << "w=\"" << vec.w << "\" ";
-
84  stream << "/>";
-
85 
-
86  return stream;
-
87  }
-
88 
-
89  template<typename T>
-
90  std::ostream & operator << (std::ostream & stream, glm::detail::tmat2x2<T, P> const & mat)
-
91  {
-
92  stream << "<glm_mat2>" << std::endl;
-
93  stream << "<row ";
-
94  stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
-
95  stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
-
96  stream << "/>" << std::endl;
-
97  stream << "<row ";
-
98  stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
-
99  stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
-
100  stream << "/>" << std::endl;
-
101  stream << "</glm_mat2>";
-
102 
-
103  return stream;
-
104  }
-
105 
-
106  template<typename T>
-
107  std::ostream & operator << (std::ostream & stream, glm::detail::tmat3x3<T, P> const & mat)
-
108  {
-
109  stream << "<glm_mat3>" << std::endl;
-
110  stream << "<row ";
-
111  stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
-
112  stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
-
113  stream << "z=\"" << glm::row(mat, 0)[2] << "\" ";
-
114  stream << "/>" << std::endl;
-
115  stream << "<row ";
-
116  stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
-
117  stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
-
118  stream << "z=\"" << glm::row(mat, 1)[2] << "\" ";
-
119  stream << "/>" << std::endl;
-
120  stream << "<row ";
-
121  stream << "x=\"" << glm::row(mat, 2)[0] << "\" ";
-
122  stream << "y=\"" << glm::row(mat, 2)[1] << "\" ";
-
123  stream << "z=\"" << glm::row(mat, 2)[2] << "\" ";
-
124  stream << "/>" << std::endl;
-
125  stream << "</glm_mat3>";
-
126 
-
127  return stream;
-
128  }
-
129 
-
130  template<typename T>
-
131  std::ostream & operator << (std::ostream & stream, glm::detail::tmat4x4<T, P> const & mat)
-
132  {
-
133  stream << "<glm_mat4>" << std::endl;
-
134  stream << "<row ";
-
135  stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
-
136  stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
-
137  stream << "z=\"" << glm::row(mat, 0)[2] << "\" ";
-
138  stream << "w=\"" << glm::row(mat, 0)[3] << "\" ";
-
139  stream << "/>" << std::endl;
-
140  stream << "<row ";
-
141  stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
-
142  stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
-
143  stream << "z=\"" << glm::row(mat, 1)[2] << "\" ";
-
144  stream << "w=\"" << glm::row(mat, 1)[3] << "\" ";
-
145  stream << "/>" << std::endl;
-
146  stream << "<row ";
-
147  stream << "x=\"" << glm::row(mat, 2)[0] << "\" ";
-
148  stream << "y=\"" << glm::row(mat, 2)[1] << "\" ";
-
149  stream << "z=\"" << glm::row(mat, 2)[2] << "\" ";
-
150  stream << "w=\"" << glm::row(mat, 2)[3] << "\" ";
-
151  stream << "/>" << std::endl;
-
152  stream << "<row ";
-
153  stream << "x=\"" << glm::row(mat, 3)[0] << "\" ";
-
154  stream << "y=\"" << glm::row(mat, 3)[1] << "\" ";
-
155  stream << "z=\"" << glm::row(mat, 3)[2] << "\" ";
-
156  stream << "w=\"" << glm::row(mat, 3)[3] << "\" ";
-
157  stream << "/>" << std::endl;
-
158  stream << "</glm_mat4>";
-
159 
-
160  return stream;
-
161  }
-
162 
-
163 }//namespace detail
-
164 }//namespace glm
-
165 */
-
166 #endif//GLM_VIRTREV_xstream
-
- - - - diff --git a/3party/glm/doc/api/a00151.html b/3party/glm/doc/api/a00151.html deleted file mode 100755 index 8e25d13fdd..0000000000 --- a/3party/glm/doc/api/a00151.html +++ /dev/null @@ -1,4075 +0,0 @@ - - - - - - -GLM: glm Namespace Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
- -
-
glm Namespace Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef bool bool1
 
-typedef bool bool1x1
 
-typedef detail::tvec2< bool,
-highp > 
bool2
 
-typedef detail::tmat2x2< bool,
-highp > 
bool2x2
 
-typedef detail::tmat2x3< bool,
-highp > 
bool2x3
 
-typedef detail::tmat2x4< bool,
-highp > 
bool2x4
 
-typedef detail::tvec3< bool,
-highp > 
bool3
 
-typedef detail::tmat3x2< bool,
-highp > 
bool3x2
 
-typedef detail::tmat3x3< bool,
-highp > 
bool3x3
 
-typedef detail::tmat3x4< bool,
-highp > 
bool3x4
 
-typedef detail::tvec4< bool,
-highp > 
bool4
 
-typedef detail::tmat4x2< bool,
-highp > 
bool4x2
 
-typedef detail::tmat4x3< bool,
-highp > 
bool4x3
 
-typedef detail::tmat4x4< bool,
-highp > 
bool4x4
 
typedef highp_bvec1 bvec1
 
typedef highp_bvec2 bvec2
 
typedef highp_bvec3 bvec3
 
typedef highp_bvec4 bvec4
 
typedef detail::uint8 byte
 
typedef highp_ddualquat ddualquat
 
typedef highp_dmat2x2 dmat2
 
typedef highp_dmat2x2 dmat2x2
 
typedef highp_dmat2x3 dmat2x3
 
typedef highp_dmat2x4 dmat2x4
 
typedef highp_dmat3x3 dmat3
 
typedef highp_dmat3x2 dmat3x2
 
typedef highp_dmat3x3 dmat3x3
 
typedef highp_dmat3x4 dmat3x4
 
typedef highp_dmat4x4 dmat4
 
typedef highp_dmat4x2 dmat4x2
 
typedef highp_dmat4x3 dmat4x3
 
typedef highp_dmat4x4 dmat4x4
 
-typedef double double1
 
-typedef double double1x1
 
-typedef detail::tvec2< double,
-highp > 
double2
 
-typedef detail::tmat2x2
-< double, highp > 
double2x2
 
-typedef detail::tmat2x3
-< double, highp > 
double2x3
 
-typedef detail::tmat2x4
-< double, highp > 
double2x4
 
-typedef detail::tvec3< double,
-highp > 
double3
 
-typedef detail::tmat3x2
-< double, highp > 
double3x2
 
-typedef detail::tmat3x3
-< double, highp > 
double3x3
 
-typedef detail::tmat3x4
-< double, highp > 
double3x4
 
-typedef detail::tvec4< double,
-highp > 
double4
 
-typedef detail::tmat4x2
-< double, highp > 
double4x2
 
-typedef detail::tmat4x3
-< double, highp > 
double4x3
 
-typedef detail::tmat4x4
-< double, highp > 
double4x4
 
typedef highp_dquat dquat
 
typedef highp_fdualquat dualquat
 
typedef highp_dvec2 dvec2
 
typedef highp_dvec3 dvec3
 
typedef highp_dvec4 dvec4
 
typedef detail::uint32 dword
 
typedef highp_float32_t f32
 
typedef f32mat2x2 f32mat2
 
typedef highp_f32mat2x2 f32mat2x2
 
typedef highp_f32mat2x3 f32mat2x3
 
typedef highp_f32mat2x4 f32mat2x4
 
typedef f32mat3x3 f32mat3
 
typedef highp_f32mat3x2 f32mat3x2
 
typedef highp_f32mat3x3 f32mat3x3
 
typedef highp_f32mat3x4 f32mat3x4
 
typedef f32mat4x4 f32mat4
 
typedef highp_f32mat4x2 f32mat4x2
 
typedef highp_f32mat4x3 f32mat4x3
 
typedef highp_f32mat4x4 f32mat4x4
 
typedef highp_f32quat f32quat
 
typedef highp_f32vec1 f32vec1
 
typedef highp_f32vec2 f32vec2
 
typedef highp_f32vec3 f32vec3
 
typedef highp_f32vec4 f32vec4
 
typedef highp_float64_t f64
 
typedef f64mat2x2 f64mat2
 
typedef highp_f64mat2x2 f64mat2x2
 
typedef highp_f64mat2x3 f64mat2x3
 
typedef highp_f64mat2x4 f64mat2x4
 
typedef f64mat3x3 f64mat3
 
typedef highp_f64mat3x2 f64mat3x2
 
typedef highp_f64mat3x3 f64mat3x3
 
typedef highp_f64mat3x4 f64mat3x4
 
typedef f64mat4x4 f64mat4
 
typedef highp_f64mat4x2 f64mat4x2
 
typedef highp_f64mat4x3 f64mat4x3
 
typedef highp_f64mat4x4 f64mat4x4
 
typedef highp_f64quat f64quat
 
typedef highp_f64vec1 f64vec1
 
typedef highp_f64vec2 f64vec2
 
typedef highp_f64vec3 f64vec3
 
typedef highp_f64vec4 f64vec4
 
typedef highp_fdualquat fdualquat
 
-typedef float float1
 
-typedef float float1x1
 
-typedef detail::tvec2< float,
-highp > 
float2
 
-typedef detail::tmat2x2< float,
-highp > 
float2x2
 
-typedef detail::tmat2x3< float,
-highp > 
float2x3
 
-typedef detail::tmat2x4< float,
-highp > 
float2x4
 
-typedef detail::tvec3< float,
-highp > 
float3
 
typedef float float32
 
typedef highp_float32_t float32_t
 
-typedef detail::tmat3x2< float,
-highp > 
float3x2
 
-typedef detail::tmat3x3< float,
-highp > 
float3x3
 
-typedef detail::tmat3x4< float,
-highp > 
float3x4
 
-typedef detail::tvec4< float,
-highp > 
float4
 
-typedef detail::tmat4x2< float,
-highp > 
float4x2
 
-typedef detail::tmat4x3< float,
-highp > 
float4x3
 
-typedef detail::tmat4x4< float,
-highp > 
float4x4
 
typedef double float64
 
typedef highp_float64_t float64_t
 
typedef fmat2x2 fmat2
 
typedef highp_f32mat2x2 fmat2x2
 
typedef highp_f32mat2x3 fmat2x3
 
typedef highp_f32mat2x4 fmat2x4
 
typedef fmat3x3 fmat3
 
typedef highp_f32mat3x2 fmat3x2
 
typedef highp_f32mat3x3 fmat3x3
 
typedef highp_f32mat3x4 fmat3x4
 
typedef fmat4x4 fmat4
 
typedef highp_f32mat4x2 fmat4x2
 
typedef highp_f32mat4x3 fmat4x3
 
typedef highp_f32mat4x4 fmat4x4
 
typedef quat fquat
 
typedef highp_f32vec1 fvec1
 
typedef highp_f32vec2 fvec2
 
typedef highp_f32vec3 fvec3
 
typedef highp_f32vec4 fvec4
 
typedef highp_bvec1_t highp_bvec1
 
typedef detail::tvec2< bool,
-highp > 
highp_bvec2
 
typedef detail::tvec3< bool,
-highp > 
highp_bvec3
 
typedef detail::tvec4< bool,
-highp > 
highp_bvec4
 
typedef detail::tdualquat
-< double, highp > 
highp_ddualquat
 
typedef detail::tmat2x2
-< double, highp > 
highp_dmat2
 
typedef detail::tmat2x2
-< double, highp > 
highp_dmat2x2
 
typedef detail::tmat2x3
-< double, highp > 
highp_dmat2x3
 
typedef detail::tmat2x4
-< double, highp > 
highp_dmat2x4
 
typedef detail::tmat3x3
-< double, highp > 
highp_dmat3
 
typedef detail::tmat3x2
-< double, highp > 
highp_dmat3x2
 
typedef detail::tmat3x3
-< double, highp > 
highp_dmat3x3
 
typedef detail::tmat3x4
-< double, highp > 
highp_dmat3x4
 
typedef detail::tmat4x4
-< double, highp > 
highp_dmat4
 
typedef detail::tmat4x2
-< double, highp > 
highp_dmat4x2
 
typedef detail::tmat4x3
-< double, highp > 
highp_dmat4x3
 
typedef detail::tmat4x4
-< double, highp > 
highp_dmat4x4
 
typedef detail::tquat< double,
-highp > 
highp_dquat
 
typedef detail::tdualquat
-< float, highp > 
highp_dualquat
 
typedef detail::tvec2< double,
-highp > 
highp_dvec2
 
typedef detail::tvec3< double,
-highp > 
highp_dvec3
 
typedef detail::tvec4< double,
-highp > 
highp_dvec4
 
typedef float32 highp_f32
 
typedef highp_f32mat2x2 highp_f32mat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_f32mat2x4
 
typedef highp_f32mat3x3 highp_f32mat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_f32mat3x4
 
typedef highp_f32mat4x4 highp_f32mat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_f32mat4x4
 
typedef detail::tquat< f32, highp > highp_f32quat
 
typedef detail::tvec1< f32, highp > highp_f32vec1
 
typedef detail::tvec2< f32, highp > highp_f32vec2
 
typedef detail::tvec3< f32, highp > highp_f32vec3
 
typedef detail::tvec4< f32, highp > highp_f32vec4
 
typedef float64 highp_f64
 
typedef highp_f64mat2x2 highp_f64mat2
 
typedef detail::tmat2x2< f64,
-highp > 
highp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-highp > 
highp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-highp > 
highp_f64mat2x4
 
typedef highp_f64mat3x3 highp_f64mat3
 
typedef detail::tmat3x2< f64,
-highp > 
highp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-highp > 
highp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-highp > 
highp_f64mat3x4
 
typedef highp_f64mat4x4 highp_f64mat4
 
typedef detail::tmat4x2< f64,
-highp > 
highp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-highp > 
highp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-highp > 
highp_f64mat4x4
 
typedef detail::tquat< f64, highp > highp_f64quat
 
typedef detail::tvec1< f64, highp > highp_f64vec1
 
typedef detail::tvec2< f64, highp > highp_f64vec2
 
typedef detail::tvec3< f64, highp > highp_f64vec3
 
typedef detail::tvec4< f64, highp > highp_f64vec4
 
typedef detail::tdualquat
-< float, highp > 
highp_fdualquat
 
typedef highp_float_t highp_float
 
typedef detail::float32 highp_float32
 
typedef detail::float32 highp_float32_t
 
typedef detail::float64 highp_float64
 
typedef detail::float64 highp_float64_t
 
typedef highp_fmat2x2 highp_fmat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_fmat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_fmat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_fmat2x4
 
typedef highp_fmat3x3 highp_fmat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_fmat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_fmat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_fmat3x4
 
typedef highp_fmat4x4 highp_fmat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_fmat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_fmat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_fmat4x4
 
typedef highp_quat highp_fquat
 
typedef detail::tvec1< float,
-highp > 
highp_fvec1
 
typedef detail::tvec2< float,
-highp > 
highp_fvec2
 
typedef detail::tvec3< float,
-highp > 
highp_fvec3
 
typedef detail::tvec4< float,
-highp > 
highp_fvec4
 
typedef detail::int16 highp_i16
 
typedef detail::tvec1< i16, highp > highp_i16vec1
 
typedef detail::tvec2< i16, highp > highp_i16vec2
 
typedef detail::tvec3< i16, highp > highp_i16vec3
 
typedef detail::tvec4< i16, highp > highp_i16vec4
 
typedef detail::int32 highp_i32
 
typedef detail::tvec1< i32, highp > highp_i32vec1
 
typedef detail::tvec2< i32, highp > highp_i32vec2
 
typedef detail::tvec3< i32, highp > highp_i32vec3
 
typedef detail::tvec4< i32, highp > highp_i32vec4
 
typedef detail::int64 highp_i64
 
typedef detail::tvec1< i64, highp > highp_i64vec1
 
typedef detail::tvec2< i64, highp > highp_i64vec2
 
typedef detail::tvec3< i64, highp > highp_i64vec3
 
typedef detail::tvec4< i64, highp > highp_i64vec4
 
typedef detail::int8 highp_i8
 
typedef detail::tvec1< i8, highp > highp_i8vec1
 
typedef detail::tvec2< i8, highp > highp_i8vec2
 
typedef detail::tvec3< i8, highp > highp_i8vec3
 
typedef detail::tvec4< i8, highp > highp_i8vec4
 
typedef detail::tmat2x2< int,
-highp > 
highp_imat2
 
typedef detail::tmat2x2< int,
-highp > 
highp_imat2x2
 
typedef detail::tmat2x3< int,
-highp > 
highp_imat2x3
 
typedef detail::tmat2x4< int,
-highp > 
highp_imat2x4
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3
 
typedef detail::tmat3x2< int,
-highp > 
highp_imat3x2
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3x3
 
typedef detail::tmat3x4< int,
-highp > 
highp_imat3x4
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4
 
typedef detail::tmat4x2< int,
-highp > 
highp_imat4x2
 
typedef detail::tmat4x3< int,
-highp > 
highp_imat4x3
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4x4
 
typedef detail::highp_int_t highp_int
 
typedef detail::int16 highp_int16
 
typedef detail::int16 highp_int16_t
 
typedef detail::int32 highp_int32
 
typedef detail::int32 highp_int32_t
 
typedef detail::int64 highp_int64
 
typedef detail::int64 highp_int64_t
 
typedef detail::int8 highp_int8
 
typedef detail::int8 highp_int8_t
 
typedef highp_ivec1_t highp_ivec1
 
typedef detail::tvec2< int, highp > highp_ivec2
 
typedef detail::tvec3< int, highp > highp_ivec3
 
typedef detail::tvec4< int, highp > highp_ivec4
 
typedef detail::tmat2x2< float,
-highp > 
highp_mat2
 
typedef detail::tmat2x2< float,
-highp > 
highp_mat2x2
 
typedef detail::tmat2x3< float,
-highp > 
highp_mat2x3
 
typedef detail::tmat2x4< float,
-highp > 
highp_mat2x4
 
typedef detail::tmat3x3< float,
-highp > 
highp_mat3
 
typedef detail::tmat3x2< float,
-highp > 
highp_mat3x2
 
typedef detail::tmat3x3< float,
-highp > 
highp_mat3x3
 
typedef detail::tmat3x4< float,
-highp > 
highp_mat3x4
 
typedef detail::tmat4x4< float,
-highp > 
highp_mat4
 
typedef detail::tmat4x2< float,
-highp > 
highp_mat4x2
 
typedef detail::tmat4x3< float,
-highp > 
highp_mat4x3
 
typedef detail::tmat4x4< float,
-highp > 
highp_mat4x4
 
typedef detail::tquat< float,
-highp > 
highp_quat
 
typedef detail::uint16 highp_u16
 
typedef detail::tvec1< u16, highp > highp_u16vec1
 
typedef detail::tvec2< u16, highp > highp_u16vec2
 
typedef detail::tvec3< u16, highp > highp_u16vec3
 
typedef detail::tvec4< u16, highp > highp_u16vec4
 
typedef detail::uint32 highp_u32
 
typedef detail::tvec1< u32, highp > highp_u32vec1
 
typedef detail::tvec2< u32, highp > highp_u32vec2
 
typedef detail::tvec3< u32, highp > highp_u32vec3
 
typedef detail::tvec4< u32, highp > highp_u32vec4
 
typedef detail::uint64 highp_u64
 
typedef detail::tvec1< u64, highp > highp_u64vec1
 
typedef detail::tvec2< u64, highp > highp_u64vec2
 
typedef detail::tvec3< u64, highp > highp_u64vec3
 
typedef detail::tvec4< u64, highp > highp_u64vec4
 
typedef detail::uint8 highp_u8
 
typedef detail::tvec1< u8, highp > highp_u8vec1
 
typedef detail::tvec2< u8, highp > highp_u8vec2
 
typedef detail::tvec3< u8, highp > highp_u8vec3
 
typedef detail::tvec4< u8, highp > highp_u8vec4
 
typedef detail::highp_uint_t highp_uint
 
typedef detail::uint16 highp_uint16
 
typedef detail::uint16 highp_uint16_t
 
typedef detail::uint32 highp_uint32
 
typedef detail::uint32 highp_uint32_t
 
typedef detail::uint64 highp_uint64
 
typedef detail::uint64 highp_uint64_t
 
typedef detail::uint8 highp_uint8
 
typedef detail::uint8 highp_uint8_t
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2x2
 
typedef detail::tmat2x3< uint,
-highp > 
highp_umat2x3
 
typedef detail::tmat2x4< uint,
-highp > 
highp_umat2x4
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3
 
typedef detail::tmat3x2< uint,
-highp > 
highp_umat3x2
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3x3
 
typedef detail::tmat3x4< uint,
-highp > 
highp_umat3x4
 
typedef detail::tmat4x4< uint,
-highp > 
highp_umat4
 
typedef detail::tmat4x2< uint,
-highp > 
highp_umat4x2
 
typedef detail::tmat4x3< uint,
-highp > 
highp_umat4x3
 
typedef detail::tmat4x4< uint,
-highp > 
highp_umat4x4
 
typedef highp_uvec1_t highp_uvec1
 
typedef detail::tvec2< uint,
-highp > 
highp_uvec2
 
typedef detail::tvec3< uint,
-highp > 
highp_uvec3
 
typedef detail::tvec4< uint,
-highp > 
highp_uvec4
 
typedef detail::tvec1< float,
-highp > 
highp_vec1
 
typedef detail::tvec2< float,
-highp > 
highp_vec2
 
typedef detail::tvec3< float,
-highp > 
highp_vec3
 
typedef detail::tvec4< float,
-highp > 
highp_vec4
 
typedef detail::int16 i16
 
typedef highp_i16vec1 i16vec1
 
typedef highp_i16vec2 i16vec2
 
typedef highp_i16vec3 i16vec3
 
typedef highp_i16vec4 i16vec4
 
typedef detail::int32 i32
 
typedef highp_i32vec1 i32vec1
 
typedef highp_i32vec2 i32vec2
 
typedef highp_i32vec3 i32vec3
 
typedef highp_i32vec4 i32vec4
 
typedef detail::int64 i64
 
typedef highp_i64vec1 i64vec1
 
typedef highp_i64vec2 i64vec2
 
typedef highp_i64vec3 i64vec3
 
typedef highp_i64vec4 i64vec4
 
typedef detail::int8 i8
 
typedef highp_i8vec1 i8vec1
 
typedef highp_i8vec2 i8vec2
 
typedef highp_i8vec3 i8vec3
 
typedef highp_i8vec4 i8vec4
 
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 int int1
 
typedef detail::int16 int16
 
typedef detail::int16 int16_t
 
-typedef int int1x1
 
-typedef detail::tvec2< int, highp > int2
 
-typedef detail::tmat2x2< int,
-highp > 
int2x2
 
-typedef detail::tmat2x3< int,
-highp > 
int2x3
 
-typedef detail::tmat2x4< int,
-highp > 
int2x4
 
-typedef detail::tvec3< int, highp > int3
 
typedef detail::int32 int32
 
typedef detail::int32 int32_t
 
-typedef detail::tmat3x2< int,
-highp > 
int3x2
 
-typedef detail::tmat3x3< int,
-highp > 
int3x3
 
-typedef detail::tmat3x4< int,
-highp > 
int3x4
 
-typedef detail::tvec4< int, highp > int4
 
-typedef detail::tmat4x2< int,
-highp > 
int4x2
 
-typedef detail::tmat4x3< int,
-highp > 
int4x3
 
-typedef detail::tmat4x4< int,
-highp > 
int4x4
 
typedef detail::int64 int64
 
typedef detail::int64 int64_t
 
typedef detail::int8 int8
 
typedef detail::int8 int8_t
 
typedef highp_ivec1 ivec1
 
typedef highp_ivec2 ivec2
 
typedef highp_ivec3 ivec3
 
typedef highp_ivec4 ivec4
 
typedef lowp_bvec1_t lowp_bvec1
 
typedef detail::tvec2< bool, lowp > lowp_bvec2
 
typedef detail::tvec3< bool, lowp > lowp_bvec3
 
typedef detail::tvec4< bool, lowp > lowp_bvec4
 
typedef detail::tdualquat
-< double, lowp > 
lowp_ddualquat
 
typedef detail::tmat2x2
-< double, lowp > 
lowp_dmat2
 
typedef detail::tmat2x2
-< double, lowp > 
lowp_dmat2x2
 
typedef detail::tmat2x3
-< double, lowp > 
lowp_dmat2x3
 
typedef detail::tmat2x4
-< double, lowp > 
lowp_dmat2x4
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_dmat3
 
typedef detail::tmat3x2
-< double, lowp > 
lowp_dmat3x2
 
typedef detail::tmat3x3
-< double, lowp > 
lowp_dmat3x3
 
typedef detail::tmat3x4
-< double, lowp > 
lowp_dmat3x4
 
typedef detail::tmat4x4
-< double, lowp > 
lowp_dmat4
 
typedef detail::tmat4x2
-< double, lowp > 
lowp_dmat4x2
 
typedef detail::tmat4x3
-< double, lowp > 
lowp_dmat4x3
 
typedef detail::tmat4x4
-< double, lowp > 
lowp_dmat4x4
 
typedef detail::tquat< double,
-lowp > 
lowp_dquat
 
typedef detail::tdualquat
-< float, lowp > 
lowp_dualquat
 
typedef detail::tvec2< double,
-lowp > 
lowp_dvec2
 
typedef detail::tvec3< double,
-lowp > 
lowp_dvec3
 
typedef detail::tvec4< double,
-lowp > 
lowp_dvec4
 
typedef float32 lowp_f32
 
typedef lowp_f32mat2x2 lowp_f32mat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_f32mat2x4
 
typedef lowp_f32mat3x3 lowp_f32mat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_f32mat3x4
 
typedef lowp_f32mat4x4 lowp_f32mat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_f32mat4x4
 
typedef detail::tquat< f32, lowp > lowp_f32quat
 
typedef detail::tvec1< f32, lowp > lowp_f32vec1
 
typedef detail::tvec2< f32, lowp > lowp_f32vec2
 
typedef detail::tvec3< f32, lowp > lowp_f32vec3
 
typedef detail::tvec4< f32, lowp > lowp_f32vec4
 
typedef float64 lowp_f64
 
typedef lowp_f64mat2x2 lowp_f64mat2
 
typedef detail::tmat2x2< f64,
-lowp > 
lowp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-lowp > 
lowp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-lowp > 
lowp_f64mat2x4
 
typedef lowp_f64mat3x3 lowp_f64mat3
 
typedef detail::tmat3x2< f64,
-lowp > 
lowp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-lowp > 
lowp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-lowp > 
lowp_f64mat3x4
 
typedef lowp_f64mat4x4 lowp_f64mat4
 
typedef detail::tmat4x2< f64,
-lowp > 
lowp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-lowp > 
lowp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-lowp > 
lowp_f64mat4x4
 
typedef detail::tquat< f64, lowp > lowp_f64quat
 
typedef detail::tvec1< f64, lowp > lowp_f64vec1
 
typedef detail::tvec2< f64, lowp > lowp_f64vec2
 
typedef detail::tvec3< f64, lowp > lowp_f64vec3
 
typedef detail::tvec4< f64, lowp > lowp_f64vec4
 
typedef detail::tdualquat
-< float, lowp > 
lowp_fdualquat
 
typedef lowp_float_t lowp_float
 
typedef detail::float32 lowp_float32
 
typedef detail::float32 lowp_float32_t
 
typedef detail::float64 lowp_float64
 
typedef detail::float64 lowp_float64_t
 
typedef lowp_fmat2x2 lowp_fmat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_fmat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_fmat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_fmat2x4
 
typedef lowp_fmat3x3 lowp_fmat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_fmat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_fmat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_fmat3x4
 
typedef lowp_fmat4x4 lowp_fmat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_fmat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_fmat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_fmat4x4
 
typedef lowp_quat lowp_fquat
 
typedef detail::tvec1< float,
-lowp > 
lowp_fvec1
 
typedef detail::tvec2< float,
-lowp > 
lowp_fvec2
 
typedef detail::tvec3< float,
-lowp > 
lowp_fvec3
 
typedef detail::tvec4< float,
-lowp > 
lowp_fvec4
 
typedef detail::int16 lowp_i16
 
typedef detail::tvec1< i16, lowp > lowp_i16vec1
 
typedef detail::tvec2< i16, lowp > lowp_i16vec2
 
typedef detail::tvec3< i16, lowp > lowp_i16vec3
 
typedef detail::tvec4< i16, lowp > lowp_i16vec4
 
typedef detail::int32 lowp_i32
 
typedef detail::tvec1< i32, lowp > lowp_i32vec1
 
typedef detail::tvec2< i32, lowp > lowp_i32vec2
 
typedef detail::tvec3< i32, lowp > lowp_i32vec3
 
typedef detail::tvec4< i32, lowp > lowp_i32vec4
 
typedef detail::int64 lowp_i64
 
typedef detail::tvec1< i64, lowp > lowp_i64vec1
 
typedef detail::tvec2< i64, lowp > lowp_i64vec2
 
typedef detail::tvec3< i64, lowp > lowp_i64vec3
 
typedef detail::tvec4< i64, lowp > lowp_i64vec4
 
typedef detail::int8 lowp_i8
 
typedef detail::tvec1< i8, lowp > lowp_i8vec1
 
typedef detail::tvec2< i8, lowp > lowp_i8vec2
 
typedef detail::tvec3< i8, lowp > lowp_i8vec3
 
typedef detail::tvec4< i8, lowp > lowp_i8vec4
 
typedef detail::tmat2x2< int,
-lowp > 
lowp_imat2
 
typedef detail::tmat2x2< int,
-lowp > 
lowp_imat2x2
 
typedef detail::tmat2x3< int,
-lowp > 
lowp_imat2x3
 
typedef detail::tmat2x4< int,
-lowp > 
lowp_imat2x4
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3
 
typedef detail::tmat3x2< int,
-lowp > 
lowp_imat3x2
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3x3
 
typedef detail::tmat3x4< int,
-lowp > 
lowp_imat3x4
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4
 
typedef detail::tmat4x2< int,
-lowp > 
lowp_imat4x2
 
typedef detail::tmat4x3< int,
-lowp > 
lowp_imat4x3
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4x4
 
typedef detail::lowp_int_t lowp_int
 
typedef detail::int16 lowp_int16
 
typedef detail::int16 lowp_int16_t
 
typedef detail::int32 lowp_int32
 
typedef detail::int32 lowp_int32_t
 
typedef detail::int64 lowp_int64
 
typedef detail::int64 lowp_int64_t
 
typedef detail::int8 lowp_int8
 
typedef detail::int8 lowp_int8_t
 
typedef lowp_ivec1_t lowp_ivec1
 
typedef detail::tvec2< int, lowp > lowp_ivec2
 
typedef detail::tvec3< int, lowp > lowp_ivec3
 
typedef detail::tvec4< int, lowp > lowp_ivec4
 
typedef detail::tmat2x2< float,
-lowp > 
lowp_mat2
 
typedef detail::tmat2x2< float,
-lowp > 
lowp_mat2x2
 
typedef detail::tmat2x3< float,
-lowp > 
lowp_mat2x3
 
typedef detail::tmat2x4< float,
-lowp > 
lowp_mat2x4
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_mat3
 
typedef detail::tmat3x2< float,
-lowp > 
lowp_mat3x2
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_mat3x3
 
typedef detail::tmat3x4< float,
-lowp > 
lowp_mat3x4
 
typedef detail::tmat4x4< float,
-lowp > 
lowp_mat4
 
typedef detail::tmat4x2< float,
-lowp > 
lowp_mat4x2
 
typedef detail::tmat4x3< float,
-lowp > 
lowp_mat4x3
 
typedef detail::tmat4x4< float,
-lowp > 
lowp_mat4x4
 
typedef detail::tquat< float,
-lowp > 
lowp_quat
 
typedef detail::uint16 lowp_u16
 
typedef detail::tvec1< u16, lowp > lowp_u16vec1
 
typedef detail::tvec2< u16, lowp > lowp_u16vec2
 
typedef detail::tvec3< u16, lowp > lowp_u16vec3
 
typedef detail::tvec4< u16, lowp > lowp_u16vec4
 
typedef detail::uint32 lowp_u32
 
typedef detail::tvec1< u32, lowp > lowp_u32vec1
 
typedef detail::tvec2< u32, lowp > lowp_u32vec2
 
typedef detail::tvec3< u32, lowp > lowp_u32vec3
 
typedef detail::tvec4< u32, lowp > lowp_u32vec4
 
typedef detail::uint64 lowp_u64
 
typedef detail::tvec1< u64, lowp > lowp_u64vec1
 
typedef detail::tvec2< u64, lowp > lowp_u64vec2
 
typedef detail::tvec3< u64, lowp > lowp_u64vec3
 
typedef detail::tvec4< u64, lowp > lowp_u64vec4
 
typedef detail::uint8 lowp_u8
 
typedef detail::tvec1< u8, lowp > lowp_u8vec1
 
typedef detail::tvec2< u8, lowp > lowp_u8vec2
 
typedef detail::tvec3< u8, lowp > lowp_u8vec3
 
typedef detail::tvec4< u8, lowp > lowp_u8vec4
 
typedef detail::lowp_uint_t lowp_uint
 
typedef detail::uint16 lowp_uint16
 
typedef detail::uint16 lowp_uint16_t
 
typedef detail::uint32 lowp_uint32
 
typedef detail::uint32 lowp_uint32_t
 
typedef detail::uint64 lowp_uint64
 
typedef detail::uint64 lowp_uint64_t
 
typedef detail::uint8 lowp_uint8
 
typedef detail::uint8 lowp_uint8_t
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2x2
 
typedef detail::tmat2x3< uint,
-lowp > 
lowp_umat2x3
 
typedef detail::tmat2x4< uint,
-lowp > 
lowp_umat2x4
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3
 
typedef detail::tmat3x2< uint,
-lowp > 
lowp_umat3x2
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3x3
 
typedef detail::tmat3x4< uint,
-lowp > 
lowp_umat3x4
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4
 
typedef detail::tmat4x2< uint,
-lowp > 
lowp_umat4x2
 
typedef detail::tmat4x3< uint,
-lowp > 
lowp_umat4x3
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4x4
 
typedef lowp_uvec1_t lowp_uvec1
 
typedef detail::tvec2< uint, lowp > lowp_uvec2
 
typedef detail::tvec3< uint, lowp > lowp_uvec3
 
typedef detail::tvec4< uint, lowp > lowp_uvec4
 
typedef detail::tvec1< float,
-lowp > 
lowp_vec1
 
typedef detail::tvec2< float,
-lowp > 
lowp_vec2
 
typedef detail::tvec3< float,
-lowp > 
lowp_vec3
 
typedef detail::tvec4< float,
-lowp > 
lowp_vec4
 
typedef mat2x2 mat2
 
typedef highp_mat2x2 mat2x2
 
typedef highp_mat2x3 mat2x3
 
typedef highp_mat2x4 mat2x4
 
typedef mat3x3 mat3
 
typedef highp_mat3x2 mat3x2
 
typedef highp_mat3x3 mat3x3
 
typedef highp_mat3x4 mat3x4
 
typedef mat4x4 mat4
 
typedef highp_mat4x2 mat4x2
 
typedef highp_mat4x3 mat4x3
 
typedef highp_mat4x4 mat4x4
 
typedef mediump_bvec1_t mediump_bvec1
 
typedef detail::tvec2< bool,
-mediump > 
mediump_bvec2
 
typedef detail::tvec3< bool,
-mediump > 
mediump_bvec3
 
typedef detail::tvec4< bool,
-mediump > 
mediump_bvec4
 
typedef detail::tdualquat
-< double, mediump > 
mediump_ddualquat
 
typedef detail::tmat2x2
-< double, mediump > 
mediump_dmat2
 
typedef detail::tmat2x2
-< double, mediump > 
mediump_dmat2x2
 
typedef detail::tmat2x3
-< double, mediump > 
mediump_dmat2x3
 
typedef detail::tmat2x4
-< double, mediump > 
mediump_dmat2x4
 
typedef detail::tmat3x3
-< double, mediump > 
mediump_dmat3
 
typedef detail::tmat3x2
-< double, mediump > 
mediump_dmat3x2
 
typedef detail::tmat3x3
-< double, mediump > 
mediump_dmat3x3
 
typedef detail::tmat3x4
-< double, mediump > 
mediump_dmat3x4
 
typedef detail::tmat4x4
-< double, mediump > 
mediump_dmat4
 
typedef detail::tmat4x2
-< double, mediump > 
mediump_dmat4x2
 
typedef detail::tmat4x3
-< double, mediump > 
mediump_dmat4x3
 
typedef detail::tmat4x4
-< double, mediump > 
mediump_dmat4x4
 
typedef detail::tquat< double,
-mediump > 
mediump_dquat
 
typedef detail::tdualquat
-< float, mediump > 
mediump_dualquat
 
typedef detail::tvec2< double,
-mediump > 
mediump_dvec2
 
typedef detail::tvec3< double,
-mediump > 
mediump_dvec3
 
typedef detail::tvec4< double,
-mediump > 
mediump_dvec4
 
typedef float32 mediump_f32
 
typedef mediump_f32mat2x2 mediump_f32mat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_f32mat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_f32mat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_f32mat2x4
 
typedef mediump_f32mat3x3 mediump_f32mat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_f32mat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_f32mat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_f32mat3x4
 
typedef mediump_f32mat4x4 mediump_f32mat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_f32mat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_f32mat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_f32mat4x4
 
typedef detail::tquat< f32,
-mediump > 
mediump_f32quat
 
typedef detail::tvec1< f32,
-mediump > 
mediump_f32vec1
 
typedef detail::tvec2< f32,
-mediump > 
mediump_f32vec2
 
typedef detail::tvec3< f32,
-mediump > 
mediump_f32vec3
 
typedef detail::tvec4< f32,
-mediump > 
mediump_f32vec4
 
typedef float64 mediump_f64
 
typedef mediump_f64mat2x2 mediump_f64mat2
 
typedef detail::tmat2x2< f64,
-mediump > 
mediump_f64mat2x2
 
typedef detail::tmat2x3< f64,
-mediump > 
mediump_f64mat2x3
 
typedef detail::tmat2x4< f64,
-mediump > 
mediump_f64mat2x4
 
typedef mediump_f64mat3x3 mediump_f64mat3
 
typedef detail::tmat3x2< f64,
-mediump > 
mediump_f64mat3x2
 
typedef detail::tmat3x3< f64,
-mediump > 
mediump_f64mat3x3
 
typedef detail::tmat3x4< f64,
-mediump > 
mediump_f64mat3x4
 
typedef mediump_f64mat4x4 mediump_f64mat4
 
typedef detail::tmat4x2< f64,
-mediump > 
mediump_f64mat4x2
 
typedef detail::tmat4x3< f64,
-mediump > 
mediump_f64mat4x3
 
typedef detail::tmat4x4< f64,
-mediump > 
mediump_f64mat4x4
 
typedef detail::tquat< f64,
-mediump > 
mediump_f64quat
 
typedef detail::tvec1< f64,
-mediump > 
mediump_f64vec1
 
typedef detail::tvec2< f64,
-mediump > 
mediump_f64vec2
 
typedef detail::tvec3< f64,
-mediump > 
mediump_f64vec3
 
typedef detail::tvec4< f64,
-mediump > 
mediump_f64vec4
 
typedef detail::tdualquat
-< float, mediump > 
mediump_fdualquat
 
typedef mediump_float_t mediump_float
 
typedef detail::float32 mediump_float32
 
typedef detail::float32 mediump_float32_t
 
typedef detail::float64 mediump_float64
 
typedef detail::float64 mediump_float64_t
 
typedef mediump_fmat2x2 mediump_fmat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_fmat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_fmat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_fmat2x4
 
typedef mediump_fmat3x3 mediump_fmat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_fmat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_fmat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_fmat3x4
 
typedef mediump_fmat4x4 mediump_fmat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_fmat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_fmat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_fmat4x4
 
typedef mediump_quat mediump_fquat
 
typedef detail::tvec1< float,
-mediump > 
mediump_fvec1
 
typedef detail::tvec2< float,
-mediump > 
mediump_fvec2
 
typedef detail::tvec3< float,
-mediump > 
mediump_fvec3
 
typedef detail::tvec4< float,
-mediump > 
mediump_fvec4
 
typedef detail::int16 mediump_i16
 
typedef detail::tvec1< i16,
-mediump > 
mediump_i16vec1
 
typedef detail::tvec2< i16,
-mediump > 
mediump_i16vec2
 
typedef detail::tvec3< i16,
-mediump > 
mediump_i16vec3
 
typedef detail::tvec4< i16,
-mediump > 
mediump_i16vec4
 
typedef detail::int32 mediump_i32
 
typedef detail::tvec1< i32,
-mediump > 
mediump_i32vec1
 
typedef detail::tvec2< i32,
-mediump > 
mediump_i32vec2
 
typedef detail::tvec3< i32,
-mediump > 
mediump_i32vec3
 
typedef detail::tvec4< i32,
-mediump > 
mediump_i32vec4
 
typedef detail::int64 mediump_i64
 
typedef detail::tvec1< i64,
-mediump > 
mediump_i64vec1
 
typedef detail::tvec2< i64,
-mediump > 
mediump_i64vec2
 
typedef detail::tvec3< i64,
-mediump > 
mediump_i64vec3
 
typedef detail::tvec4< i64,
-mediump > 
mediump_i64vec4
 
typedef detail::int8 mediump_i8
 
typedef detail::tvec1< i8,
-mediump > 
mediump_i8vec1
 
typedef detail::tvec2< i8,
-mediump > 
mediump_i8vec2
 
typedef detail::tvec3< i8,
-mediump > 
mediump_i8vec3
 
typedef detail::tvec4< i8,
-mediump > 
mediump_i8vec4
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2x2
 
typedef detail::tmat2x3< int,
-mediump > 
mediump_imat2x3
 
typedef detail::tmat2x4< int,
-mediump > 
mediump_imat2x4
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3
 
typedef detail::tmat3x2< int,
-mediump > 
mediump_imat3x2
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3x3
 
typedef detail::tmat3x4< int,
-mediump > 
mediump_imat3x4
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4
 
typedef detail::tmat4x2< int,
-mediump > 
mediump_imat4x2
 
typedef detail::tmat4x3< int,
-mediump > 
mediump_imat4x3
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4x4
 
typedef detail::mediump_int_t mediump_int
 
typedef detail::int16 mediump_int16
 
typedef detail::int16 mediump_int16_t
 
typedef detail::int32 mediump_int32
 
typedef detail::int32 mediump_int32_t
 
typedef detail::int64 mediump_int64
 
typedef detail::int64 mediump_int64_t
 
typedef detail::int8 mediump_int8
 
typedef detail::int8 mediump_int8_t
 
typedef mediump_ivec1_t mediump_ivec1
 
typedef detail::tvec2< int,
-mediump > 
mediump_ivec2
 
typedef detail::tvec3< int,
-mediump > 
mediump_ivec3
 
typedef detail::tvec4< int,
-mediump > 
mediump_ivec4
 
typedef detail::tmat2x2< float,
-mediump > 
mediump_mat2
 
typedef detail::tmat2x2< float,
-mediump > 
mediump_mat2x2
 
typedef detail::tmat2x3< float,
-mediump > 
mediump_mat2x3
 
typedef detail::tmat2x4< float,
-mediump > 
mediump_mat2x4
 
typedef detail::tmat3x3< float,
-mediump > 
mediump_mat3
 
typedef detail::tmat3x2< float,
-mediump > 
mediump_mat3x2
 
typedef detail::tmat3x3< float,
-mediump > 
mediump_mat3x3
 
typedef detail::tmat3x4< float,
-mediump > 
mediump_mat3x4
 
typedef detail::tmat4x4< float,
-mediump > 
mediump_mat4
 
typedef detail::tmat4x2< float,
-mediump > 
mediump_mat4x2
 
typedef detail::tmat4x3< float,
-mediump > 
mediump_mat4x3
 
typedef detail::tmat4x4< float,
-mediump > 
mediump_mat4x4
 
typedef detail::tquat< float,
-mediump > 
mediump_quat
 
typedef detail::uint16 mediump_u16
 
typedef detail::tvec1< u16,
-mediump > 
mediump_u16vec1
 
typedef detail::tvec2< u16,
-mediump > 
mediump_u16vec2
 
typedef detail::tvec3< u16,
-mediump > 
mediump_u16vec3
 
typedef detail::tvec4< u16,
-mediump > 
mediump_u16vec4
 
typedef detail::uint32 mediump_u32
 
typedef detail::tvec1< u32,
-mediump > 
mediump_u32vec1
 
typedef detail::tvec2< u32,
-mediump > 
mediump_u32vec2
 
typedef detail::tvec3< u32,
-mediump > 
mediump_u32vec3
 
typedef detail::tvec4< u32,
-mediump > 
mediump_u32vec4
 
typedef detail::uint64 mediump_u64
 
typedef detail::tvec1< u64,
-mediump > 
mediump_u64vec1
 
typedef detail::tvec2< u64,
-mediump > 
mediump_u64vec2
 
typedef detail::tvec3< u64,
-mediump > 
mediump_u64vec3
 
typedef detail::tvec4< u64,
-mediump > 
mediump_u64vec4
 
typedef detail::uint8 mediump_u8
 
typedef detail::tvec1< u8,
-mediump > 
mediump_u8vec1
 
typedef detail::tvec2< u8,
-mediump > 
mediump_u8vec2
 
typedef detail::tvec3< u8,
-mediump > 
mediump_u8vec3
 
typedef detail::tvec4< u8,
-mediump > 
mediump_u8vec4
 
typedef detail::mediump_uint_t mediump_uint
 
typedef detail::uint16 mediump_uint16
 
typedef detail::uint16 mediump_uint16_t
 
typedef detail::uint32 mediump_uint32
 
typedef detail::uint32 mediump_uint32_t
 
typedef detail::uint64 mediump_uint64
 
typedef detail::uint64 mediump_uint64_t
 
typedef detail::uint8 mediump_uint8
 
typedef detail::uint8 mediump_uint8_t
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2x2
 
typedef detail::tmat2x3< uint,
-mediump > 
mediump_umat2x3
 
typedef detail::tmat2x4< uint,
-mediump > 
mediump_umat2x4
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3
 
typedef detail::tmat3x2< uint,
-mediump > 
mediump_umat3x2
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3x3
 
typedef detail::tmat3x4< uint,
-mediump > 
mediump_umat3x4
 
typedef detail::tmat4x4< uint,
-mediump > 
mediump_umat4
 
typedef detail::tmat4x2< uint,
-mediump > 
mediump_umat4x2
 
typedef detail::tmat4x3< uint,
-mediump > 
mediump_umat4x3
 
typedef detail::tmat4x4< uint,
-mediump > 
mediump_umat4x4
 
typedef mediump_uvec1_t mediump_uvec1
 
typedef detail::tvec2< uint,
-mediump > 
mediump_uvec2
 
typedef detail::tvec3< uint,
-mediump > 
mediump_uvec3
 
typedef detail::tvec4< uint,
-mediump > 
mediump_uvec4
 
typedef detail::tvec1< float,
-mediump > 
mediump_vec1
 
typedef detail::tvec2< float,
-mediump > 
mediump_vec2
 
typedef detail::tvec3< float,
-mediump > 
mediump_vec3
 
typedef detail::tvec4< float,
-mediump > 
mediump_vec4
 
-typedef highp_quat quat
 
typedef detail::uint64 qword
 
typedef signed int sint
 
typedef detail::tvec2
-< std::size_t, defaultp > 
size2
 
typedef detail::tvec2
-< std::size_t, defaultp > 
size2_t
 
typedef detail::tvec3
-< std::size_t, defaultp > 
size3
 
typedef detail::tvec3
-< std::size_t, defaultp > 
size3_t
 
typedef detail::tvec4
-< std::size_t, defaultp > 
size4
 
typedef detail::tvec4
-< std::size_t, defaultp > 
size4_t
 
typedef detail::uint16 u16
 
typedef highp_u16vec1 u16vec1
 
typedef highp_u16vec2 u16vec2
 
typedef highp_u16vec3 u16vec3
 
typedef highp_u16vec4 u16vec4
 
typedef detail::uint32 u32
 
typedef highp_u32vec1 u32vec1
 
typedef highp_u32vec2 u32vec2
 
typedef highp_u32vec3 u32vec3
 
typedef highp_u32vec4 u32vec4
 
typedef detail::uint64 u64
 
typedef highp_u64vec1 u64vec1
 
typedef highp_u64vec2 u64vec2
 
typedef highp_u64vec3 u64vec3
 
typedef highp_u64vec4 u64vec4
 
typedef detail::uint8 u8
 
typedef highp_u8vec1 u8vec1
 
typedef highp_u8vec2 u8vec2
 
typedef highp_u8vec3 u8vec3
 
typedef highp_u8vec4 u8vec4
 
typedef unsigned int uint
 
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
 
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
 
typedef highp_uvec1 uvec1
 
typedef highp_uvec2 uvec2
 
typedef highp_uvec3 uvec3
 
typedef highp_uvec4 uvec4
 
typedef highp_vec1 vec1
 
typedef highp_vec2 vec2
 
typedef highp_vec3 vec3
 
typedef highp_vec4 vec4
 
typedef detail::uint16 word
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType abs (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acos (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acosh (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acot (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acoth (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsc (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acsch (genType const &x)
 
template<typename genType >
GLM_FUNC_QUALIFIER genType affineInverse (genType const &m)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool all (vecType< bool, P > const &v)
 
template<typename vecType >
GLM_FUNC_QUALIFIER
-vecType::value_type 
angle (vecType const &x, vecType const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T angle (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > angleAxis (T const &angle, detail::tvec3< T, P > const &axis)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool any (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areCollinear (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthogonal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthonormal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType asec (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asech (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asin (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asinh (genType const &x)
 
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)
 
template<typename genType >
GLM_FUNC_DECL genType atan (genType const &y, genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType atan (genType const &y_over_x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
atan2 (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
atan2 (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
atan2 (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y)
 
template<typename genType >
GLM_FUNC_DECL genType atanh (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > axis (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
void axisAngle (detail::tmat4x4< T, P > const &mat, detail::tvec3< T, P > &axis, T &angle)
 
template<typename T , precision P>
detail::tmat4x4< T, P > axisAngleMatrix (detail::tvec3< T, P > const &axis, T const angle)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
ballRand (T const &Radius)
 
template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
bitCount (genIUType< T > const &Value)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldExtract (genIUType const &Value, int const &Offset, int const &Bits)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldInsert (genIUType const &Base, genIUType const &Insert, int const &Offset, int const &Bits)
 
GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldReverse (genIUType const &Value)
 
template<typename genType >
GLM_DEPRECATED GLM_FUNC_DECL
-genType 
bitRevert (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateLeft (genType const &In, std::size_t Shift)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateRight (genType const &In, std::size_t Shift)
 
template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType ceil (genType const &x)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
circularRand (T const &Radius)
 
template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &x, genType const &minVal, genType const &maxVal)
 
template<typename T , precision P>
detail::tvec3< T, P > closestPointOnLine (detail::tvec3< T, P > const &point, detail::tvec3< T, P > const &a, detail::tvec3< T, P > const &b)
 
template<typename T , precision P>
detail::tmat2x2< T, P > colMajor2 (detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
 
template<typename T , precision P>
detail::tmat2x2< T, P > colMajor2 (detail::tmat2x2< T, P > const &m)
 
template<typename T , precision P>
detail::tmat3x3< T, P > colMajor3 (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename T , precision P>
detail::tmat3x3< T, P > colMajor3 (detail::tmat3x3< T, P > const &m)
 
template<typename T , precision P>
detail::tmat4x4< T, P > colMajor4 (detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
 
template<typename T , precision P>
detail::tmat4x4< T, P > colMajor4 (detail::tmat4x4< T, P > const &m)
 
template<typename genType >
genType::col_type column (genType const &m, length_t const &index)
 
template<typename genType >
genType column (genType const &m, length_t const &index, typename genType::col_type const &x)
 
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)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > conjugate (detail::tquat< T, P > const &q)
 
template<typename genType >
GLM_FUNC_DECL genType cos (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType cosh (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType cot (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType coth (genType const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tvec3< T, P > const &v, detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > cross (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType csc (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType csch (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType degrees (genType const &radians)
 
template<typename T , precision P>
detail::tmat2x2< T, P > diagonal2x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat2x3< T, P > diagonal2x3 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat2x4< T, P > diagonal2x4 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x2< T, P > diagonal3x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x3< T, P > diagonal3x3 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x4< T, P > diagonal3x4 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x2< T, P > diagonal4x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x3< T, P > diagonal4x3 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > diagonal4x4 (detail::tvec4< T, P > const &v)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
diskRand (T const &Radius)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type distance (genType const &p0, genType const &p1)
 
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 , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T dot (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType dot (genType const &x, genType const &y)
 
template<typename T , precision P, template< typename, precision > class quatType>
GLM_FUNC_DECL T dot (quatType< T, P > const &x, quatType< T, P > const &y)
 
template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat2x4< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat3x4< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType e ()
 
template<typename genType >
GLM_FUNC_DECL genType epsilon ()
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > epsilonEqual (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType::boolType epsilonNotEqual (genType const &x, genType const &y, typename genType::value_type const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
equal (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
detail::tvec3< T, P > euclidean (detail::tvec2< T, P > const &polar)
 
template<typename genType >
GLM_FUNC_DECL genType euler ()
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > eulerAngles (detail::tquat< T, P > const &x)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleX (T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleXY (T const &angleX, T const &angleY)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleXZ (T const &angleX, T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleY (T const &angleY)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYX (T const &angleY, T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYXZ (T const &yaw, T const &pitch, T const &roll)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYZ (T const &angleY, T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZ (T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZX (T const &angle, T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZY (T const &angleZ, T const &angleY)
 
template<typename genType >
GLM_FUNC_DECL genType exp (genType const &x)
 
template<typename T , precision P>
detail::tquat< T, P > exp (detail::tquat< T, P > const &q)
 
template<typename genType >
GLM_FUNC_DECL genType exp2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
 
template<typename T , precision P>
detail::tmat4x4< T, P > extractMatrixRotation (detail::tmat4x4< T, P > const &mat)
 
template<typename T , precision P>
extractRealComponent (detail::tquat< T, P > const &q)
 
template<typename genType >
GLM_FUNC_DECL genType faceforward (genType const &N, genType const &I, genType const &Nref)
 
template<typename genType >
genType factorial (genType const &x)
 
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 genType >
genType::value_type fastDistance (genType const &x, genType const &y)
 
template<typename T >
fastExp (const T &x)
 
template<typename T >
fastExp2 (const T &x)
 
template<typename genType >
genType fastInverseSqrt (genType const &x)
 
template<typename genType >
genType::value_type fastLength (genType const &x)
 
template<typename T >
fastLn (const T &x)
 
template<typename T >
fastLog (const T &x)
 
template<typename T >
fastLog2 (const T &x)
 
template<typename T , precision P>
detail::tquat< T, P > fastMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename genType >
genType fastNormalize (genType const &x)
 
template<typename genType >
genType::value_type fastNormalizeDot (genType const &x, genType const &y)
 
template<typename genType >
genType fastPow (genType const &x, genType const &y)
 
template<typename genTypeT , typename genTypeU >
genTypeT fastPow (genTypeT const &x, genTypeU const &y)
 
template<typename T >
fastSin (const T &angle)
 
template<typename genType >
genType fastSqrt (genType const &x)
 
template<typename T >
fastTan (const T &angle)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithOne (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithZero (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
findLSB (genIUType< T > const &Value)
 
template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
findMSB (genIUType< T > const &Value)
 
template<typename T >
GLM_FUNC_DECL uint float_distance (T const &x, T const &y)
 
template<typename T , template< typename > class vecType>
GLM_FUNC_DECL vecType< uintfloat_distance (vecType< T > const &x, vecType< T > const &y)
 
GLM_FUNC_DECL int floatBitsToInt (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< int, P > floatBitsToInt (vecType< float, P > const &v)
 
GLM_FUNC_DECL uint floatBitsToUint (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< uint, P > floatBitsToUint (vecType< float, P > const &v)
 
template<typename genType >
GLM_FUNC_DECL genType floor (genType const &x)
 
unsigned int floor_log2 (unsigned int x)
 
template<typename genType >
GLM_FUNC_DECL genType fma (genType const &a, genType const &b, genType const &c)
 
template<typename genType >
GLM_FUNC_DECL genType fract (genType const &x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType frexp (genType const &x, genIType &exp)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
frustum (T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far)
 
template<typename genType >
GLM_FUNC_DECL genType gaussRand (genType const &Mean, genType const &Deviation)
 
template<typename genType >
GLM_FUNC_DECL genType golden_ratio ()
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
greaterThan (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
greaterThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
 
template<typename genType >
genType higherMultiple (genType const &Source, genType const &Multiple)
 
template<typename genType >
GLM_FUNC_DECL genType highestBitValue (genType const &value)
 
template<typename T , precision P>
detail::tvec3< T, P > hsvColor (detail::tvec3< T, P > const &rgbValue)
 
template<typename genIType >
GLM_FUNC_DECL void imulExtended (genIType const &x, genIType const &y, genIType &msb, genIType &lsb)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
infinitePerspective (T fovy, T aspect, T near)
 
GLM_FUNC_DECL float intBitsToFloat (int const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > intBitsToFloat (vecType< int, P > const &v)
 
template<typename T , precision P>
detail::tquat< T, P > intermediate (detail::tquat< T, P > const &prev, detail::tquat< T, P > const &curr, detail::tquat< T, P > const &next)
 
template<typename T , precision P>
detail::tmat4x4< T, P > interpolate (detail::tmat4x4< T, P > const &m1, detail::tmat4x4< T, P > const &m2, T const delta)
 
template<typename genType >
bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 
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 intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 
template<typename genType >
bool intersectRayTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
 
template<typename T , precision P>
detail::tdualquat< T, P > inverse (detail::tdualquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > inverse (detail::tquat< T, P > const &q)
 
template<typename genType >
GLM_FUNC_DECL genType inversesqrt (genType const &x)
 
template<typename genType >
GLM_FUNC_QUALIFIER
-genType::value_type 
inverseTranspose (genType const &m)
 
template<typename T , precision P, template< typename, precision > class vecType>
vecType< bool, P > isCompNull (vecType< T, P > const &v, T const &epsilon)
 
-template<typename genType >
bool isfinite (genType const &x)
 
-template<typename T , precision P>
detail::tvec2< bool, P > isfinite (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
detail::tvec3< bool, P > isfinite (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
detail::tvec4< bool, P > isfinite (const detail::tvec4< T, P > &x)
 
template<typename T , precision P, template< typename, precision > class matType>
bool isIdentity (matType< T, P > const &m, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isinf (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isnan (genType const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNormalized (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNull (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class matType>
bool isOrthogonal (matType< T, P > const &m, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool isPowerOfTwo (genType const &value)
 
template<typename T , precision P>
l1Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l1Norm (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType ldexp (genType const &x, genIType const &exp)
 
template<typename T , precision P>
bool leftHanded (detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type length (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL T length (detail::tquat< T, P > const &q)
 
template<typename T >
length2 (T const &x)
 
template<typename genType >
genType::value_type length2 (genType const &x)
 
template<typename T , precision P>
length2 (detail::tquat< T, P > const &q)
 
-template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, const detail::tvec2< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, const detail::tvec3< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, const detail::tvec4< T, P > &a)
 
template<typename T , precision P>
detail::tdualquat< T, P > lerp (detail::tdualquat< T, P > const &x, detail::tdualquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > lerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
lessThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
linearGradient (detail::tvec2< T, P > const &Point0, detail::tvec2< T, P > const &Point1, detail::tvec2< T, P > const &Position)
 
template<typename genType >
GLM_FUNC_DECL genType linearRand (genType const &Min, genType const &Max)
 
template<typename genType >
GLM_FUNC_DECL genType ln_ln_two ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_ten ()
 
template<typename genType >
GLM_FUNC_DECL genType ln_two ()
 
template<typename genType >
genType log (genType const &x, genType const &base)
 
template<typename genType >
GLM_FUNC_DECL genType log (genType const &x)
 
template<typename T , precision P>
detail::tquat< T, P > log (detail::tquat< T, P > const &q)
 
template<typename genIUType >
genIUType log2 (genIUType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType log2 (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
lookAt (detail::tvec3< T, P > const &eye, detail::tvec3< T, P > const &center, detail::tvec3< T, P > const &up)
 
template<typename genType >
genType lowerMultiple (genType const &Source, genType const &Multiple)
 
template<typename T , precision P>
luminosity (detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, unsigned int Depth)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, unsigned int Depth)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x2
-< T, defaultp > 
make_mat2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x2
-< T, defaultp > 
make_mat2x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x3
-< T, defaultp > 
make_mat2x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x4
-< T, defaultp > 
make_mat2x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x3
-< T, defaultp > 
make_mat3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x2
-< T, defaultp > 
make_mat3x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x3
-< T, defaultp > 
make_mat3x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x4
-< T, defaultp > 
make_mat3x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
make_mat4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x2
-< T, defaultp > 
make_mat4x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x3
-< T, defaultp > 
make_mat4x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
make_mat4x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tquat< T,
-defaultp > 
make_quat (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
make_vec2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
make_vec3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec4< T,
-defaultp > 
make_vec4 (T const *const ptr)
 
template<typename genIType >
GLM_FUNC_DECL genIType mask (genIType const &count)
 
template<typename T , precision P>
detail::tmat2x4< T, P > mat2x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat3x3
-< T, P > 
mat3_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat3x4< T, P > mat3x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
mat4_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat3x3< T, P > matrixCross3 (detail::tvec3< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > matrixCross4 (detail::tvec3< T, P > const &x)
 
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 >::T const &y, typename C< T >::T 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 >::T const &y, typename C< T >::T const &z, typename C< T >::T 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 genType >
GLM_FUNC_DECL genType max (genType const &x, genType const &y)
 
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 >::T const &y, typename C< T >::T 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 >::T const &y, typename C< T >::T const &z, typename C< T >::T 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)
 
template<typename genType >
GLM_FUNC_DECL genType min (genType const &x, genType const &y)
 
template<typename genType >
GLM_FUNC_DECL genType mirrorRepeat (genType const &Texcoord)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > mix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT mix (genTypeT const &x, genTypeT const &y, genTypeU const &a)
 
-template<typename T , precision P>
mixedProduct (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
int mod (int x, int y)
 
uint mod (uint x, uint y)
 
template<typename genType >
GLM_FUNC_DECL genType mod (genType const &x, genType const &y)
 
template<typename genType >
GLM_FUNC_DECL genType mod (genType const &x, typename genType::value_type const &y)
 
template<typename genType >
GLM_FUNC_DECL genType modf (genType const &x, genType &i)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x, uint const &Distance)
 
uint nlz (uint x)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type noise1 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec2
-< typename genType::value_type,
-defaultp > 
noise2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec3
-< typename genType::value_type,
-defaultp > 
noise3 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec4
-< typename genType::value_type,
-defaultp > 
noise4 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType normalize (genType const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > normalize (detail::tdualquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > normalize (detail::tquat< T, P > const &q)
 
template<typename genType >
genType::value_type normalizeDot (genType const &x, genType const &y)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > not_ (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
notEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
notEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType one ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType one_over_root_two ()
 
template<typename T >
detail::tmat2x2< T, defaultp > orientate2 (T const &angle)
 
template<typename T >
detail::tmat3x3< T, defaultp > orientate3 (T const &angle)
 
template<typename T , precision P>
detail::tmat3x3< T, P > orientate3 (detail::tvec3< T, P > const &angles)
 
template<typename T , precision P>
detail::tmat4x4< T, P > orientate4 (detail::tvec3< T, P > const &angles)
 
template<typename T , precision P>
detail::tmat4x4< T, P > orientation (detail::tvec3< T, P > const &Normal, detail::tvec3< T, P > const &Up)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec2< T, P > const &x, detail::tvec2< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, detail::tvec3< T, P > const &ref)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
ortho (T const &left, T const &right, T const &bottom, T const &top, T const &zNear, T const &zFar)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
ortho (T const &left, T const &right, T const &bottom, T const &top)
 
template<typename T , precision P>
detail::tmat3x3< T, P > orthonormalize (const detail::tmat3x3< T, P > &m)
 
template<typename T , precision P>
detail::tvec3< T, P > orthonormalize (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y)
 
GLM_FUNC_DECL double packDouble2x32 (uvec2 const &v)
 
GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 
GLM_FUNC_DECL uint16 packHalf1x16 (float const &v)
 
GLM_FUNC_DECL uint packHalf2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float const &s)
 
GLM_FUNC_DECL uint packSnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint packSnorm4x8 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float const &v)
 
GLM_FUNC_DECL uint packUnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint packUnorm4x8 (vec4 const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
perlin (vecType< T, P > const &p)
 
template<typename T , precision P, template< typename, precision > class vecType>
perlin (vecType< T, P > const &p, vecType< T, P > const &rep)
 
template<typename vecType >
vecType perp (vecType const &x, vecType const &Normal)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
perspective (T const &fovy, T const &aspect, T const &near, T const &far)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
perspectiveFov (T const &fov, T const &width, T const &height, T const &near, T const &far)
 
template<typename genType >
GLM_FUNC_DECL genType pi ()
 
template<typename T , precision P, typename U >
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
pickMatrix (detail::tvec2< T, P > const &center, detail::tvec2< T, P > const &delta, detail::tvec4< U, P > const &viewport)
 
template<typename T , precision P>
GLM_FUNC_DECL T pitch (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tvec3< T, P > polar (detail::tvec3< T, P > const &euclidean)
 
int pow (int x, int y)
 
template<typename genType >
GLM_FUNC_DECL genType pow (genType const &base, genType const &exponent)
 
uint pow (uint x, uint y)
 
template<typename T , precision P>
detail::tquat< T, P > pow (detail::tquat< T, P > const &x, T const &y)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoAbove (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoBelow (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoNearest (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x, uint const &Distance)
 
template<typename vecType >
vecType proj (vecType const &x, vecType const &Normal)
 
template<typename T , precision P>
detail::tmat3x3< T, P > proj2D (const detail::tmat3x3< T, P > &m, const detail::tvec3< T, P > &normal)
 
template<typename T , precision P>
detail::tmat4x4< T, P > proj3D (const detail::tmat4x4< T, P > &m, const detail::tvec3< T, P > &normal)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > project (detail::tvec3< T, P > const &obj, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
 
template<typename genType >
GLM_FUNC_DECL genType quarter_pi ()
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat4x4< T, P > const &x)
 
template<typename T , precision P>
radialGradient (detail::tvec2< T, P > const &Center, T const &Radius, detail::tvec2< T, P > const &Focal, detail::tvec2< T, P > const &Position)
 
template<typename genType >
GLM_FUNC_DECL genType radians (genType const &degrees)
 
template<typename genType >
GLM_FUNC_DECL genType reflect (genType const &I, genType const &N)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > refract (vecType< T, P > const &I, vecType< T, P > const &N, T const &eta)
 
template<typename genType >
GLM_FUNC_DECL genType repeat (genType const &Texcoord)
 
template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCg (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCgR (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > rgbColor (detail::tvec3< T, P > const &hsvValue)
 
template<typename T , precision P>
bool rightHanded (detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL T roll (detail::tquat< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType root_five ()
 
template<typename genType >
GLM_FUNC_DECL genType root_half_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_ln_four ()
 
template<typename genType >
GLM_FUNC_DECL genType root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType root_three ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two ()
 
template<typename genType >
GLM_FUNC_DECL genType root_two_pi ()
 
template<typename T , precision P>
detail::tvec2< T, P > rotate (detail::tvec2< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotate (detail::tvec3< T, P > const &v, T const &angle, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rotate (T angle, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec4< T, P > rotate (detail::tvec4< T, P > const &v, T const &angle, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
rotate (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tvec3< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec4< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec4< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > rotate (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rotateNormalizedAxis (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tquat< T, P > rotateNormalizedAxis (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateX (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateX (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateY (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateY (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateZ (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateZ (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tquat< T, P > rotation (detail::tvec3< T, P > const &orig, detail::tvec3< T, P > const &dest)
 
template<typename genType >
GLM_FUNC_DECL genType round (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType roundEven (genType const &x)
 
template<typename genType >
genType::row_type row (genType const &m, length_t const &index)
 
template<typename genType >
genType row (genType const &m, length_t const &index, typename genType::row_type const &x)
 
template<typename T , precision P>
detail::tmat2x2< T, P > rowMajor2 (detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
 
template<typename T , precision P>
detail::tmat2x2< T, P > rowMajor2 (detail::tmat2x2< T, P > const &m)
 
template<typename T , precision P>
detail::tmat3x3< T, P > rowMajor3 (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename T , precision P>
detail::tmat3x3< T, P > rowMajor3 (detail::tmat3x3< T, P > const &m)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rowMajor4 (detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rowMajor4 (detail::tmat4x4< T, P > const &m)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER T saturate (T x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
saturate (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
saturate (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
saturate (const detail::tvec4< T, P > &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > saturation (T const s)
 
template<typename T , precision P>
detail::tvec3< T, P > saturation (T const s, detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
detail::tvec4< T, P > saturation (T const s, detail::tvec4< T, P > const &color)
 
template<typename T , precision P>
detail::tmat4x4< T, P > scale (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
scale (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
 
template<typename valType , precision P>
detail::tmat4x4< valType, P > scaleBias (valType scale, valType bias)
 
template<typename valType , precision P>
detail::tmat4x4< valType, P > scaleBias (detail::tmat4x4< valType, P > const &m, valType scale, valType bias)
 
template<typename genType >
GLM_FUNC_DECL genType sec (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sech (genType const &angle)
 
template<typename T , precision P>
detail::tmat3x3< T, P > shearX2D (detail::tmat3x3< T, P > const &m, T y)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearX3D (const detail::tmat4x4< T, P > &m, T y, T z)
 
template<typename T , precision P>
detail::tmat3x3< T, P > shearY2D (detail::tmat3x3< T, P > const &m, T x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearY3D (const detail::tmat4x4< T, P > &m, T x, T z)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearZ3D (const detail::tmat4x4< T, P > &m, T x, T y)
 
template<typename T , precision P>
detail::tquat< T, P > shortMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename genType >
GLM_FUNC_DECL genType sign (genType const &x)
 
template<typename T , precision P, template< typename, precision > class vecType>
simplex (vecType< T, P > const &p)
 
template<typename genType >
GLM_FUNC_DECL genType sin (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sinh (genType const &angle)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename genType >
GLM_FUNC_DECL genType smoothstep (genType const &edge0, genType const &edge1, genType const &x)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
sphericalRand (T const &Radius)
 
int sqrt (int x)
 
uint sqrt (uint x)
 
template<typename genType >
GLM_FUNC_DECL genType sqrt (genType const &x)
 
template<typename T , precision P>
detail::tquat< T, P > squad (detail::tquat< T, P > const &q1, detail::tquat< T, P > const &q2, detail::tquat< T, P > const &s1, detail::tquat< T, P > const &s2, T const &h)
 
template<typename genType >
GLM_FUNC_DECL genType step (genType const &edge, genType const &x)
 
template<template< typename, precision > class vecType, typename T , precision P>
GLM_FUNC_DECL vecType< T, P > step (T const &edge, vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType tan (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType tanh (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType third ()
 
template<typename genType >
std::string to_string (genType const &x)
 
template<typename T , precision P>
detail::tmat3x3< T, P > toMat3 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > toMat4 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat4x4< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > translate (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
translate (detail::tmat4x4< T, P > const &m, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec3< T, P > triangleNormal (detail::tvec3< T, P > const &p1, detail::tvec3< T, P > const &p2, detail::tvec3< T, P > const &p3)
 
template<typename genType >
GLM_FUNC_DECL genType trunc (genType const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
tweakedInfinitePerspective (T fovy, T aspect, T near)
 
template<typename genType >
GLM_FUNC_DECL genType two_over_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_over_root_pi ()
 
template<typename genType >
GLM_FUNC_DECL genType two_thirds ()
 
template<typename genUType >
GLM_FUNC_DECL genUType uaddCarry (genUType const &x, genUType const &y, genUType &carry)
 
-GLM_DEPRECATED dword uint10_10_10_2_cast (glm::vec4 const &v)
 
GLM_FUNC_DECL float uintBitsToFloat (uint const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > uintBitsToFloat (vecType< uint, P > const &v)
 
template<typename genUType >
GLM_FUNC_DECL void umulExtended (genUType const &x, genUType const &y, genUType &msb, genUType &lsb)
 
GLM_FUNC_DECL uvec2 unpackDouble2x32 (double const &v)
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 const &p)
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 const &v)
 
GLM_FUNC_DECL vec2 unpackHalf2x16 (uint const &v)
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 const &p)
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackSnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x8 (uint const &p)
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x8 (uint const &p)
 
template<typename T , typename U , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > unProject (detail::tvec3< T, P > const &win, detail::tmat4x4< T, P > const &model, detail::tmat4x4< T, P > const &proj, detail::tvec4< U, P > const &viewport)
 
template<typename genUType >
GLM_FUNC_DECL genUType usubBorrow (genUType const &x, genUType const &y, genUType &borrow)
 
template<typename genType >
GLM_FUNC_DECL
-genType::value_type const * 
value_ptr (genType const &vec)
 
template<typename T , precision P>
GLM_FUNC_DECL T yaw (detail::tquat< T, P > const &x)
 
template<typename T >
detail::tmat4x4< T, defaultp > yawPitchRoll (T const &yaw, T const &pitch, T const &roll)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCg2rgb (detail::tvec3< T, P > const &YCoCgColor)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCgR2rgb (detail::tvec3< T, P > const &YCoCgColor)
 
template<typename genType >
GLM_FUNC_DECL genType zero ()
 
-

Detailed Description

-

OpenGL Mathematics (glm.g-truc.net)

-

Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-

Typedef Documentation

- -
-
- - - - -
typedef highp_bvec1 bvec1
-
- -

1 component vector of boolean.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 122 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef highp_dquat dquat
-
- -

Quaternion of default double-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 118 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_bvec1_t highp_bvec1
-
- -

1 component vector of high precision boolean.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 98 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<double, highp> highp_dquat
-
- -

Quaternion of high double-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 106 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_quat highp_fquat
-
- -

Quaternion of high single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 85 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_ivec1_t highp_ivec1
-
- -

1 component vector of high precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 68 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<float, highp> highp_quat
-
- -

Quaternion of high single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 59 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_uvec1_t highp_uvec1
-
- -

1 component vector of high precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 83 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef highp_ivec1 ivec1
-
- -

1 component vector of signed integer numbers.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 146 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef lowp_bvec1_t lowp_bvec1
-
- -

1 component vector of low precision boolean.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 108 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<double, lowp> lowp_dquat
-
- -

Quaternion of low double-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 96 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_quat lowp_fquat
-
- -

Quaternion of low single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 75 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_ivec1_t lowp_ivec1
-
- -

1 component vector of low precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 78 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<float, lowp> lowp_quat
-
- -

Quaternion of low single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 49 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_uvec1_t lowp_uvec1
-
- -

1 component vector of low precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 93 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef mediump_bvec1_t mediump_bvec1
-
- -

1 component vector of medium precision boolean.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 103 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<double, mediump> mediump_dquat
-
- -

Quaternion of medium double-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 101 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_quat mediump_fquat
-
- -

Quaternion of medium single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 80 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_ivec1_t mediump_ivec1
-
- -

1 component vector of medium precision signed integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 73 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<float, mediump> mediump_quat
-
- -

Quaternion of medium single-precision floating-point numbers.

-
See Also
GLM_GTC_quaternion
- -

Definition at line 54 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_uvec1_t mediump_uvec1
-
- -

1 component vector of medium precision unsigned integer numbers.

-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 88 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef highp_uvec1 uvec1
-
- -

1 component vector of unsigned integer numbers.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 158 of file vec1.hpp.

- -
-
- -
-
- - - - -
typedef highp_vec1 vec1
-
- -

1 component vector of floating-point numbers.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 134 of file vec1.hpp.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00155.html b/3party/glm/doc/api/a00155.html deleted file mode 100755 index 11a0e56baf..0000000000 --- a/3party/glm/doc/api/a00155.html +++ /dev/null @@ -1,1133 +0,0 @@ - - - - - - -GLM: Common functions - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
Common functions
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType abs (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType ceil (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &x, genType const &minVal, genType const &maxVal)
 
GLM_FUNC_DECL int floatBitsToInt (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< int, P > floatBitsToInt (vecType< float, P > const &v)
 
GLM_FUNC_DECL uint floatBitsToUint (float const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< uint, P > floatBitsToUint (vecType< float, P > const &v)
 
template<typename genType >
GLM_FUNC_DECL genType floor (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType fma (genType const &a, genType const &b, genType const &c)
 
template<typename genType >
GLM_FUNC_DECL genType fract (genType const &x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType frexp (genType const &x, genIType &exp)
 
GLM_FUNC_DECL float intBitsToFloat (int const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > intBitsToFloat (vecType< int, P > const &v)
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isinf (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isnan (genType const &x)
 
template<typename genType , typename genIType >
GLM_FUNC_DECL genType ldexp (genType const &x, genIType const &exp)
 
template<typename genType >
GLM_FUNC_DECL genType max (genType const &x, genType const &y)
 
template<typename genType >
GLM_FUNC_DECL genType min (genType const &x, genType const &y)
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT mix (genTypeT const &x, genTypeT const &y, genTypeU const &a)
 
template<typename genType >
GLM_FUNC_DECL genType mod (genType const &x, genType const &y)
 
template<typename genType >
GLM_FUNC_DECL genType mod (genType const &x, typename genType::value_type const &y)
 
template<typename genType >
GLM_FUNC_DECL genType modf (genType const &x, genType &i)
 
template<typename genType >
GLM_FUNC_DECL genType round (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType roundEven (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType sign (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType smoothstep (genType const &edge0, genType const &edge1, genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType step (genType const &edge, genType const &x)
 
template<template< typename, precision > class vecType, typename T , precision P>
GLM_FUNC_DECL vecType< T, P > step (T const &edge, vecType< T, P > const &x)
 
template<typename genType >
GLM_FUNC_DECL genType trunc (genType const &x)
 
GLM_FUNC_DECL float uintBitsToFloat (uint const &v)
 
template<template< typename, precision > class vecType, precision P>
GLM_FUNC_DECL vecType< float, P > uintBitsToFloat (vecType< uint, P > const &v)
 
-

Detailed Description

-

These all operate component-wise.

-

The description is per component.

-

Function Documentation

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

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL int glm::floatBitsToInt (float const & v)
-
- -

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

-

The floating-point value's bit-level representation is preserved.

-
See Also
GLSL floatBitsToInt man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vecType<int, P> glm::floatBitsToInt (vecType< float, P > const & v)
-
- -

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

-

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

-
See Also
GLSL floatBitsToInt man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::floatBitsToUint (float const & v)
-
- -

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

-

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

-
See Also
GLSL floatBitsToUint man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vecType<uint, P> glm::floatBitsToUint (vecType< float, P > const & v)
-
- -

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

-

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

-
See Also
GLSL floatBitsToUint man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::intBitsToFloat (int const & v)
-
- -

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.

-
See Also
GLSL intBitsToFloat man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vecType<float, P> glm::intBitsToFloat (vecType< int, P > const & v)
-
- -

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.

-
See Also
GLSL intBitsToFloat man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType::bool_type glm::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.

-

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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType::bool_type glm::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.

-

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

-

/!\ When using compiler fast math, this function may fail.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL isnan man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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<<<<<<< HEAD
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genTypeT glm::mix (genTypeT const & x,
genTypeT const & y,
genTypeU const & a 
)
-
- -

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 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::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(), and glm::slerp().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::step (genType const & edge,
genType const & x 
)
-
- -

Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType.

-
See Also
GLSL step man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<T, P> glm::step (T const & edge,
vecType< T, P > 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::uintBitsToFloat (uint const & v)
-
- -

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.

-
See Also
GLSL uintBitsToFloat man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vecType<float, P> glm::uintBitsToFloat (vecType< uint, P > const & v)
-
- -

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.

-
See Also
GLSL uintBitsToFloat man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00156.html b/3party/glm/doc/api/a00156.html deleted file mode 100755 index 6bc3a16672..0000000000 --- a/3party/glm/doc/api/a00156.html +++ /dev/null @@ -1,327 +0,0 @@ - - - - - - -GLM: Exponential functions - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
Exponential functions
-
-
- - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType exp (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType exp2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType inversesqrt (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType log (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType log2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType pow (genType const &base, genType const &exponent)
 
template<typename genType >
GLM_FUNC_DECL genType sqrt (genType const &x)
 
-

Detailed Description

-

These all operate component-wise.

-

The description is per component.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::pow (genType const & base,
genType const & exponent 
)
-
- -

Returns 'base' raised to the power 'exponent'.

-
Parameters
- - - -
baseFloating point value. pow function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision.
exponentFloating point value representing the 'exponent'.
-
-
-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See Also
GLSL pow man page
-
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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/3party/glm/doc/api/a00157.html b/3party/glm/doc/api/a00157.html deleted file mode 100755 index 65f31ed2a9..0000000000 --- a/3party/glm/doc/api/a00157.html +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - -GLM: Geometric functions - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
Geometric functions
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > cross (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type distance (genType const &p0, genType const &p1)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL T dot (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType dot (genType const &x, genType const &y)
 
template<typename genType >
GLM_FUNC_DECL genType faceforward (genType const &N, genType const &I, genType const &Nref)
 
template<typename genType >
GLM_FUNC_DECL genType::value_type length (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType normalize (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType reflect (genType const &I, genType const &N)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P > refract (vecType< T, P > const &I, vecType< T, P > const &N, T const &eta)
 
-

Detailed Description

-

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

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec3<T, P> glm::cross (detail::tvec3< T, P > const & x,
detail::tvec3< T, P > 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::dot (vecType< T, P > const & x,
vecType< T, P > 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<T, P> glm::refract (vecType< T, P > const & I,
vecType< T, P > const & N,
T 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/3party/glm/doc/api/a00158.html b/3party/glm/doc/api/a00158.html deleted file mode 100755 index 42fbe5c893..0000000000 --- a/3party/glm/doc/api/a00158.html +++ /dev/null @@ -1,493 +0,0 @@ - - - - - - -GLM: Integer functions - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
Integer functions
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
bitCount (genIUType< T > const &Value)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldExtract (genIUType const &Value, int const &Offset, int const &Bits)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldInsert (genIUType const &Base, genIUType const &Insert, int const &Offset, int const &Bits)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldReverse (genIUType const &Value)
 
template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
findLSB (genIUType< T > const &Value)
 
template<typename T , template< typename > class genIUType>
GLM_FUNC_DECL genIUType< T >
-::signed_type 
findMSB (genIUType< T > const &Value)
 
template<typename genIType >
GLM_FUNC_DECL void imulExtended (genIType const &x, genIType const &y, genIType &msb, genIType &lsb)
 
template<typename genUType >
GLM_FUNC_DECL genUType uaddCarry (genUType const &x, genUType const &y, genUType &carry)
 
template<typename genUType >
GLM_FUNC_DECL void umulExtended (genUType const &x, genUType const &y, genUType &msb, genUType &lsb)
 
template<typename genUType >
GLM_FUNC_DECL 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

- -
-
- - - - - - - - -
GLM_FUNC_DECL 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.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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/3party/glm/doc/api/a00159.html b/3party/glm/doc/api/a00159.html deleted file mode 100755 index 475d61f355..0000000000 --- a/3party/glm/doc/api/a00159.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - -GLM: Matrix functions - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
Matrix functions
-
-
-

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.

-
- - - - diff --git a/3party/glm/doc/api/a00160.html b/3party/glm/doc/api/a00160.html deleted file mode 100755 index 602d495388..0000000000 --- a/3party/glm/doc/api/a00160.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - -GLM: Noise functions - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
Noise functions
-
-
- - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType::value_type noise1 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec2
-< typename genType::value_type,
-defaultp > 
noise2 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec3
-< typename genType::value_type,
-defaultp > 
noise3 (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL detail::tvec4
-< typename genType::value_type,
-defaultp > 
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

- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec2<typename genType::value_type, defaultp> 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec3<typename genType::value_type, defaultp> 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec4<typename genType::value_type, defaultp> 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/3party/glm/doc/api/a00161.html b/3party/glm/doc/api/a00161.html deleted file mode 100755 index ea4255178b..0000000000 --- a/3party/glm/doc/api/a00161.html +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - -GLM: Floating-Point Pack and Unpack Functions - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
Floating-Point Pack and Unpack Functions
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL double packDouble2x32 (uvec2 const &v)
 
GLM_FUNC_DECL uint packHalf2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packSnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packSnorm4x8 (vec4 const &v)
 
GLM_FUNC_DECL uint packUnorm2x16 (vec2 const &v)
 
GLM_FUNC_DECL uint packUnorm4x8 (vec4 const &v)
 
GLM_FUNC_DECL uvec2 unpackDouble2x32 (double const &v)
 
GLM_FUNC_DECL vec2 unpackHalf2x16 (uint const &v)
 
GLM_FUNC_DECL vec2 unpackSnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x8 (uint const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x16 (uint const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x8 (uint const &p)
 
-

Detailed Description

-

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

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL double glm::packDouble2x32 (uvec2 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::packSnorm2x16 (vec2 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::packSnorm4x8 (vec4 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::packUnorm2x16 (vec2 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::packUnorm4x8 (vec4 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uvec2 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec2 glm::unpackSnorm2x16 (uint 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackSnorm4x8 (uint 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec2 glm::unpackUnorm2x16 (uint 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackUnorm4x8 (uint 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/3party/glm/doc/api/a00162.html b/3party/glm/doc/api/a00162.html deleted file mode 100755 index e4b7706fb9..0000000000 --- a/3party/glm/doc/api/a00162.html +++ /dev/null @@ -1,534 +0,0 @@ - - - - - - -GLM: Angle and Trigonometry Functions - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
Angle and Trigonometry Functions
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType acos (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType acosh (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asin (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType asinh (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType atan (genType const &y, genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType atan (genType const &y_over_x)
 
template<typename genType >
GLM_FUNC_DECL genType atanh (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType cos (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType cosh (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType degrees (genType const &radians)
 
template<typename genType >
GLM_FUNC_DECL genType radians (genType const &degrees)
 
template<typename genType >
GLM_FUNC_DECL genType sin (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType sinh (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL genType tan (genType const &angle)
 
template<typename genType >
GLM_FUNC_DECL 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

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

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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/3party/glm/doc/api/a00163.html b/3party/glm/doc/api/a00163.html deleted file mode 100755 index 0281d22928..0000000000 --- a/3party/glm/doc/api/a00163.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - -GLM: Vector Relational Functions - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
Vector Relational Functions
-
-
- - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool all (vecType< bool, P > const &v)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL bool any (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
greaterThan (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
greaterThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
lessThanEqual (vecType< T, P > const &x, vecType< T, P > const &y)
 
template<precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > not_ (vecType< bool, P > const &v)
 
template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< T, P >
-::bool_type 
notEqual (vecType< T, P > const &x, vecType< T, P > 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

- -
-
- - - - - - - - -
GLM_FUNC_DECL bool glm::all (vecType< bool, P > 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL bool glm::any (vecType< bool, P > 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<T, P>::bool_type glm::greaterThan (vecType< T, P > const & x,
vecType< T, P > 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<T, P>::bool_type glm::greaterThanEqual (vecType< T, P > const & x,
vecType< T, P > 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<T, P>::bool_type glm::lessThanEqual (vecType< T, P > const & x,
vecType< T, P > 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 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vecType<bool, P> glm::not_ (vecType< bool, P > 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<T, P>::bool_type glm::notEqual (vecType< T, P > const & x,
vecType< T, P > 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 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/3party/glm/doc/api/a00164.html b/3party/glm/doc/api/a00164.html deleted file mode 100755 index f980d10d5f..0000000000 --- a/3party/glm/doc/api/a00164.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: GTC Extensions (Stable) - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GTC Extensions (Stable)
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Modules

 GLM_GTC_constants
 
 GLM_GTC_epsilon
 
 GLM_GTC_matrix_access
 
 GLM_GTC_matrix_integer
 
 GLM_GTC_matrix_inverse
 
 GLM_GTC_matrix_transform
 
 GLM_GTC_noise
 
 GLM_GTC_packing
 
 GLM_GTC_quaternion
 
 GLM_GTC_random
 
 GLM_GTC_reciprocal
 
 GLM_GTC_type_precision
 
 GLM_GTC_type_ptr
 
 GLM_GTC_ulp
 
 GLM_GTX_dual_quaternion
 
 GLM_GTX_rotate_normalized_axis
 
-

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/3party/glm/doc/api/a00165.html b/3party/glm/doc/api/a00165.html deleted file mode 100755 index bfe1a6efcf..0000000000 --- a/3party/glm/doc/api/a00165.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - -GLM: GTX Extensions (Experimental) - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GTX Extensions (Experimental)
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Modules

 GLM_GTX_associated_min_max
 
 GLM_GTX_bit
 
 GLM_GTX_closest_point
 
 GLM_GTX_color_space
 
 GLM_GTX_color_space_YCoCg
 
 GLM_GTX_compatibility
 
 GLM_GTX_component_wise
 
 GLM_GTX_euler_angles
 
 GLM_GTX_extend
 
 GLM_GTX_extented_min_max
 
 GLM_GTX_fast_exponential
 
 GLM_GTX_fast_square_root
 
 GLM_GTX_fast_trigonometry
 
 GLM_GTX_gradient_paint
 
 GLM_GTX_handed_coordinate_space
 
 GLM_GTX_inertia
 
 GLM_GTX_integer
 
 GLM_GTX_intersect
 
 GLM_GTX_io
 
 GLM_GTX_log_base
 
 GLM_GTX_matrix_cross_product
 
 GLM_GTX_matrix_interpolation
 
 GLM_GTX_matrix_major_storage
 
 GLM_GTX_matrix_operation
 
 GLM_GTX_matrix_query
 
 GLM_GTX_mixed_producte
 
 GLM_GTX_multiple
 
 GLM_GTX_norm
 
 GLM_GTX_normal
 
 GLM_GTX_normalize_dot
 
 GLM_GTX_number_precision
 
 GLM_GTX_optimum_pow
 
 GLM_GTX_orthonormalize
 
 GLM_GTX_perpendicular
 
 GLM_GTX_polar_coordinates
 
 GLM_GTX_projection
 
 GLM_GTX_quaternion
 
 GLM_GTX_raw_data
 
 GLM_GTX_rotate_vector
 
 GLM_GTX_simd_mat4
 
 GLM_GTX_simd_quat
 
 GLM_GTX_spline
 
 GLM_GTX_std_based_type
 
 GLM_GTX_string_cast
 
 GLM_GTX_transform
 
 GLM_GTX_transform2
 
 GLM_GTX_vec1
 
 GLM_GTX_vector_angle
 
 GLM_GTX_vector_query
 
 GLM_GTX_wrap
 
-

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/3party/glm/doc/api/a00166.html b/3party/glm/doc/api/a00166.html deleted file mode 100755 index 106aae899d..0000000000 --- a/3party/glm/doc/api/a00166.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -GLM: VIRTREV Extensions - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
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/3party/glm/doc/api/a00167.html b/3party/glm/doc/api/a00167.html deleted file mode 100755 index b0ba2d4d72..0000000000 --- a/3party/glm/doc/api/a00167.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -GLM: GLM Core - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
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/3party/glm/doc/api/a00168.html b/3party/glm/doc/api/a00168.html deleted file mode 100755 index e372b8afe8..0000000000 --- a/3party/glm/doc/api/a00168.html +++ /dev/null @@ -1,810 +0,0 @@ - - - - - - -GLM: Types - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - -

-Modules

 Precision types
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef highp_bvec2 bvec2
 
typedef highp_bvec3 bvec3
 
typedef highp_bvec4 bvec4
 
typedef highp_dmat2x2 dmat2
 
typedef highp_dmat2x2 dmat2x2
 
typedef highp_dmat2x3 dmat2x3
 
typedef highp_dmat2x4 dmat2x4
 
typedef highp_dmat3x3 dmat3
 
typedef highp_dmat3x2 dmat3x2
 
typedef highp_dmat3x3 dmat3x3
 
typedef highp_dmat3x4 dmat3x4
 
typedef highp_dmat4x4 dmat4
 
typedef highp_dmat4x2 dmat4x2
 
typedef highp_dmat4x3 dmat4x3
 
typedef highp_dmat4x4 dmat4x4
 
typedef highp_dvec2 dvec2
 
typedef highp_dvec3 dvec3
 
typedef highp_dvec4 dvec4
 
typedef highp_ivec2 ivec2
 
typedef highp_ivec3 ivec3
 
typedef highp_ivec4 ivec4
 
typedef mat2x2 mat2
 
typedef highp_mat2x2 mat2x2
 
typedef highp_mat2x3 mat2x3
 
typedef highp_mat2x4 mat2x4
 
typedef mat3x3 mat3
 
typedef highp_mat3x2 mat3x2
 
typedef highp_mat3x3 mat3x3
 
typedef highp_mat3x4 mat3x4
 
typedef mat4x4 mat4
 
typedef highp_mat4x2 mat4x2
 
typedef highp_mat4x3 mat4x3
 
typedef highp_mat4x4 mat4x4
 
typedef highp_uvec2 uvec2
 
typedef highp_uvec3 uvec3
 
typedef highp_uvec4 uvec4
 
typedef highp_vec2 vec2
 
typedef highp_vec3 vec3
 
typedef highp_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 highp_bvec2 bvec2
-
- -

2 components vector of boolean.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 500 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_bvec3 bvec3
-
- -

3 components vector of boolean.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 505 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_bvec4 bvec4
-
- -

4 components vector of boolean.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 510 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat2x2 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 733 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat2x2 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 748 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat2x3 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 753 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat2x4 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 758 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat3x3 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 738 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat3x2 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 763 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat3x3 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 768 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat3x4 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 773 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat4x4 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 743 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat4x2 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 778 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat4x3 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 783 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dmat4x4 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 788 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_dvec2 dvec2
-
- -

2 components vector of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 416 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_dvec3 dvec3
-
- -

3 components vector of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 421 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_dvec4 dvec4
-
- -

4 components vector of double-precision floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 426 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_ivec2 ivec2
-
- -

2 components vector of signed integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 444 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_ivec3 ivec3
-
- -

3 components vector of signed integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 449 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_ivec4 ivec4
-
- -

4 components vector of signed integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 454 of file type_vec.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 432 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_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 385 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_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 390 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_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 395 of file type_mat.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 437 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_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 400 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_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 405 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_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 410 of file type_mat.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 442 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_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 415 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_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 420 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_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 425 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef highp_uvec2 uvec2
-
- -

2 components vector of unsigned integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 472 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_uvec3 uvec3
-
- -

3 components vector of unsigned integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 477 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_uvec4 uvec4
-
- -

4 components vector of unsigned integer numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 482 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_vec2 vec2
-
- -

2 components vector of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 388 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_vec3 vec3
-
- -

3 components vector of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 393 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef highp_vec4 vec4
-
- -

4 components vector of floating-point numbers.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 398 of file type_vec.hpp.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00169.html b/3party/glm/doc/api/a00169.html deleted file mode 100755 index 5b59808e95..0000000000 --- a/3party/glm/doc/api/a00169.html +++ /dev/null @@ -1,2934 +0,0 @@ - - - - - - -GLM: Precision types - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
Precision types
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef detail::tvec2< bool,
-highp > 
highp_bvec2
 
typedef detail::tvec3< bool,
-highp > 
highp_bvec3
 
typedef detail::tvec4< bool,
-highp > 
highp_bvec4
 
typedef detail::tmat2x2
-< double, highp > 
highp_dmat2
 
typedef detail::tmat2x2
-< double, highp > 
highp_dmat2x2
 
typedef detail::tmat2x3
-< double, highp > 
highp_dmat2x3
 
typedef detail::tmat2x4
-< double, highp > 
highp_dmat2x4
 
typedef detail::tmat3x3
-< double, highp > 
highp_dmat3
 
typedef detail::tmat3x2
-< double, highp > 
highp_dmat3x2
 
typedef detail::tmat3x3
-< double, highp > 
highp_dmat3x3
 
typedef detail::tmat3x4
-< double, highp > 
highp_dmat3x4
 
typedef detail::tmat4x4
-< double, highp > 
highp_dmat4
 
typedef detail::tmat4x2
-< double, highp > 
highp_dmat4x2
 
typedef detail::tmat4x3
-< double, highp > 
highp_dmat4x3
 
typedef detail::tmat4x4
-< double, highp > 
highp_dmat4x4
 
typedef detail::tvec2< double,
-highp > 
highp_dvec2
 
typedef detail::tvec3< double,
-highp > 
highp_dvec3
 
typedef detail::tvec4< double,
-highp > 
highp_dvec4
 
typedef highp_float_t highp_float
 
typedef detail::highp_int_t highp_int
 
typedef detail::tvec2< int, highp > highp_ivec2
 
typedef detail::tvec3< int, highp > highp_ivec3
 
typedef detail::tvec4< int, highp > highp_ivec4
 
typedef detail::tmat2x2< float,
-highp > 
highp_mat2
 
typedef detail::tmat2x2< float,
-highp > 
highp_mat2x2
 
typedef detail::tmat2x3< float,
-highp > 
highp_mat2x3
 
typedef detail::tmat2x4< float,
-highp > 
highp_mat2x4
 
typedef detail::tmat3x3< float,
-highp > 
highp_mat3
 
typedef detail::tmat3x2< float,
-highp > 
highp_mat3x2
 
typedef detail::tmat3x3< float,
-highp > 
highp_mat3x3
 
typedef detail::tmat3x4< float,
-highp > 
highp_mat3x4
 
typedef detail::tmat4x4< float,
-highp > 
highp_mat4
 
typedef detail::tmat4x2< float,
-highp > 
highp_mat4x2
 
typedef detail::tmat4x3< float,
-highp > 
highp_mat4x3
 
typedef detail::tmat4x4< float,
-highp > 
highp_mat4x4
 
typedef detail::highp_uint_t highp_uint
 
typedef detail::tvec2< uint,
-highp > 
highp_uvec2
 
typedef detail::tvec3< uint,
-highp > 
highp_uvec3
 
typedef detail::tvec4< uint,
-highp > 
highp_uvec4
 
typedef detail::tvec2< float,
-highp > 
highp_vec2
 
typedef detail::tvec3< float,
-highp > 
highp_vec3
 
typedef detail::tvec4< float,
-highp > 
highp_vec4
 
typedef detail::tvec2< bool, lowp > lowp_bvec2
 
typedef detail::tvec3< bool, lowp > lowp_bvec3
 
typedef detail::tvec4< bool, lowp > lowp_bvec4
 
typedef detail::tmat2x2
-< double, lowp > 
lowp_dmat2
 
typedef detail::tmat2x2
-< double, lowp > 
lowp_dmat2x2
 
typedef detail::tmat2x3
-< double, lowp > 
lowp_dmat2x3
 
typedef detail::tmat2x4
-< double, lowp > 
lowp_dmat2x4
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_dmat3
 
typedef detail::tmat3x2
-< double, lowp > 
lowp_dmat3x2
 
typedef detail::tmat3x3
-< double, lowp > 
lowp_dmat3x3
 
typedef detail::tmat3x4
-< double, lowp > 
lowp_dmat3x4
 
typedef detail::tmat4x4
-< double, lowp > 
lowp_dmat4
 
typedef detail::tmat4x2
-< double, lowp > 
lowp_dmat4x2
 
typedef detail::tmat4x3
-< double, lowp > 
lowp_dmat4x3
 
typedef detail::tmat4x4
-< double, lowp > 
lowp_dmat4x4
 
typedef detail::tvec2< double,
-lowp > 
lowp_dvec2
 
typedef detail::tvec3< double,
-lowp > 
lowp_dvec3
 
typedef detail::tvec4< double,
-lowp > 
lowp_dvec4
 
typedef lowp_float_t lowp_float
 
typedef detail::lowp_int_t lowp_int
 
typedef detail::tvec2< int, lowp > lowp_ivec2
 
typedef detail::tvec3< int, lowp > lowp_ivec3
 
typedef detail::tvec4< int, lowp > lowp_ivec4
 
typedef detail::tmat2x2< float,
-lowp > 
lowp_mat2
 
typedef detail::tmat2x2< float,
-lowp > 
lowp_mat2x2
 
typedef detail::tmat2x3< float,
-lowp > 
lowp_mat2x3
 
typedef detail::tmat2x4< float,
-lowp > 
lowp_mat2x4
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_mat3
 
typedef detail::tmat3x2< float,
-lowp > 
lowp_mat3x2
 
typedef detail::tmat3x3< float,
-lowp > 
lowp_mat3x3
 
typedef detail::tmat3x4< float,
-lowp > 
lowp_mat3x4
 
typedef detail::tmat4x4< float,
-lowp > 
lowp_mat4
 
typedef detail::tmat4x2< float,
-lowp > 
lowp_mat4x2
 
typedef detail::tmat4x3< float,
-lowp > 
lowp_mat4x3
 
typedef detail::tmat4x4< float,
-lowp > 
lowp_mat4x4
 
typedef detail::lowp_uint_t lowp_uint
 
typedef detail::tvec2< uint, lowp > lowp_uvec2
 
typedef detail::tvec3< uint, lowp > lowp_uvec3
 
typedef detail::tvec4< uint, lowp > lowp_uvec4
 
typedef detail::tvec2< float,
-lowp > 
lowp_vec2
 
typedef detail::tvec3< float,
-lowp > 
lowp_vec3
 
typedef detail::tvec4< float,
-lowp > 
lowp_vec4
 
typedef detail::tvec2< bool,
-mediump > 
mediump_bvec2
 
typedef detail::tvec3< bool,
-mediump > 
mediump_bvec3
 
typedef detail::tvec4< bool,
-mediump > 
mediump_bvec4
 
typedef detail::tmat2x2
-< double, mediump > 
mediump_dmat2
 
typedef detail::tmat2x2
-< double, mediump > 
mediump_dmat2x2
 
typedef detail::tmat2x3
-< double, mediump > 
mediump_dmat2x3
 
typedef detail::tmat2x4
-< double, mediump > 
mediump_dmat2x4
 
typedef detail::tmat3x3
-< double, mediump > 
mediump_dmat3
 
typedef detail::tmat3x2
-< double, mediump > 
mediump_dmat3x2
 
typedef detail::tmat3x3
-< double, mediump > 
mediump_dmat3x3
 
typedef detail::tmat3x4
-< double, mediump > 
mediump_dmat3x4
 
typedef detail::tmat4x4
-< double, mediump > 
mediump_dmat4
 
typedef detail::tmat4x2
-< double, mediump > 
mediump_dmat4x2
 
typedef detail::tmat4x3
-< double, mediump > 
mediump_dmat4x3
 
typedef detail::tmat4x4
-< double, mediump > 
mediump_dmat4x4
 
typedef detail::tvec2< double,
-mediump > 
mediump_dvec2
 
typedef detail::tvec3< double,
-mediump > 
mediump_dvec3
 
typedef detail::tvec4< double,
-mediump > 
mediump_dvec4
 
typedef mediump_float_t mediump_float
 
typedef detail::mediump_int_t mediump_int
 
typedef detail::tvec2< int,
-mediump > 
mediump_ivec2
 
typedef detail::tvec3< int,
-mediump > 
mediump_ivec3
 
typedef detail::tvec4< int,
-mediump > 
mediump_ivec4
 
typedef detail::tmat2x2< float,
-mediump > 
mediump_mat2
 
typedef detail::tmat2x2< float,
-mediump > 
mediump_mat2x2
 
typedef detail::tmat2x3< float,
-mediump > 
mediump_mat2x3
 
typedef detail::tmat2x4< float,
-mediump > 
mediump_mat2x4
 
typedef detail::tmat3x3< float,
-mediump > 
mediump_mat3
 
typedef detail::tmat3x2< float,
-mediump > 
mediump_mat3x2
 
typedef detail::tmat3x3< float,
-mediump > 
mediump_mat3x3
 
typedef detail::tmat3x4< float,
-mediump > 
mediump_mat3x4
 
typedef detail::tmat4x4< float,
-mediump > 
mediump_mat4
 
typedef detail::tmat4x2< float,
-mediump > 
mediump_mat4x2
 
typedef detail::tmat4x3< float,
-mediump > 
mediump_mat4x3
 
typedef detail::tmat4x4< float,
-mediump > 
mediump_mat4x4
 
typedef detail::mediump_uint_t mediump_uint
 
typedef detail::tvec2< uint,
-mediump > 
mediump_uvec2
 
typedef detail::tvec3< uint,
-mediump > 
mediump_uvec3
 
typedef detail::tvec4< uint,
-mediump > 
mediump_uvec4
 
typedef detail::tvec2< float,
-mediump > 
mediump_vec2
 
typedef detail::tvec3< float,
-mediump > 
mediump_vec3
 
typedef detail::tvec4< float,
-mediump > 
mediump_vec4
 
typedef unsigned int 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 detail::tvec2<bool, highp> highp_bvec2
-
- -

2 components vector of high precision bool 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 149 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<bool, highp> highp_bvec3
-
- -

3 components vector of high precision bool numbers.

-
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 259 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<bool, highp> highp_bvec4
-
- -

4 components vector of high precision bool numbers.

-
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 354 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<double, highp> highp_dmat2
-
- -

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

-
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 466 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<double, highp> highp_dmat2x2
-
- -

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

-
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 484 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<double, highp> highp_dmat2x3
-
- -

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

-
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 507 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<double, highp> highp_dmat2x4
-
- -

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

-
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 530 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<double, highp> highp_dmat3
-
- -

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

-
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 576 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<double, highp> highp_dmat3x2
-
- -

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

-
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 553 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<double, highp> highp_dmat3x3
-
- -

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

-
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 594 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<double, highp> highp_dmat3x4
-
- -

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

-
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 617 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<double, highp> highp_dmat4
-
- -

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

-
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 686 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<double, highp> highp_dmat4x2
-
- -

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

-
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 640 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<double, highp> highp_dmat4x3
-
- -

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

-
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 663 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<double, highp> highp_dmat4x4
-
- -

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

-
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 704 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<double, highp> highp_dvec2
-
- -

2 components vector of high double-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 86 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<double, highp> highp_dvec3
-
- -

3 components vector of high double-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 197 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<double, highp> highp_dvec4
-
- -

4 components vector of high double-precision floating-point numbers.

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

- -
-
- -
-
- - - - -
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 121 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<int, highp> 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 107 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<int, highp> 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 218 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<int, highp> highp_ivec4
-
- -

4 components vector of high precision signed integer numbers.

-
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 318 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< float, highp > 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 79 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< float, highp > 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 100 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3< float, highp > 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 126 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4< float, highp > 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 152 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< float, highp > 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 204 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2< float, highp > 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 178 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< float, highp > 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 225 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4< float, highp > 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 251 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< float, highp > 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 330 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2< float, highp > 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 277 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3< float, highp > 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 303 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< float, highp > 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 351 of file type_mat.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 142 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<uint, highp> 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 128 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<uint, highp> 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 239 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<uint, highp> highp_uvec4
-
- -

4 components vector of high precision unsigned integer numbers.

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

- -
-
- -
-
- - - - -
typedef detail::tvec2< float, highp > highp_vec2
-
- -

2 components vector of high single-precision floating-point numbers.

-

High Single-precision floating-point vector of 2 components.

-

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

Definition at line 65 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< float, highp > highp_vec3
-
- -

3 components vector of high single-precision floating-point numbers.

-

High Single-precision floating-point vector of 3 components.

-

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

Definition at line 176 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< float, highp > highp_vec4
-
- -

4 components vector of high single-precision floating-point numbers.

-

High Single-precision floating-point vector of 4 components.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
- -

Definition at line 282 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<bool, lowp> lowp_bvec2
-
- -

2 components vector of low precision bool 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 163 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<bool, lowp> lowp_bvec3
-
- -

3 components vector of low precision bool numbers.

-
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 271 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<bool, lowp> lowp_bvec4
-
- -

4 components vector of low precision bool numbers.

-
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 366 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<double, lowp> lowp_dmat2
-
- -

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

-
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 454 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<double, lowp> lowp_dmat2x2
-
- -

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

-
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 472 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<double, lowp> lowp_dmat2x3
-
- -

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

-
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 495 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<double, lowp> lowp_dmat2x4
-
- -

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

-
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 518 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<float, lowp> lowp_dmat3
-
- -

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

-
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 564 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<double, lowp> lowp_dmat3x2
-
- -

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

-
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 541 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<double, lowp> lowp_dmat3x3
-
- -

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

-
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 582 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<double, lowp> lowp_dmat3x4
-
- -

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

-
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 605 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<double, lowp> lowp_dmat4
-
- -

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

-
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 674 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<double, lowp> lowp_dmat4x2
-
- -

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

-
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 628 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<double, lowp> lowp_dmat4x3
-
- -

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

-
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 651 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<double, lowp> lowp_dmat4x4
-
- -

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

-
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 692 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<double, lowp> lowp_dvec2
-
- -

2 components vector of low double-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 100 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<double, lowp> lowp_dvec3
-
- -

3 components vector of low double-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 211 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<double, lowp> lowp_dvec4
-
- -

4 components vector of low double-precision floating-point numbers.

-
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 312 of file type_vec.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 107 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<int, lowp> 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 121 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<int, lowp> 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 232 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<int, lowp> lowp_ivec4
-
- -

4 components vector of low precision signed integer numbers.

-
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 330 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< float, lowp > 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 65 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< float, lowp > 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 86 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3< float, lowp > 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 112 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4< float, lowp > 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 138 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< float, lowp > 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 190 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2< float, lowp > 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 164 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< float, lowp > 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 211 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4< float, lowp > 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 237 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< float, lowp > 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 316 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2< float, lowp > 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 263 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3< float, lowp > 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 289 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< float, lowp > 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 337 of file type_mat.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 128 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<uint, lowp> 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 142 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<uint, lowp> 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 253 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<uint, lowp> lowp_uvec4
-
- -

4 components vector of low precision unsigned integer numbers.

-
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 348 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< float, lowp > lowp_vec2
-
- -

2 components vector of low single-precision floating-point numbers.

-

Low single-precision floating-point vector of 2 components.

-

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

Definition at line 79 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< float, lowp > lowp_vec3
-
- -

3 components vector of low single-precision floating-point numbers.

-

Low single-precision floating-point vector of 3 components.

-

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

Definition at line 190 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< float, lowp > lowp_vec4
-
- -

4 components vector of low single-precision floating-point numbers.

-

Low single-precision floating-point vector of 4 components.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
- -

Definition at line 294 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<bool, mediump> mediump_bvec2
-
- -

2 components vector of medium precision bool 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 156 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<bool, mediump> mediump_bvec3
-
- -

3 components vector of medium precision bool numbers.

-
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 265 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<bool, mediump> mediump_bvec4
-
- -

4 components vector of medium precision bool numbers.

-
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 360 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<double, mediump> mediump_dmat2
-
- -

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

-
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 460 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<double, mediump> mediump_dmat2x2
-
- -

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

-
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 478 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<double, mediump> mediump_dmat2x3
-
- -

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

-
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 501 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<double, mediump> mediump_dmat2x4
-
- -

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

-
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 524 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<double, mediump> mediump_dmat3
-
- -

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

-
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 570 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<double, mediump> mediump_dmat3x2
-
- -

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

-
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 547 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<double, mediump> mediump_dmat3x3
-
- -

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

-
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 588 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<double, mediump> mediump_dmat3x4
-
- -

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

-
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 611 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<double, mediump> mediump_dmat4
-
- -

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

-
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 680 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<double, mediump> mediump_dmat4x2
-
- -

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

-
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 634 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<double, mediump> mediump_dmat4x3
-
- -

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

-
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 657 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<double, mediump> mediump_dmat4x4
-
- -

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

-
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 698 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<double, mediump> mediump_dvec2
-
- -

2 components vector of medium double-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 93 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<double, mediump> mediump_dvec3
-
- -

3 components vector of medium double-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 204 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<double, mediump> mediump_dvec4
-
- -

4 components vector of medium double-precision floating-point numbers.

-
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 306 of file type_vec.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 114 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<int, mediump> 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 114 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<int, mediump> 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 225 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<int, mediump> mediump_ivec4
-
- -

4 components vector of medium precision signed integer numbers.

-
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 324 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< float, mediump > 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 72 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< float, mediump > 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 93 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3< float, mediump > 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 119 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4< float, mediump > 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 145 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< float, mediump > 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 197 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2< float, mediump > 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 171 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< float, mediump > 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 218 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4< float, mediump > 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 244 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< float, mediump > 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 323 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2< float, mediump > 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 270 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3< float, mediump > 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 296 of file type_mat.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< float, mediump > 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 344 of file type_mat.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 135 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<uint, mediump> 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 135 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<uint, mediump> 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 246 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<uint, mediump> mediump_uvec4
-
- -

4 components vector of medium precision unsigned integer numbers.

-
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 342 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< float, mediump > mediump_vec2
-
- -

2 components vector of medium single-precision floating-point numbers.

-

Medium Single-precision floating-point vector of 2 components.

-

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

Definition at line 72 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< float, mediump > mediump_vec3
-
- -

3 components vector of medium single-precision floating-point numbers.

-

Medium Single-precision floating-point vector of 3 components.

-

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

Definition at line 183 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< float, mediump > mediump_vec4
-
- -

4 components vector of medium single-precision floating-point numbers.

-

Medium Single-precision floating-point vector of 4 components.

-
See Also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
-
-GLM_GTC_type_precision
- -

Definition at line 288 of file type_vec.hpp.

- -
-
- -
-
- - - - -
typedef unsigned int uint
-
- -

Unsigned integer type.

-
See Also
GLSL 4.20.8 specification, section 4.1.3 Integers
- -

Definition at line 171 of file type_int.hpp.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00170.html b/3party/glm/doc/api/a00170.html deleted file mode 100755 index a384db95e5..0000000000 --- a/3party/glm/doc/api/a00170.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - -GLM: Template types - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
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/3party/glm/doc/api/a00171.html b/3party/glm/doc/api/a00171.html deleted file mode 100755 index 9249494e32..0000000000 --- a/3party/glm/doc/api/a00171.html +++ /dev/null @@ -1,589 +0,0 @@ - - - - - - -GLM: GLM_GTC_constants - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTC_constants
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

Allow to perform bit operations on integer values.

-

<glm/gtc/constants.hpp> need to be included to use these features.

-

Function Documentation

- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::e ()
-
- -

Return e constant.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::epsilon ()
-
- -

Return the epsilon constant for floating point types.

-
Todo:
Implement epsilon for half-precision floating point type.
-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::euler ()
-
- -

Return Euler's constant.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::golden_ratio ()
-
- -

Return the golden ratio constant.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::half_pi ()
-
- -

Return pi / 2.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::ln_ln_two ()
-
- -

Return ln(ln(2)).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::ln_ten ()
-
- -

Return ln(10).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::ln_two ()
-
- -

Return ln(2).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::one ()
-
- -

Return 1.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::one_over_pi ()
-
- -

Return 1 / pi.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::one_over_root_two ()
-
- -

Return 1 / sqrt(2).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::pi ()
-
- -

Return the pi constant.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::quarter_pi ()
-
- -

Return pi / 4.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::root_five ()
-
- -

Return sqrt(5).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::root_half_pi ()
-
- -

Return sqrt(pi / 2).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::root_ln_four ()
-
- -

Return sqrt(ln(4)).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::root_pi ()
-
- -

Return square root of pi.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::root_three ()
-
- -

Return sqrt(3).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::root_two ()
-
- -

Return sqrt(2).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::root_two_pi ()
-
- -

Return sqrt(2 * pi).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::third ()
-
- -

Return 1 / 3.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::two_over_pi ()
-
- -

Return 2 / pi.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::two_over_root_pi ()
-
- -

Return 2 / sqrt(pi).

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::two_thirds ()
-
- -

Return 2 / 3.

-
See Also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL genType glm::zero ()
-
- -

Return 0.

-
See Also
GLM_GTC_constants
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00172.html b/3party/glm/doc/api/a00172.html deleted file mode 100755 index 725d0c2207..0000000000 --- a/3party/glm/doc/api/a00172.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - -GLM: GLM_GTC_epsilon - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - - - - - - - - - - -

-Functions

template<typename T , precision P, template< typename, precision > class vecType>
GLM_FUNC_DECL vecType< bool, P > epsilonEqual (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL genType::boolType epsilonNotEqual (genType const &x, genType const &y, typename genType::value_type const &epsilon)
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 
-

Detailed Description

-

Comparison functions for a user defined epsilon values.

-

<glm/gtc/epsilon.hpp> need to be included to use these functionalities.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<bool, P> glm::epsilonEqual (vecType< T, P > const & x,
vecType< T, P > const & y,
T const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is satisfied.

-
See Also
GLM_GTC_epsilon
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::epsilonEqual (genType const & x,
genType const & y,
genType const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is satisfied.

-
See Also
GLM_GTC_epsilon
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType::boolType glm::epsilonNotEqual (genType const & x,
genType const & y,
typename genType::value_type const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is not satisfied.

-
See Also
GLM_GTC_epsilon
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::epsilonNotEqual (genType const & x,
genType const & y,
genType const & epsilon 
)
-
- -

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

-

True if this expression is not satisfied.

-
See Also
GLM_GTC_epsilon
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00173.html b/3party/glm/doc/api/a00173.html deleted file mode 100755 index dd58cb59a2..0000000000 --- a/3party/glm/doc/api/a00173.html +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - -GLM: GLM_GTC_matrix_access - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTC_matrix_access
-
-
- - - - - - - - - - - - - - -

-Functions

template<typename genType >
genType::col_type column (genType const &m, length_t const &index)
 
template<typename genType >
genType column (genType const &m, length_t const &index, typename genType::col_type const &x)
 
template<typename genType >
genType::row_type row (genType const &m, length_t const &index)
 
template<typename genType >
genType row (genType const &m, length_t const &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,
length_t const & index 
)
-
- -

Get a specific column of a matrix.

-
See Also
GLM_GTC_matrix_access
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genType glm::column (genType const & m,
length_t const & index,
typename genType::col_type const & x 
)
-
- -

Set a specific column to a matrix.

-
See Also
GLM_GTC_matrix_access
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType::row_type glm::row (genType const & m,
length_t const & index 
)
-
- -

Get a specific row of a matrix.

-
See Also
GLM_GTC_matrix_access
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genType glm::row (genType const & m,
length_t const & index,
typename genType::row_type const & x 
)
-
- -

Set a specific row to a matrix.

-
See Also
GLM_GTC_matrix_access
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00174.html b/3party/glm/doc/api/a00174.html deleted file mode 100755 index b3010467e9..0000000000 --- a/3party/glm/doc/api/a00174.html +++ /dev/null @@ -1,1959 +0,0 @@ - - - - - - -GLM: GLM_GTC_matrix_integer - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTC_matrix_integer
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef detail::tmat2x2< int,
-highp > 
highp_imat2
 
typedef detail::tmat2x2< int,
-highp > 
highp_imat2x2
 
typedef detail::tmat2x3< int,
-highp > 
highp_imat2x3
 
typedef detail::tmat2x4< int,
-highp > 
highp_imat2x4
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3
 
typedef detail::tmat3x2< int,
-highp > 
highp_imat3x2
 
typedef detail::tmat3x3< int,
-highp > 
highp_imat3x3
 
typedef detail::tmat3x4< int,
-highp > 
highp_imat3x4
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4
 
typedef detail::tmat4x2< int,
-highp > 
highp_imat4x2
 
typedef detail::tmat4x3< int,
-highp > 
highp_imat4x3
 
typedef detail::tmat4x4< int,
-highp > 
highp_imat4x4
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2
 
typedef detail::tmat2x2< uint,
-highp > 
highp_umat2x2
 
typedef detail::tmat2x3< uint,
-highp > 
highp_umat2x3
 
typedef detail::tmat2x4< uint,
-highp > 
highp_umat2x4
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3
 
typedef detail::tmat3x2< uint,
-highp > 
highp_umat3x2
 
typedef detail::tmat3x3< uint,
-highp > 
highp_umat3x3
 
typedef detail::tmat3x4< uint,
-highp > 
highp_umat3x4
 
typedef detail::tmat4x4< uint,
-highp > 
highp_umat4
 
typedef detail::tmat4x2< uint,
-highp > 
highp_umat4x2
 
typedef detail::tmat4x3< uint,
-highp > 
highp_umat4x3
 
typedef detail::tmat4x4< uint,
-highp > 
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< int,
-lowp > 
lowp_imat2
 
typedef detail::tmat2x2< int,
-lowp > 
lowp_imat2x2
 
typedef detail::tmat2x3< int,
-lowp > 
lowp_imat2x3
 
typedef detail::tmat2x4< int,
-lowp > 
lowp_imat2x4
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3
 
typedef detail::tmat3x2< int,
-lowp > 
lowp_imat3x2
 
typedef detail::tmat3x3< int,
-lowp > 
lowp_imat3x3
 
typedef detail::tmat3x4< int,
-lowp > 
lowp_imat3x4
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4
 
typedef detail::tmat4x2< int,
-lowp > 
lowp_imat4x2
 
typedef detail::tmat4x3< int,
-lowp > 
lowp_imat4x3
 
typedef detail::tmat4x4< int,
-lowp > 
lowp_imat4x4
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2
 
typedef detail::tmat2x2< uint,
-lowp > 
lowp_umat2x2
 
typedef detail::tmat2x3< uint,
-lowp > 
lowp_umat2x3
 
typedef detail::tmat2x4< uint,
-lowp > 
lowp_umat2x4
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3
 
typedef detail::tmat3x2< uint,
-lowp > 
lowp_umat3x2
 
typedef detail::tmat3x3< uint,
-lowp > 
lowp_umat3x3
 
typedef detail::tmat3x4< uint,
-lowp > 
lowp_umat3x4
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4
 
typedef detail::tmat4x2< uint,
-lowp > 
lowp_umat4x2
 
typedef detail::tmat4x3< uint,
-lowp > 
lowp_umat4x3
 
typedef detail::tmat4x4< uint,
-lowp > 
lowp_umat4x4
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2
 
typedef detail::tmat2x2< int,
-mediump > 
mediump_imat2x2
 
typedef detail::tmat2x3< int,
-mediump > 
mediump_imat2x3
 
typedef detail::tmat2x4< int,
-mediump > 
mediump_imat2x4
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3
 
typedef detail::tmat3x2< int,
-mediump > 
mediump_imat3x2
 
typedef detail::tmat3x3< int,
-mediump > 
mediump_imat3x3
 
typedef detail::tmat3x4< int,
-mediump > 
mediump_imat3x4
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4
 
typedef detail::tmat4x2< int,
-mediump > 
mediump_imat4x2
 
typedef detail::tmat4x3< int,
-mediump > 
mediump_imat4x3
 
typedef detail::tmat4x4< int,
-mediump > 
mediump_imat4x4
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2
 
typedef detail::tmat2x2< uint,
-mediump > 
mediump_umat2x2
 
typedef detail::tmat2x3< uint,
-mediump > 
mediump_umat2x3
 
typedef detail::tmat2x4< uint,
-mediump > 
mediump_umat2x4
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3
 
typedef detail::tmat3x2< uint,
-mediump > 
mediump_umat3x2
 
typedef detail::tmat3x3< uint,
-mediump > 
mediump_umat3x3
 
typedef detail::tmat3x4< uint,
-mediump > 
mediump_umat3x4
 
typedef detail::tmat4x4< uint,
-mediump > 
mediump_umat4
 
typedef detail::tmat4x2< uint,
-mediump > 
mediump_umat4x2
 
typedef detail::tmat4x3< uint,
-mediump > 
mediump_umat4x3
 
typedef detail::tmat4x4< uint,
-mediump > 
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<int, highp> highp_imat2
-
- -

High-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 62 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<int, highp> highp_imat2x2
-
- -

High-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 74 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<int, highp> highp_imat2x3
-
- -

High-precision signed integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 78 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<int, highp> highp_imat2x4
-
- -

High-precision signed integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 82 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<int, highp> highp_imat3
-
- -

High-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 66 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<int, highp> highp_imat3x2
-
- -

High-precision signed integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 86 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<int, highp> highp_imat3x3
-
- -

High-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 90 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<int, highp> highp_imat3x4
-
- -

High-precision signed integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 94 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<int, highp> highp_imat4
-
- -

High-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 70 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<int, highp> highp_imat4x2
-
- -

High-precision signed integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 98 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<int, highp> highp_imat4x3
-
- -

High-precision signed integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 102 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<int, highp> highp_imat4x4
-
- -

High-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 106 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<uint, highp> highp_umat2
-
- -

High-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 211 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<uint, highp> highp_umat2x2
-
- -

High-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 223 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<uint, highp> highp_umat2x3
-
- -

High-precision unsigned integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 227 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<uint, highp> highp_umat2x4
-
- -

High-precision unsigned integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 231 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<uint, highp> highp_umat3
-
- -

High-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 215 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<uint, highp> highp_umat3x2
-
- -

High-precision unsigned integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 235 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<uint, highp> highp_umat3x3
-
- -

High-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 239 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<uint, highp> highp_umat3x4
-
- -

High-precision unsigned integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 243 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<uint, highp> highp_umat4
-
- -

High-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 219 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<uint, highp> highp_umat4x2
-
- -

High-precision unsigned integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 247 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<uint, highp> highp_umat4x3
-
- -

High-precision unsigned integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 251 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<uint, highp> highp_umat4x4
-
- -

High-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 255 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2 imat2
-
- -

Signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 387 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2x2 imat2x2
-
- -

Signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 399 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2x3 imat2x3
-
- -

Signed integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 403 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2x4 imat2x4
-
- -

Signed integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 407 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3 imat3
-
- -

Signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 391 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3x2 imat3x2
-
- -

Signed integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 411 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3x3 imat3x3
-
- -

Signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 415 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3x4 imat3x4
-
- -

Signed integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 419 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4 imat4
-
- -

Signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 395 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4x2 imat4x2
-
- -

Signed integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 423 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4x3 imat4x3
-
- -

Signed integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 427 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4x4 imat4x4
-
- -

Signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 431 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<int, lowp> lowp_imat2
-
- -

Low-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 161 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<int, lowp> lowp_imat2x2
-
- -

Low-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 174 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<int, lowp> lowp_imat2x3
-
- -

Low-precision signed integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 178 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<int, lowp> lowp_imat2x4
-
- -

Low-precision signed integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 182 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<int, lowp> lowp_imat3
-
- -

Low-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 165 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<int, lowp> lowp_imat3x2
-
- -

Low-precision signed integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 186 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<int, lowp> lowp_imat3x3
-
- -

Low-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 190 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<int, lowp> lowp_imat3x4
-
- -

Low-precision signed integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 194 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<int, lowp> lowp_imat4
-
- -

Low-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 169 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<int, lowp> lowp_imat4x2
-
- -

Low-precision signed integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 198 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<int, lowp> lowp_imat4x3
-
- -

Low-precision signed integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 202 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<int, lowp> lowp_imat4x4
-
- -

Low-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 206 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<uint, lowp> lowp_umat2
-
- -

Low-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 310 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<uint, lowp> lowp_umat2x2
-
- -

Low-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 323 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<uint, lowp> lowp_umat2x3
-
- -

Low-precision unsigned integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 327 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<uint, lowp> lowp_umat2x4
-
- -

Low-precision unsigned integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 331 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<uint, lowp> lowp_umat3
-
- -

Low-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 314 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<uint, lowp> lowp_umat3x2
-
- -

Low-precision unsigned integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 335 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<uint, lowp> lowp_umat3x3
-
- -

Low-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 339 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<uint, lowp> lowp_umat3x4
-
- -

Low-precision unsigned integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 343 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<uint, lowp> lowp_umat4
-
- -

Low-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 318 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<uint, lowp> lowp_umat4x2
-
- -

Low-precision unsigned integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 347 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<uint, lowp> lowp_umat4x3
-
- -

Low-precision unsigned integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 351 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<uint, lowp> lowp_umat4x4
-
- -

Low-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 355 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<int, mediump> mediump_imat2
-
- -

Medium-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 111 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<int, mediump> mediump_imat2x2
-
- -

Medium-precision signed integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 124 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<int, mediump> mediump_imat2x3
-
- -

Medium-precision signed integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 128 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<int, mediump> mediump_imat2x4
-
- -

Medium-precision signed integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 132 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<int, mediump> mediump_imat3
-
- -

Medium-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 115 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<int, mediump> mediump_imat3x2
-
- -

Medium-precision signed integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 136 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<int, mediump> mediump_imat3x3
-
- -

Medium-precision signed integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 140 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<int, mediump> mediump_imat3x4
-
- -

Medium-precision signed integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 144 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<int, mediump> mediump_imat4
-
- -

Medium-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 119 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<int, mediump> mediump_imat4x2
-
- -

Medium-precision signed integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 148 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<int, mediump> mediump_imat4x3
-
- -

Medium-precision signed integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 152 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<int, mediump> mediump_imat4x4
-
- -

Medium-precision signed integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 156 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<uint, mediump> mediump_umat2
-
- -

Medium-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 260 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<uint, mediump> mediump_umat2x2
-
- -

Medium-precision unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 273 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<uint, mediump> mediump_umat2x3
-
- -

Medium-precision unsigned integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 277 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<uint, mediump> mediump_umat2x4
-
- -

Medium-precision unsigned integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 281 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<uint, mediump> mediump_umat3
-
- -

Medium-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 264 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<uint, mediump> mediump_umat3x2
-
- -

Medium-precision unsigned integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 285 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<uint, mediump> mediump_umat3x3
-
- -

Medium-precision unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 289 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<uint, mediump> mediump_umat3x4
-
- -

Medium-precision unsigned integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 293 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<uint, mediump> mediump_umat4
-
- -

Medium-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 268 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<uint, mediump> mediump_umat4x2
-
- -

Medium-precision unsigned integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 297 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<uint, mediump> mediump_umat4x3
-
- -

Medium-precision unsigned integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 301 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<uint, mediump> mediump_umat4x4
-
- -

Medium-precision unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 305 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat2 umat2
-
- -

Unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 464 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat2x2 umat2x2
-
- -

Unsigned integer 2x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 476 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat2x3 umat2x3
-
- -

Unsigned integer 2x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 480 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat2x4 umat2x4
-
- -

Unsigned integer 2x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 484 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat3 umat3
-
- -

Unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 468 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat3x2 umat3x2
-
- -

Unsigned integer 3x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 488 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat3x3 umat3x3
-
- -

Unsigned integer 3x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 492 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat3x4 umat3x4
-
- -

Unsigned integer 3x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 496 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat4 umat4
-
- -

Unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 472 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat4x2 umat4x2
-
- -

Unsigned integer 4x2 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 500 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat4x3 umat4x3
-
- -

Unsigned integer 4x3 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 504 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat4x4 umat4x4
-
- -

Unsigned integer 4x4 matrix.

-
See Also
GLM_GTC_matrix_integer
- -

Definition at line 508 of file matrix_integer.hpp.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00175.html b/3party/glm/doc/api/a00175.html deleted file mode 100755 index 31dfc585aa..0000000000 --- a/3party/glm/doc/api/a00175.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - -GLM: GLM_GTC_matrix_inverse - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTC_matrix_inverse
-
-
- - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_QUALIFIER 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

- -
-
- - - - - - - - -
GLM_FUNC_QUALIFIER 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
- -
-
- -
-
- - - - - - - - -
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
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00176.html b/3party/glm/doc/api/a00176.html deleted file mode 100755 index c9e08f50f3..0000000000 --- a/3party/glm/doc/api/a00176.html +++ /dev/null @@ -1,910 +0,0 @@ - - - - - - -GLM: GLM_GTC_matrix_transform - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTC_matrix_transform
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::infinitePerspective (fovy,
aspect,
near 
)
-
- -

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.

-
Parameters
- - - - -
fovyExpressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::lookAt (detail::tvec3< T, P > const & eye,
detail::tvec3< T, P > const & center,
detail::tvec3< T, P > 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
-
-- 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)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> 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
-
-- glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> 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
-
-- glm::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::perspective (T const & fovy,
T const & aspect,
T const & near,
T const & far 
)
-
- -

Creates a matrix for a symetric perspective-view frustum.

-
Parameters
- - - - - -
fovyExpressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::perspectiveFov (T const & fov,
T const & width,
T const & height,
T const & near,
T const & far 
)
-
- -

Builds a perspective projection matrix based on a field of view.

-
Parameters
- - - - - - -
fovExpressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::pickMatrix (detail::tvec2< T, P > const & center,
detail::tvec2< T, P > const & delta,
detail::tvec4< U, P > 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec3<T, P> glm::project (detail::tvec3< T, P > const & obj,
detail::tmat4x4< T, P > const & model,
detail::tmat4x4< T, P > const & proj,
detail::tvec4< U, P > 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::rotate (detail::tmat4x4< T, P > const & m,
T const & angle,
detail::tvec3< T, P > const & axis 
)
-
- -

Builds a rotation 4 * 4 matrix created from an axis vector and an angle.

-
Parameters
- - - - -
mInput matrix multiplied by this rotation matrix.
angleRotation angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
axisRotation axis, recommanded to be normalized.
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Supported: half, float or double.
-
-
-
See Also
GLM_GTC_matrix_transform
-
-GLM_GTX_transform
-
-- rotate(T angle, T x, T y, T z)
-
-- rotate(detail::tmat4x4<T, P> const & m, T angle, T x, T y, T z)
-
-- rotate(T angle, detail::tvec3<T, P> const & v)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::scale (detail::tmat4x4< T, P > const & m,
detail::tvec3< T, P > 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
-
-GLM_GTX_transform
-
-- scale(T x, T y, T z) scale(T const & x, T const & y, T const & z)
-
-- scale(detail::tmat4x4<T, P> const & m, T x, T y, T z)
-
-- scale(detail::tvec3<T, P> const & v)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::translate (detail::tmat4x4< T, P > const & m,
detail::tvec3< T, P > 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>
-
* ...
- -
* // 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
-
-GLM_GTX_transform
-
-- translate(T x, T y, T z)
-
-- translate(detail::tmat4x4<T, P> const & m, T x, T y, T z)
-
-- translate(detail::tvec3<T, P> const & v)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> 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
- - - - -
fovyExpressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec3<T, P> glm::unProject (detail::tvec3< T, P > const & win,
detail::tmat4x4< T, P > const & model,
detail::tmat4x4< T, P > const & proj,
detail::tvec4< U, P > 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
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00177.html b/3party/glm/doc/api/a00177.html deleted file mode 100755 index 38543e5ae1..0000000000 --- a/3party/glm/doc/api/a00177.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -GLM: GLM_GTC_noise - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - - - - - - - -

-Functions

template<typename T , precision P, template< typename, precision > class vecType>
perlin (vecType< T, P > const &p)
 
template<typename T , precision P, template< typename, precision > class vecType>
perlin (vecType< T, P > const &p, vecType< T, P > const &rep)
 
template<typename T , precision P, template< typename, precision > class vecType>
simplex (vecType< T, P > 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, P > const & p)
-
- -

Classic perlin noise.

-
See Also
GLM_GTC_noise
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::perlin (vecType< T, P > const & p,
vecType< T, P > const & rep 
)
-
- -

Periodic perlin noise.

-
See Also
GLM_GTC_noise
- -
-
- -
-
- - - - - - - - -
T glm::simplex (vecType< T, P > const & p)
-
- -

Simplex noise.

-
See Also
GLM_GTC_noise
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00178.html b/3party/glm/doc/api/a00178.html deleted file mode 100755 index ef31c709bc..0000000000 --- a/3party/glm/doc/api/a00178.html +++ /dev/null @@ -1,978 +0,0 @@ - - - - - - -GLM: GLM_GTC_packing - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 
GLM_FUNC_DECL uint16 packHalf1x16 (float const &v)
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float const &s)
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float const &v)
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float const &v)
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 const &p)
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 const &v)
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 const &p)
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 const &p)
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 const &p)
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 const &p)
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 const &p)
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 const &p)
 
-

Detailed Description

-

This extension provides a set of function to convert vertors to packed formats.

-

<glm/gtc/packing.hpp> need to be included to use these features.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packF2x11_1x10 (vec3 const & v)
-
- -

First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values.

-

Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.

-

The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.

-
See Also
GLM_GTC_packing
-
-vec3 unpackF2x11_1x10(uint32 const & p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packHalf1x16 (float const & v)
-
- -

Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer.

-
See Also
GLM_GTC_packing
-
-uint32 packHalf2x16(vec2 const & v)
-
-uint64 packHalf4x16(vec4 const & v)
-
-GLSL packHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint64 glm::packHalf4x16 (vec4 const & v)
-
- -

Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer.

-

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

-
See Also
GLM_GTC_packing
-
-uint16 packHalf1x16(float const & v)
-
-uint32 packHalf2x16(vec2 const & v)
-
-GLSL packHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packI3x10_1x2 (ivec4 const & v)
-
- -

Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer.

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See Also
GLM_GTC_packing
-
-uint32 packI3x10_1x2(uvec4 const & v)
-
-uint32 packSnorm3x10_1x2(vec4 const & v)
-
-uint32 packUnorm3x10_1x2(vec4 const & v)
-
-ivec4 unpackI3x10_1x2(uint32 const & p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packSnorm1x16 (float const & v)
-
- -

First, converts the normalized floating-point value v into 16-bit integer value.

-

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

-

The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 32767.0)

-
See Also
GLM_GTC_packing
-
-uint32 packSnorm2x16(vec2 const & v)
-
-uint64 packSnorm4x16(vec4 const & v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint8 glm::packSnorm1x8 (float const & s)
-
- -

First, converts the normalized floating-point value v into 8-bit integer value.

-

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

-

The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 127.0)

-
See Also
GLM_GTC_packing
-
-uint16 packSnorm2x8(vec2 const & v)
-
-uint32 packSnorm4x8(vec4 const & v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packSnorm2x8 (vec2 const & v)
-
- -

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

-

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

-

The conversion for component c of v to fixed point is done as follows: packSnorm2x8: 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
GLM_GTC_packing
-
-uint8 packSnorm1x8(float const & v)
-
-uint32 packSnorm4x8(vec4 const & v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packSnorm3x10_1x2 (vec4 const & v)
-
- -

First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values.

-

Then, converts the forth component of the normalized floating-point value v into 2-bit signed integer values. Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packSnorm3x10_1x2(xyz): round(clamp(c, -1, +1) * 511.0) packSnorm3x10_1x2(w): round(clamp(c, -1, +1) * 1.0)

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See Also
GLM_GTC_packing
-
-vec4 unpackSnorm3x10_1x2(uint32 const & p)
-
-uint32 packUnorm3x10_1x2(vec4 const & v)
-
-uint32 packU3x10_1x2(uvec4 const & v)
-
-uint32 packI3x10_1x2(ivec4 const & v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint64 glm::packSnorm4x16 (vec4 const & v)
-
- -

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

-

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

-

The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -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
GLM_GTC_packing
-
-uint16 packSnorm1x16(float const & v)
-
-uint32 packSnorm2x16(vec2 const & v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packU3x10_1x2 (uvec4 const & v)
-
- -

Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer.

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See Also
GLM_GTC_packing
-
-uint32 packI3x10_1x2(ivec4 const & v)
-
-uint32 packSnorm3x10_1x2(vec4 const & v)
-
-uint32 packUnorm3x10_1x2(vec4 const & v)
-
-ivec4 unpackU3x10_1x2(uint32 const & p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packUnorm1x16 (float const & v)
-
- -

First, converts the normalized floating-point value v into a 16-bit integer value.

-

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

-

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

-
See Also
GLM_GTC_packing
-
-uint16 packSnorm1x16(float const & v)
-
-uint64 packSnorm4x16(vec4 const & v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint8 glm::packUnorm1x8 (float const & v)
-
- -

First, converts the normalized floating-point value v into a 8-bit integer value.

-

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

-

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

-
See Also
GLM_GTC_packing
-
-uint16 packUnorm2x8(vec2 const & v)
-
-uint32 packUnorm4x8(vec4 const & v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packUnorm2x8 (vec2 const & v)
-
- -

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

-

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

-

The conversion for component c of v to fixed point is done as follows: packUnorm2x8: 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
GLM_GTC_packing
-
-uint8 packUnorm1x8(float const & v)
-
-uint32 packUnorm4x8(vec4 const & v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packUnorm3x10_1x2 (vec4 const & v)
-
- -

First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values.

-

Then, converts the forth component of the normalized floating-point value v into 2-bit signed uninteger values. Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm3x10_1x2(xyz): round(clamp(c, 0, +1) * 1023.0) packUnorm3x10_1x2(w): round(clamp(c, 0, +1) * 3.0)

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See Also
GLM_GTC_packing
-
-vec4 unpackUnorm3x10_1x2(uint32 const & p)
-
-uint32 packUnorm3x10_1x2(vec4 const & v)
-
-uint32 packU3x10_1x2(uvec4 const & v)
-
-uint32 packI3x10_1x2(ivec4 const & v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint64 glm::packUnorm4x16 (vec4 const & v)
-
- -

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

-

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

-

The conversion for component c of v to fixed point is done as follows: packUnorm4x16: 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
GLM_GTC_packing
-
-uint16 packUnorm1x16(float const & v)
-
-uint32 packUnorm2x16(vec2 const & v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec3 glm::unpackF2x11_1x10 (uint32 const & p)
-
- -

First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value .

-

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

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See Also
GLM_GTC_packing
-
-uint32 packF2x11_1x10(vec3 const & v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::unpackHalf1x16 (uint16 const & v)
-
- -

Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values.

-
See Also
GLM_GTC_packing
-
-vec2 unpackHalf2x16(uint32 const & v)
-
-vec4 unpackHalf4x16(uint64 const & v)
-
-GLSL unpackHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackHalf4x16 (uint64 const & p)
-
- -

Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values.

-

The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.

-
See Also
GLM_GTC_packing
-
-float unpackHalf1x16(uint16 const & v)
-
-vec2 unpackHalf2x16(uint32 const & v)
-
-GLSL unpackHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL ivec4 glm::unpackI3x10_1x2 (uint32 const & p)
-
- -

Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers.

-

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
GLM_GTC_packing
-
-uint32 packU3x10_1x2(uvec4 const & v)
-
-vec4 unpackSnorm3x10_1x2(uint32 const & p);
-
-uvec4 unpackI3x10_1x2(uint32 const & p);
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::unpackSnorm1x16 (uint16 const & p)
-
- -

First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned scalar.

-

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

-
See Also
GLM_GTC_packing
-
-vec2 unpackSnorm2x16(uint32 p)
-
-vec4 unpackSnorm4x16(uint64 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::unpackSnorm1x8 (uint8 const & p)
-
- -

First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers.

-

Then, the value is converted to a normalized floating-point value to generate the returned scalar.

-

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

-
See Also
GLM_GTC_packing
-
-vec2 unpackSnorm2x8(uint16 p)
-
-vec4 unpackSnorm4x8(uint32 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec2 glm::unpackSnorm2x8 (uint16 const & p)
-
- -

First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers.

-

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

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x8: 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
GLM_GTC_packing
-
-float unpackSnorm1x8(uint8 p)
-
-vec4 unpackSnorm4x8(uint32 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackSnorm3x10_1x2 (uint32 const & p)
-
- -

First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.

-

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

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 511.0, -1, +1) unpackSnorm3x10_1x2(w): clamp(f / 511.0, -1, +1)

-

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
GLM_GTC_packing
-
-uint32 packSnorm3x10_1x2(vec4 const & v)
-
-vec4 unpackUnorm3x10_1x2(uint32 const & p))
-
-uvec4 unpackI3x10_1x2(uint32 const & p)
-
-uvec4 unpackU3x10_1x2(uint32 const & p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackSnorm4x16 (uint64 const & p)
-
- -

First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers.

-

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

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x16: 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
GLM_GTC_packing
-
-float unpackSnorm1x16(uint16 p)
-
-vec2 unpackSnorm2x16(uint32 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uvec4 glm::unpackU3x10_1x2 (uint32 const & p)
-
- -

Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers.

-

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
GLM_GTC_packing
-
-uint32 packU3x10_1x2(uvec4 const & v)
-
-vec4 unpackSnorm3x10_1x2(uint32 const & p);
-
-uvec4 unpackI3x10_1x2(uint32 const & p);
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::unpackUnorm1x16 (uint16 const & p)
-
- -

First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers.

-

Then, the value is converted to a normalized floating-point value to generate the returned scalar.

-

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

-
See Also
GLM_GTC_packing
-
-vec2 unpackUnorm2x16(uint32 p)
-
-vec4 unpackUnorm4x16(uint64 p)
-
-GLSL unpackUnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::unpackUnorm1x8 (uint8 const & p)
-
- -

Convert a single 8-bit integer to a normalized floating-point value.

-

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

-
See Also
GLM_GTC_packing
-
-vec2 unpackUnorm2x8(uint16 p)
-
-vec4 unpackUnorm4x8(uint32 p)
-
-GLSL unpackUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec2 glm::unpackUnorm2x8 (uint16 const & p)
-
- -

First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two-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
GLM_GTC_packing
-
-float unpackUnorm1x8(uint8 v)
-
-vec4 unpackUnorm4x8(uint32 p)
-
-GLSL unpackUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackUnorm3x10_1x2 (uint32 const & p)
-
- -

First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.

-

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

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 1023.0, 0, +1) unpackSnorm3x10_1x2(w): clamp(f / 3.0, 0, +1)

-

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
GLM_GTC_packing
-
-uint32 packSnorm3x10_1x2(vec4 const & v)
-
-vec4 unpackInorm3x10_1x2(uint32 const & p))
-
-uvec4 unpackI3x10_1x2(uint32 const & p)
-
-uvec4 unpackU3x10_1x2(uint32 const & p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackUnorm4x16 (uint64 const & p)
-
- -

First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers.

-

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

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnormx4x16: 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
GLM_GTC_packing
-
-float unpackUnorm1x16(uint16 p)
-
-vec2 unpackUnorm2x16(uint32 p)
-
-GLSL unpackUnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00179.html b/3party/glm/doc/api/a00179.html deleted file mode 100755 index fc0f118083..0000000000 --- a/3party/glm/doc/api/a00179.html +++ /dev/null @@ -1,897 +0,0 @@ - - - - - - -GLM: GLM_GTC_quaternion - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTC_quaternion
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
GLM_FUNC_DECL T angle (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > angleAxis (T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > axis (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > conjugate (detail::tquat< T, P > const &q)
 
template<typename T , precision P, template< typename, precision > class quatType>
GLM_FUNC_DECL T dot (quatType< T, P > const &x, quatType< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
equal (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec3< T, P > eulerAngles (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
greaterThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > inverse (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL T length (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > lerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThan (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
lessThanEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat3x3
-< T, P > 
mat3_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tmat4x4
-< T, P > 
mat4_cast (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > mix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > normalize (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tvec4
-< bool, P > 
notEqual (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_DECL T pitch (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > quat_cast (detail::tmat4x4< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL T roll (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > rotate (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
GLM_FUNC_DECL detail::tquat< T, P > slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
GLM_FUNC_DECL T yaw (detail::tquat< T, P > const &x)
 
-

Detailed Description

-

Defines a templated quaternion type and several quaternion operations.

-

<glm/gtc/quaternion.hpp> need to be included to use these functionalities.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::angle (detail::tquat< T, P > const & x)
-
- -

Returns the quaternion rotation angle.

-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::angleAxis (T const & angle,
detail::tvec3< T, P > const & axis 
)
-
- -

Build a quaternion from an angle and a normalized axis.

-
Parameters
- - - -
angleAngle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
axisAxis of the quaternion, must be normalized.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec3<T, P> glm::axis (detail::tquat< T, P > const & x)
-
- -

Returns the q rotation axis.

-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::conjugate (detail::tquat< T, P > const & q)
-
- -

Returns the q conjugate.

-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::dot (quatType< T, P > const & x,
quatType< T, P > const & y 
)
-
- -

Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...

-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::equal (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

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

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec3<T, P> glm::eulerAngles (detail::tquat< T, P > const & x)
-
- -

Returns euler angles, yitch as x, yaw as y, roll as z.

-

The result is expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.

-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::greaterThan (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

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

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::greaterThanEqual (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

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

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::inverse (detail::tquat< T, P > const & q)
-
- -

Returns the q inverse.

-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::length (detail::tquat< T, P > const & q)
-
- -

Returns the length of the quaternion.

-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::lerp (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y,
T const & a 
)
-
- -

Linear interpolation of two quaternions.

-

The interpolation is oriented.

-
Parameters
- - - - -
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined in the range [0, 1].
-
-
-
Template Parameters
- - -
TValue type used to build the quaternion. Supported: half, float or double.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::lessThan (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

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

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::lessThanEqual (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

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

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat3x3<T, P> glm::mat3_cast (detail::tquat< T, P > const & x)
-
- -

Converts a quaternion to a 3 * 3 matrix.

-
See Also
GLM_GTC_quaternion
- -

Referenced by glm::toMat3().

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, P> glm::mat4_cast (detail::tquat< T, P > const & x)
-
- -

Converts a quaternion to a 4 * 4 matrix.

-
See Also
GLM_GTC_quaternion
- -

Referenced by glm::toMat4().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::mix (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y,
T const & a 
)
-
- -

Spherical linear interpolation of two quaternions.

-

The interpolation is oriented and the rotation is performed at constant speed. For short path spherical linear interpolation, use the slerp function.

-
Parameters
- - - - -
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
-
-
-
Template Parameters
- - -
TValue type used to build the quaternion. Supported: half, float or double.
-
-
-
See Also
GLM_GTC_quaternion
-
-- slerp(detail::tquat<T, P> const & x, detail::tquat<T, P> const & y, T const & a)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::normalize (detail::tquat< T, P > const & q)
-
- -

Returns the normalized quaternion.

-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tvec4<bool, P> glm::notEqual (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y 
)
-
- -

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

-
Template Parameters
- - -
quatTypeFloating-point quaternion types.
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::pitch (detail::tquat< T, P > const & x)
-
- -

Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::quat_cast (detail::tmat3x3< T, P > const & x)
-
- -

Converts a 3 * 3 matrix to a quaternion.

-
See Also
GLM_GTC_quaternion
- -

Referenced by glm::toQuat().

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::quat_cast (detail::tmat4x4< T, P > const & x)
-
- -

Converts a 4 * 4 matrix to a quaternion.

-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::roll (detail::tquat< T, P > const & x)
-
- -

Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::rotate (detail::tquat< T, P > const & q,
T const & angle,
detail::tvec3< T, P > const & axis 
)
-
- -

Rotates a quaternion from a vector of 3 components axis and an angle.

-
Parameters
- - - - -
qSource orientation
angleAngle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
axisAxis of the rotation
-
-
-
See Also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, P> glm::slerp (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y,
T const & a 
)
-
- -

Spherical linear interpolation of two quaternions.

-

The interpolation always take the short path and the rotation is performed at constant speed.

-
Parameters
- - - - -
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
-
-
-
Template Parameters
- - -
TValue type used to build the quaternion. Supported: half, float or double.
-
-
-
See Also
GLM_GTC_quaternion
-

Spherical linear interpolation of two quaternions.

- -

Definition at line 73 of file compatibility.hpp.

- -

References glm::mix().

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::yaw (detail::tquat< T, P > const & x)
-
- -

Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.

-
See Also
GLM_GTX_quaternion
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00180.html b/3party/glm/doc/api/a00180.html deleted file mode 100755 index f7944c46c7..0000000000 --- a/3party/glm/doc/api/a00180.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - -GLM: GLM_GTC_random - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
ballRand (T const &Radius)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
circularRand (T const &Radius)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
diskRand (T const &Radius)
 
template<typename genType >
GLM_FUNC_DECL genType gaussRand (genType const &Mean, genType const &Deviation)
 
template<typename genType >
GLM_FUNC_DECL genType linearRand (genType const &Min, genType const &Max)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
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_DECL detail::tvec3<T, defaultp> 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec2<T, defaultp> 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec2<T, defaultp> 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec3<T, defaultp> 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
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00181.html b/3party/glm/doc/api/a00181.html deleted file mode 100755 index f9253c0296..0000000000 --- a/3party/glm/doc/api/a00181.html +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - -GLM: GLM_GTC_reciprocal - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTC_reciprocal
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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

Detailed Description

-

Define secant, cosecant and cotangent functions.

-

<glm/gtc/reciprocal.hpp> need to be included to use these features.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acot (genType const & x)
-
- -

Inverse cotangent function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acoth (genType const & x)
-
- -

Inverse cotangent hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acsc (genType const & x)
-
- -

Inverse cosecant function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acsch (genType const & x)
-
- -

Inverse cosecant hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::asec (genType const & x)
-
- -

Inverse secant function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::asech (genType const & x)
-
- -

Inverse secant hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::cot (genType const & angle)
-
- -

Cotangent function.

-

adjacent / opposite or 1 / tan(x)

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::coth (genType const & angle)
-
- -

Cotangent hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::csc (genType const & angle)
-
- -

Cosecant function.

-

hypotenuse / opposite or 1 / sin(x)

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::csch (genType const & angle)
-
- -

Cosecant hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::sec (genType const & angle)
-
- -

Secant function.

-

hypotenuse / adjacent or 1 / cos(x)

-
See Also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::sech (genType const & angle)
-
- -

Secant hyperbolic function.

-
See Also
GLM_GTC_reciprocal
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00182.html b/3party/glm/doc/api/a00182.html deleted file mode 100755 index 388110e5a1..0000000000 --- a/3party/glm/doc/api/a00182.html +++ /dev/null @@ -1,8958 +0,0 @@ - - - - - - -GLM: GLM_GTC_type_precision - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTC_type_precision
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef highp_float32_t f32
 
typedef f32mat2x2 f32mat2
 
typedef highp_f32mat2x2 f32mat2x2
 
typedef highp_f32mat2x3 f32mat2x3
 
typedef highp_f32mat2x4 f32mat2x4
 
typedef f32mat3x3 f32mat3
 
typedef highp_f32mat3x2 f32mat3x2
 
typedef highp_f32mat3x3 f32mat3x3
 
typedef highp_f32mat3x4 f32mat3x4
 
typedef f32mat4x4 f32mat4
 
typedef highp_f32mat4x2 f32mat4x2
 
typedef highp_f32mat4x3 f32mat4x3
 
typedef highp_f32mat4x4 f32mat4x4
 
typedef highp_f32quat f32quat
 
typedef highp_f32vec1 f32vec1
 
typedef highp_f32vec2 f32vec2
 
typedef highp_f32vec3 f32vec3
 
typedef highp_f32vec4 f32vec4
 
typedef highp_float64_t f64
 
typedef f64mat2x2 f64mat2
 
typedef highp_f64mat2x2 f64mat2x2
 
typedef highp_f64mat2x3 f64mat2x3
 
typedef highp_f64mat2x4 f64mat2x4
 
typedef f64mat3x3 f64mat3
 
typedef highp_f64mat3x2 f64mat3x2
 
typedef highp_f64mat3x3 f64mat3x3
 
typedef highp_f64mat3x4 f64mat3x4
 
typedef f64mat4x4 f64mat4
 
typedef highp_f64mat4x2 f64mat4x2
 
typedef highp_f64mat4x3 f64mat4x3
 
typedef highp_f64mat4x4 f64mat4x4
 
typedef highp_f64quat f64quat
 
typedef highp_f64vec1 f64vec1
 
typedef highp_f64vec2 f64vec2
 
typedef highp_f64vec3 f64vec3
 
typedef highp_f64vec4 f64vec4
 
typedef float float32
 
typedef highp_float32_t float32_t
 
typedef double float64
 
typedef highp_float64_t float64_t
 
typedef fmat2x2 fmat2
 
typedef highp_f32mat2x2 fmat2x2
 
typedef highp_f32mat2x3 fmat2x3
 
typedef highp_f32mat2x4 fmat2x4
 
typedef fmat3x3 fmat3
 
typedef highp_f32mat3x2 fmat3x2
 
typedef highp_f32mat3x3 fmat3x3
 
typedef highp_f32mat3x4 fmat3x4
 
typedef fmat4x4 fmat4
 
typedef highp_f32mat4x2 fmat4x2
 
typedef highp_f32mat4x3 fmat4x3
 
typedef highp_f32mat4x4 fmat4x4
 
typedef quat fquat
 
typedef highp_f32vec1 fvec1
 
typedef highp_f32vec2 fvec2
 
typedef highp_f32vec3 fvec3
 
typedef highp_f32vec4 fvec4
 
typedef float32 highp_f32
 
typedef highp_f32mat2x2 highp_f32mat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_f32mat2x4
 
typedef highp_f32mat3x3 highp_f32mat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_f32mat3x4
 
typedef highp_f32mat4x4 highp_f32mat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_f32mat4x4
 
typedef detail::tquat< f32, highp > highp_f32quat
 
typedef detail::tvec1< f32, highp > highp_f32vec1
 
typedef detail::tvec2< f32, highp > highp_f32vec2
 
typedef detail::tvec3< f32, highp > highp_f32vec3
 
typedef detail::tvec4< f32, highp > highp_f32vec4
 
typedef float64 highp_f64
 
typedef highp_f64mat2x2 highp_f64mat2
 
typedef detail::tmat2x2< f64,
-highp > 
highp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-highp > 
highp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-highp > 
highp_f64mat2x4
 
typedef highp_f64mat3x3 highp_f64mat3
 
typedef detail::tmat3x2< f64,
-highp > 
highp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-highp > 
highp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-highp > 
highp_f64mat3x4
 
typedef highp_f64mat4x4 highp_f64mat4
 
typedef detail::tmat4x2< f64,
-highp > 
highp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-highp > 
highp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-highp > 
highp_f64mat4x4
 
typedef detail::tquat< f64, highp > highp_f64quat
 
typedef detail::tvec1< f64, highp > highp_f64vec1
 
typedef detail::tvec2< f64, highp > highp_f64vec2
 
typedef detail::tvec3< f64, highp > highp_f64vec3
 
typedef detail::tvec4< f64, highp > highp_f64vec4
 
typedef detail::float32 highp_float32
 
typedef detail::float32 highp_float32_t
 
typedef detail::float64 highp_float64
 
typedef detail::float64 highp_float64_t
 
typedef highp_fmat2x2 highp_fmat2
 
typedef detail::tmat2x2< f32,
-highp > 
highp_fmat2x2
 
typedef detail::tmat2x3< f32,
-highp > 
highp_fmat2x3
 
typedef detail::tmat2x4< f32,
-highp > 
highp_fmat2x4
 
typedef highp_fmat3x3 highp_fmat3
 
typedef detail::tmat3x2< f32,
-highp > 
highp_fmat3x2
 
typedef detail::tmat3x3< f32,
-highp > 
highp_fmat3x3
 
typedef detail::tmat3x4< f32,
-highp > 
highp_fmat3x4
 
typedef highp_fmat4x4 highp_fmat4
 
typedef detail::tmat4x2< f32,
-highp > 
highp_fmat4x2
 
typedef detail::tmat4x3< f32,
-highp > 
highp_fmat4x3
 
typedef detail::tmat4x4< f32,
-highp > 
highp_fmat4x4
 
typedef detail::tvec1< float,
-highp > 
highp_fvec1
 
typedef detail::tvec2< float,
-highp > 
highp_fvec2
 
typedef detail::tvec3< float,
-highp > 
highp_fvec3
 
typedef detail::tvec4< float,
-highp > 
highp_fvec4
 
typedef detail::int16 highp_i16
 
typedef detail::tvec1< i16, highp > highp_i16vec1
 
typedef detail::tvec2< i16, highp > highp_i16vec2
 
typedef detail::tvec3< i16, highp > highp_i16vec3
 
typedef detail::tvec4< i16, highp > highp_i16vec4
 
typedef detail::int32 highp_i32
 
typedef detail::tvec1< i32, highp > highp_i32vec1
 
typedef detail::tvec2< i32, highp > highp_i32vec2
 
typedef detail::tvec3< i32, highp > highp_i32vec3
 
typedef detail::tvec4< i32, highp > highp_i32vec4
 
typedef detail::int64 highp_i64
 
typedef detail::tvec1< i64, highp > highp_i64vec1
 
typedef detail::tvec2< i64, highp > highp_i64vec2
 
typedef detail::tvec3< i64, highp > highp_i64vec3
 
typedef detail::tvec4< i64, highp > highp_i64vec4
 
typedef detail::int8 highp_i8
 
typedef detail::tvec1< i8, highp > highp_i8vec1
 
typedef detail::tvec2< i8, highp > highp_i8vec2
 
typedef detail::tvec3< i8, highp > highp_i8vec3
 
typedef detail::tvec4< i8, highp > highp_i8vec4
 
typedef detail::int16 highp_int16
 
typedef detail::int16 highp_int16_t
 
typedef detail::int32 highp_int32
 
typedef detail::int32 highp_int32_t
 
typedef detail::int64 highp_int64
 
typedef detail::int64 highp_int64_t
 
typedef detail::int8 highp_int8
 
typedef detail::int8 highp_int8_t
 
typedef detail::uint16 highp_u16
 
typedef detail::tvec1< u16, highp > highp_u16vec1
 
typedef detail::tvec2< u16, highp > highp_u16vec2
 
typedef detail::tvec3< u16, highp > highp_u16vec3
 
typedef detail::tvec4< u16, highp > highp_u16vec4
 
typedef detail::uint32 highp_u32
 
typedef detail::tvec1< u32, highp > highp_u32vec1
 
typedef detail::tvec2< u32, highp > highp_u32vec2
 
typedef detail::tvec3< u32, highp > highp_u32vec3
 
typedef detail::tvec4< u32, highp > highp_u32vec4
 
typedef detail::uint64 highp_u64
 
typedef detail::tvec1< u64, highp > highp_u64vec1
 
typedef detail::tvec2< u64, highp > highp_u64vec2
 
typedef detail::tvec3< u64, highp > highp_u64vec3
 
typedef detail::tvec4< u64, highp > highp_u64vec4
 
typedef detail::uint8 highp_u8
 
typedef detail::tvec1< u8, highp > highp_u8vec1
 
typedef detail::tvec2< u8, highp > highp_u8vec2
 
typedef detail::tvec3< u8, highp > highp_u8vec3
 
typedef detail::tvec4< u8, highp > highp_u8vec4
 
typedef detail::uint16 highp_uint16
 
typedef detail::uint16 highp_uint16_t
 
typedef detail::uint32 highp_uint32
 
typedef detail::uint32 highp_uint32_t
 
typedef detail::uint64 highp_uint64
 
typedef detail::uint64 highp_uint64_t
 
typedef detail::uint8 highp_uint8
 
typedef detail::uint8 highp_uint8_t
 
typedef detail::tvec1< float,
-highp > 
highp_vec1
 
typedef detail::int16 i16
 
typedef highp_i16vec1 i16vec1
 
typedef highp_i16vec2 i16vec2
 
typedef highp_i16vec3 i16vec3
 
typedef highp_i16vec4 i16vec4
 
typedef detail::int32 i32
 
typedef highp_i32vec1 i32vec1
 
typedef highp_i32vec2 i32vec2
 
typedef highp_i32vec3 i32vec3
 
typedef highp_i32vec4 i32vec4
 
typedef detail::int64 i64
 
typedef highp_i64vec1 i64vec1
 
typedef highp_i64vec2 i64vec2
 
typedef highp_i64vec3 i64vec3
 
typedef highp_i64vec4 i64vec4
 
typedef detail::int8 i8
 
typedef highp_i8vec1 i8vec1
 
typedef highp_i8vec2 i8vec2
 
typedef highp_i8vec3 i8vec3
 
typedef highp_i8vec4 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 float32 lowp_f32
 
typedef lowp_f32mat2x2 lowp_f32mat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_f32mat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_f32mat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_f32mat2x4
 
typedef lowp_f32mat3x3 lowp_f32mat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_f32mat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_f32mat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_f32mat3x4
 
typedef lowp_f32mat4x4 lowp_f32mat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_f32mat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_f32mat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_f32mat4x4
 
typedef detail::tquat< f32, lowp > lowp_f32quat
 
typedef detail::tvec1< f32, lowp > lowp_f32vec1
 
typedef detail::tvec2< f32, lowp > lowp_f32vec2
 
typedef detail::tvec3< f32, lowp > lowp_f32vec3
 
typedef detail::tvec4< f32, lowp > lowp_f32vec4
 
typedef float64 lowp_f64
 
typedef lowp_f64mat2x2 lowp_f64mat2
 
typedef detail::tmat2x2< f64,
-lowp > 
lowp_f64mat2x2
 
typedef detail::tmat2x3< f64,
-lowp > 
lowp_f64mat2x3
 
typedef detail::tmat2x4< f64,
-lowp > 
lowp_f64mat2x4
 
typedef lowp_f64mat3x3 lowp_f64mat3
 
typedef detail::tmat3x2< f64,
-lowp > 
lowp_f64mat3x2
 
typedef detail::tmat3x3< f64,
-lowp > 
lowp_f64mat3x3
 
typedef detail::tmat3x4< f64,
-lowp > 
lowp_f64mat3x4
 
typedef lowp_f64mat4x4 lowp_f64mat4
 
typedef detail::tmat4x2< f64,
-lowp > 
lowp_f64mat4x2
 
typedef detail::tmat4x3< f64,
-lowp > 
lowp_f64mat4x3
 
typedef detail::tmat4x4< f64,
-lowp > 
lowp_f64mat4x4
 
typedef detail::tquat< f64, lowp > lowp_f64quat
 
typedef detail::tvec1< f64, lowp > lowp_f64vec1
 
typedef detail::tvec2< f64, lowp > lowp_f64vec2
 
typedef detail::tvec3< f64, lowp > lowp_f64vec3
 
typedef detail::tvec4< f64, lowp > lowp_f64vec4
 
typedef detail::float32 lowp_float32
 
typedef detail::float32 lowp_float32_t
 
typedef detail::float64 lowp_float64
 
typedef detail::float64 lowp_float64_t
 
typedef lowp_fmat2x2 lowp_fmat2
 
typedef detail::tmat2x2< f32,
-lowp > 
lowp_fmat2x2
 
typedef detail::tmat2x3< f32,
-lowp > 
lowp_fmat2x3
 
typedef detail::tmat2x4< f32,
-lowp > 
lowp_fmat2x4
 
typedef lowp_fmat3x3 lowp_fmat3
 
typedef detail::tmat3x2< f32,
-lowp > 
lowp_fmat3x2
 
typedef detail::tmat3x3< f32,
-lowp > 
lowp_fmat3x3
 
typedef detail::tmat3x4< f32,
-lowp > 
lowp_fmat3x4
 
typedef lowp_fmat4x4 lowp_fmat4
 
typedef detail::tmat4x2< f32,
-lowp > 
lowp_fmat4x2
 
typedef detail::tmat4x3< f32,
-lowp > 
lowp_fmat4x3
 
typedef detail::tmat4x4< f32,
-lowp > 
lowp_fmat4x4
 
typedef detail::tvec1< float,
-lowp > 
lowp_fvec1
 
typedef detail::tvec2< float,
-lowp > 
lowp_fvec2
 
typedef detail::tvec3< float,
-lowp > 
lowp_fvec3
 
typedef detail::tvec4< float,
-lowp > 
lowp_fvec4
 
typedef detail::int16 lowp_i16
 
typedef detail::tvec1< i16, lowp > lowp_i16vec1
 
typedef detail::tvec2< i16, lowp > lowp_i16vec2
 
typedef detail::tvec3< i16, lowp > lowp_i16vec3
 
typedef detail::tvec4< i16, lowp > lowp_i16vec4
 
typedef detail::int32 lowp_i32
 
typedef detail::tvec1< i32, lowp > lowp_i32vec1
 
typedef detail::tvec2< i32, lowp > lowp_i32vec2
 
typedef detail::tvec3< i32, lowp > lowp_i32vec3
 
typedef detail::tvec4< i32, lowp > lowp_i32vec4
 
typedef detail::int64 lowp_i64
 
typedef detail::tvec1< i64, lowp > lowp_i64vec1
 
typedef detail::tvec2< i64, lowp > lowp_i64vec2
 
typedef detail::tvec3< i64, lowp > lowp_i64vec3
 
typedef detail::tvec4< i64, lowp > lowp_i64vec4
 
typedef detail::int8 lowp_i8
 
typedef detail::tvec1< i8, lowp > lowp_i8vec1
 
typedef detail::tvec2< i8, lowp > lowp_i8vec2
 
typedef detail::tvec3< i8, lowp > lowp_i8vec3
 
typedef detail::tvec4< i8, lowp > lowp_i8vec4
 
typedef detail::int16 lowp_int16
 
typedef detail::int16 lowp_int16_t
 
typedef detail::int32 lowp_int32
 
typedef detail::int32 lowp_int32_t
 
typedef detail::int64 lowp_int64
 
typedef detail::int64 lowp_int64_t
 
typedef detail::int8 lowp_int8
 
typedef detail::int8 lowp_int8_t
 
typedef detail::uint16 lowp_u16
 
typedef detail::tvec1< u16, lowp > lowp_u16vec1
 
typedef detail::tvec2< u16, lowp > lowp_u16vec2
 
typedef detail::tvec3< u16, lowp > lowp_u16vec3
 
typedef detail::tvec4< u16, lowp > lowp_u16vec4
 
typedef detail::uint32 lowp_u32
 
typedef detail::tvec1< u32, lowp > lowp_u32vec1
 
typedef detail::tvec2< u32, lowp > lowp_u32vec2
 
typedef detail::tvec3< u32, lowp > lowp_u32vec3
 
typedef detail::tvec4< u32, lowp > lowp_u32vec4
 
typedef detail::uint64 lowp_u64
 
typedef detail::tvec1< u64, lowp > lowp_u64vec1
 
typedef detail::tvec2< u64, lowp > lowp_u64vec2
 
typedef detail::tvec3< u64, lowp > lowp_u64vec3
 
typedef detail::tvec4< u64, lowp > lowp_u64vec4
 
typedef detail::uint8 lowp_u8
 
typedef detail::tvec1< u8, lowp > lowp_u8vec1
 
typedef detail::tvec2< u8, lowp > lowp_u8vec2
 
typedef detail::tvec3< u8, lowp > lowp_u8vec3
 
typedef detail::tvec4< u8, lowp > lowp_u8vec4
 
typedef detail::uint16 lowp_uint16
 
typedef detail::uint16 lowp_uint16_t
 
typedef detail::uint32 lowp_uint32
 
typedef detail::uint32 lowp_uint32_t
 
typedef detail::uint64 lowp_uint64
 
typedef detail::uint64 lowp_uint64_t
 
typedef detail::uint8 lowp_uint8
 
typedef detail::uint8 lowp_uint8_t
 
typedef detail::tvec1< float,
-lowp > 
lowp_vec1
 
typedef float32 mediump_f32
 
typedef mediump_f32mat2x2 mediump_f32mat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_f32mat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_f32mat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_f32mat2x4
 
typedef mediump_f32mat3x3 mediump_f32mat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_f32mat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_f32mat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_f32mat3x4
 
typedef mediump_f32mat4x4 mediump_f32mat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_f32mat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_f32mat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_f32mat4x4
 
typedef detail::tquat< f32,
-mediump > 
mediump_f32quat
 
typedef detail::tvec1< f32,
-mediump > 
mediump_f32vec1
 
typedef detail::tvec2< f32,
-mediump > 
mediump_f32vec2
 
typedef detail::tvec3< f32,
-mediump > 
mediump_f32vec3
 
typedef detail::tvec4< f32,
-mediump > 
mediump_f32vec4
 
typedef float64 mediump_f64
 
typedef mediump_f64mat2x2 mediump_f64mat2
 
typedef detail::tmat2x2< f64,
-mediump > 
mediump_f64mat2x2
 
typedef detail::tmat2x3< f64,
-mediump > 
mediump_f64mat2x3
 
typedef detail::tmat2x4< f64,
-mediump > 
mediump_f64mat2x4
 
typedef mediump_f64mat3x3 mediump_f64mat3
 
typedef detail::tmat3x2< f64,
-mediump > 
mediump_f64mat3x2
 
typedef detail::tmat3x3< f64,
-mediump > 
mediump_f64mat3x3
 
typedef detail::tmat3x4< f64,
-mediump > 
mediump_f64mat3x4
 
typedef mediump_f64mat4x4 mediump_f64mat4
 
typedef detail::tmat4x2< f64,
-mediump > 
mediump_f64mat4x2
 
typedef detail::tmat4x3< f64,
-mediump > 
mediump_f64mat4x3
 
typedef detail::tmat4x4< f64,
-mediump > 
mediump_f64mat4x4
 
typedef detail::tquat< f64,
-mediump > 
mediump_f64quat
 
typedef detail::tvec1< f64,
-mediump > 
mediump_f64vec1
 
typedef detail::tvec2< f64,
-mediump > 
mediump_f64vec2
 
typedef detail::tvec3< f64,
-mediump > 
mediump_f64vec3
 
typedef detail::tvec4< f64,
-mediump > 
mediump_f64vec4
 
typedef detail::float32 mediump_float32
 
typedef detail::float32 mediump_float32_t
 
typedef detail::float64 mediump_float64
 
typedef detail::float64 mediump_float64_t
 
typedef mediump_fmat2x2 mediump_fmat2
 
typedef detail::tmat2x2< f32,
-mediump > 
mediump_fmat2x2
 
typedef detail::tmat2x3< f32,
-mediump > 
mediump_fmat2x3
 
typedef detail::tmat2x4< f32,
-mediump > 
mediump_fmat2x4
 
typedef mediump_fmat3x3 mediump_fmat3
 
typedef detail::tmat3x2< f32,
-mediump > 
mediump_fmat3x2
 
typedef detail::tmat3x3< f32,
-mediump > 
mediump_fmat3x3
 
typedef detail::tmat3x4< f32,
-mediump > 
mediump_fmat3x4
 
typedef mediump_fmat4x4 mediump_fmat4
 
typedef detail::tmat4x2< f32,
-mediump > 
mediump_fmat4x2
 
typedef detail::tmat4x3< f32,
-mediump > 
mediump_fmat4x3
 
typedef detail::tmat4x4< f32,
-mediump > 
mediump_fmat4x4
 
typedef detail::tvec1< float,
-mediump > 
mediump_fvec1
 
typedef detail::tvec2< float,
-mediump > 
mediump_fvec2
 
typedef detail::tvec3< float,
-mediump > 
mediump_fvec3
 
typedef detail::tvec4< float,
-mediump > 
mediump_fvec4
 
typedef detail::int16 mediump_i16
 
typedef detail::tvec1< i16,
-mediump > 
mediump_i16vec1
 
typedef detail::tvec2< i16,
-mediump > 
mediump_i16vec2
 
typedef detail::tvec3< i16,
-mediump > 
mediump_i16vec3
 
typedef detail::tvec4< i16,
-mediump > 
mediump_i16vec4
 
typedef detail::int32 mediump_i32
 
typedef detail::tvec1< i32,
-mediump > 
mediump_i32vec1
 
typedef detail::tvec2< i32,
-mediump > 
mediump_i32vec2
 
typedef detail::tvec3< i32,
-mediump > 
mediump_i32vec3
 
typedef detail::tvec4< i32,
-mediump > 
mediump_i32vec4
 
typedef detail::int64 mediump_i64
 
typedef detail::tvec1< i64,
-mediump > 
mediump_i64vec1
 
typedef detail::tvec2< i64,
-mediump > 
mediump_i64vec2
 
typedef detail::tvec3< i64,
-mediump > 
mediump_i64vec3
 
typedef detail::tvec4< i64,
-mediump > 
mediump_i64vec4
 
typedef detail::int8 mediump_i8
 
typedef detail::tvec1< i8,
-mediump > 
mediump_i8vec1
 
typedef detail::tvec2< i8,
-mediump > 
mediump_i8vec2
 
typedef detail::tvec3< i8,
-mediump > 
mediump_i8vec3
 
typedef detail::tvec4< i8,
-mediump > 
mediump_i8vec4
 
typedef detail::int16 mediump_int16
 
typedef detail::int16 mediump_int16_t
 
typedef detail::int32 mediump_int32
 
typedef detail::int32 mediump_int32_t
 
typedef detail::int64 mediump_int64
 
typedef detail::int64 mediump_int64_t
 
typedef detail::int8 mediump_int8
 
typedef detail::int8 mediump_int8_t
 
typedef detail::uint16 mediump_u16
 
typedef detail::tvec1< u16,
-mediump > 
mediump_u16vec1
 
typedef detail::tvec2< u16,
-mediump > 
mediump_u16vec2
 
typedef detail::tvec3< u16,
-mediump > 
mediump_u16vec3
 
typedef detail::tvec4< u16,
-mediump > 
mediump_u16vec4
 
typedef detail::uint32 mediump_u32
 
typedef detail::tvec1< u32,
-mediump > 
mediump_u32vec1
 
typedef detail::tvec2< u32,
-mediump > 
mediump_u32vec2
 
typedef detail::tvec3< u32,
-mediump > 
mediump_u32vec3
 
typedef detail::tvec4< u32,
-mediump > 
mediump_u32vec4
 
typedef detail::uint64 mediump_u64
 
typedef detail::tvec1< u64,
-mediump > 
mediump_u64vec1
 
typedef detail::tvec2< u64,
-mediump > 
mediump_u64vec2
 
typedef detail::tvec3< u64,
-mediump > 
mediump_u64vec3
 
typedef detail::tvec4< u64,
-mediump > 
mediump_u64vec4
 
typedef detail::uint8 mediump_u8
 
typedef detail::tvec1< u8,
-mediump > 
mediump_u8vec1
 
typedef detail::tvec2< u8,
-mediump > 
mediump_u8vec2
 
typedef detail::tvec3< u8,
-mediump > 
mediump_u8vec3
 
typedef detail::tvec4< u8,
-mediump > 
mediump_u8vec4
 
typedef detail::uint16 mediump_uint16
 
typedef detail::uint16 mediump_uint16_t
 
typedef detail::uint32 mediump_uint32
 
typedef detail::uint32 mediump_uint32_t
 
typedef detail::uint64 mediump_uint64
 
typedef detail::uint64 mediump_uint64_t
 
typedef detail::uint8 mediump_uint8
 
typedef detail::uint8 mediump_uint8_t
 
typedef detail::tvec1< float,
-mediump > 
mediump_vec1
 
typedef detail::uint16 u16
 
typedef highp_u16vec1 u16vec1
 
typedef highp_u16vec2 u16vec2
 
typedef highp_u16vec3 u16vec3
 
typedef highp_u16vec4 u16vec4
 
typedef detail::uint32 u32
 
typedef highp_u32vec1 u32vec1
 
typedef highp_u32vec2 u32vec2
 
typedef highp_u32vec3 u32vec3
 
typedef highp_u32vec4 u32vec4
 
typedef detail::uint64 u64
 
typedef highp_u64vec1 u64vec1
 
typedef highp_u64vec2 u64vec2
 
typedef highp_u64vec3 u64vec3
 
typedef highp_u64vec4 u64vec4
 
typedef detail::uint8 u8
 
typedef highp_u8vec1 u8vec1
 
typedef highp_u8vec2 u8vec2
 
typedef highp_u8vec3 u8vec3
 
typedef highp_u8vec4 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 float32 f32
-
- -

Default 32 bit single-precision floating-point scalar.

-

32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1523 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< f32, defaultp > f32mat2
-
- -

Default single-precision floating-point 2x2 matrix.

-

Single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2475 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< f32, defaultp > f32mat2x2
-
- -

Default single-precision floating-point 2x2 matrix.

-

Single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2439 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3< f32, defaultp > f32mat2x3
-
- -

Default single-precision floating-point 2x3 matrix.

-

Single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2443 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4< f32, defaultp > f32mat2x4
-
- -

Default single-precision floating-point 2x4 matrix.

-

Single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2447 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< f32, defaultp > f32mat3
-
- -

Default single-precision floating-point 3x3 matrix.

-

Single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2479 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2< f32, defaultp > f32mat3x2
-
- -

Default single-precision floating-point 3x2 matrix.

-

Single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2451 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< f32, defaultp > f32mat3x3
-
- -

Default single-precision floating-point 3x3 matrix.

-

Single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2455 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4< f32, defaultp > f32mat3x4
-
- -

Default single-precision floating-point 3x4 matrix.

-

Single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2459 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< f32, defaultp > f32mat4
-
- -

Default single-precision floating-point 4x4 matrix.

-

Single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2483 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2< f32, defaultp > f32mat4x2
-
- -

Default single-precision floating-point 4x2 matrix.

-

Single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2463 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3< f32, defaultp > f32mat4x3
-
- -

Default single-precision floating-point 4x3 matrix.

-

Single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2467 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< f32, defaultp > f32mat4x4
-
- -

Default single-precision floating-point 4x4 matrix.

-

Single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2471 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat< f32, defaultp > f32quat
-
- -

Default single-precision floating-point quaternion.

-

Single-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2487 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< f32, defaultp > f32vec1
-
- -

Default single-precision floating-point vector of 1 components.

-

Single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2423 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< f32, defaultp > f32vec2
-
- -

Default single-precision floating-point vector of 2 components.

-

Single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2427 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< f32, defaultp > f32vec3
-
- -

Default single-precision floating-point vector of 3 components.

-

Single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2431 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< f32, defaultp > f32vec4
-
- -

Default single-precision floating-point vector of 4 components.

-

Single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2435 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 f64
-
- -

Default 64 bit double-precision floating-point scalar.

-

64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1527 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< f64, defaultp > f64mat2
-
- -

Default double-precision floating-point 2x2 matrix.

-

Double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2582 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< f64, defaultp > f64mat2x2
-
- -

Default double-precision floating-point 2x2 matrix.

-

Double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2546 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3< f64, defaultp > f64mat2x3
-
- -

Default double-precision floating-point 2x3 matrix.

-

Double-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2550 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4< f64, defaultp > f64mat2x4
-
- -

Default double-precision floating-point 2x4 matrix.

-

Double-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2554 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< f64, defaultp > f64mat3
-
- -

Default double-precision floating-point 3x3 matrix.

-

Double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2586 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2< f64, defaultp > f64mat3x2
-
- -

Default double-precision floating-point 3x2 matrix.

-

Double-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2558 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< f64, defaultp > f64mat3x3
-
- -

Default double-precision floating-point 3x3 matrix.

-

Double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2562 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4< f64, defaultp > f64mat3x4
-
- -

Default double-precision floating-point 3x4 matrix.

-

Double-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2566 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< f64, defaultp > f64mat4
-
- -

Default double-precision floating-point 4x4 matrix.

-

Double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2590 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2< f64, defaultp > f64mat4x2
-
- -

Default double-precision floating-point 4x2 matrix.

-

Double-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2570 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3< f64, defaultp > f64mat4x3
-
- -

Default double-precision floating-point 4x3 matrix.

-

Double-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2574 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< f64, defaultp > f64mat4x4
-
- -

Default double-precision floating-point 4x4 matrix.

-

Double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2578 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat< f64, defaultp > f64quat
-
- -

Default double-precision floating-point quaternion.

-

Double-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2594 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< f64, defaultp > f64vec1
-
- -

Default double-precision floating-point vector of 1 components.

-

Double-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2530 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< f64, defaultp > f64vec2
-
- -

Default double-precision floating-point vector of 2 components.

-

Double-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2534 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< f64, defaultp > f64vec3
-
- -

Default double-precision floating-point vector of 3 components.

-

Double-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2538 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< f64, defaultp > f64vec4
-
- -

Default double-precision floating-point vector of 4 components.

-

Double-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2542 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 float32
-
- -

Default 32 bit single-precision floating-point scalar.

-

32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 81 of file type_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 float32_t
-
- -

Default 32 bit single-precision floating-point scalar.

-

32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1515 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 float64
-
- -

Default 64 bit double-precision floating-point scalar.

-

64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 82 of file type_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 float64_t
-
- -

Default 64 bit double-precision floating-point scalar.

-

64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1519 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< f32, defaultp > fmat2
-
- -

Default single-precision floating-point 2x2 matrix.

-

Single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2405 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2< f32, defaultp > fmat2x2
-
- -

Default single-precision floating-point 2x2 matrix.

-

Single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision
-
-GLM_GTC_type_precision Single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2369 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3< f32, defaultp > fmat2x3
-
- -

Default single-precision floating-point 2x3 matrix.

-

Single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2373 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4< f32, defaultp > fmat2x4
-
- -

Default single-precision floating-point 2x4 matrix.

-

Single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2377 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< f32, defaultp > fmat3
-
- -

Default single-precision floating-point 3x3 matrix.

-

Single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2409 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2< f32, defaultp > fmat3x2
-
- -

Default single-precision floating-point 3x2 matrix.

-

Single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2381 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3< f32, defaultp > fmat3x3
-
- -

Default single-precision floating-point 3x3 matrix.

-

Single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2385 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4< f32, defaultp > fmat3x4
-
- -

Default single-precision floating-point 3x4 matrix.

-

Single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2389 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< f32, defaultp > fmat4
-
- -

Default single-precision floating-point 4x4 matrix.

-

Single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2413 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2< f32, defaultp > fmat4x2
-
- -

Default single-precision floating-point 4x2 matrix.

-

Single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2393 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3< f32, defaultp > fmat4x3
-
- -

Default single-precision floating-point 4x3 matrix.

-

Single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2397 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4< f32, defaultp > fmat4x4
-
- -

Default single-precision floating-point 4x4 matrix.

-

Single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2401 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_fquat fquat
-
- -

Quaternion of default single-precision floating-point numbers.

-

Default single-precision floating-point quaternion.

-
See Also
GLM_GTC_quaternion
-
-GLM_GTC_type_precision
- -

Definition at line 90 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< float, defaultp > fvec1
-
- -

Default single-precision floating-point vector of 1 components.

-

Single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2353 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< float, defaultp > fvec2
-
- -

Default single-precision floating-point vector of 2 components.

-

Single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2357 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< float, defaultp > fvec3
-
- -

Default single-precision floating-point vector of 3 components.

-

Single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2361 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< float, defaultp > fvec4
-
- -

Default single-precision floating-point vector of 4 components.

-

Single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2365 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 highp_f32
-
- -

High 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1445 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f32mat2x2 highp_f32mat2
-
- -

High single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2068 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, highp> highp_f32mat2x2
-
- -

High single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2028 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, highp> highp_f32mat2x3
-
- -

High single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2032 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, highp> highp_f32mat2x4
-
- -

High single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2036 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f32mat3x3 highp_f32mat3
-
- -

High single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2072 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, highp> highp_f32mat3x2
-
- -

High single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2040 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, highp> highp_f32mat3x3
-
- -

High single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2044 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, highp> highp_f32mat3x4
-
- -

High single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2048 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f32mat4x4 highp_f32mat4
-
- -

High single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2076 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, highp> highp_f32mat4x2
-
- -

High single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2052 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, highp> highp_f32mat4x3
-
- -

High single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2056 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, highp> highp_f32mat4x4
-
- -

High single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2060 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f32, highp> highp_f32quat
-
- -

High single-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2271 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f32, highp> highp_f32vec1
-
- -

High single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1666 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f32, highp> highp_f32vec2
-
- -

High single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1670 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f32, highp> highp_f32vec3
-
- -

High single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1674 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f32, highp> highp_f32vec4
-
- -

High single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1678 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 highp_f64
-
- -

High 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1449 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f64mat2x2 highp_f64mat2
-
- -

High double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2240 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f64, highp> highp_f64mat2x2
-
- -

High double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2200 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f64, highp> highp_f64mat2x3
-
- -

High double-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2204 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f64, highp> highp_f64mat2x4
-
- -

High double-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2208 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f64mat3x3 highp_f64mat3
-
- -

High double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2244 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f64, highp> highp_f64mat3x2
-
- -

High double-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2212 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f64, highp> highp_f64mat3x3
-
- -

High double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2216 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f64, highp> highp_f64mat3x4
-
- -

High double-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2220 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f64mat4x4 highp_f64mat4
-
- -

High double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2248 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f64, highp> highp_f64mat4x2
-
- -

High double-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2224 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f64, highp> highp_f64mat4x3
-
- -

High double-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2228 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f64, highp> highp_f64mat4x4
-
- -

High double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2232 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f64, highp> highp_f64quat
-
- -

High double-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2275 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f64, highp> highp_f64vec1
-
- -

High double-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1715 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f64, highp> highp_f64vec2
-
- -

High double-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1719 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f64, highp> highp_f64vec3
-
- -

High double-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1723 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f64, highp> highp_f64vec4
-
- -

High double-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1727 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 highp_float32
-
- -

High 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1429 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 highp_float32_t
-
- -

High 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1437 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 highp_float64
-
- -

High 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1433 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 highp_float64_t
-
- -

High 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1441 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_fmat2x2 highp_fmat2
-
- -

High single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1894 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, highp> highp_fmat2x2
-
- -

High single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision High single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1854 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, highp> highp_fmat2x3
-
- -

High single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1858 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, highp> highp_fmat2x4
-
- -

High single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1862 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_fmat3x3 highp_fmat3
-
- -

High single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1898 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, highp> highp_fmat3x2
-
- -

High single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1866 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, highp> highp_fmat3x3
-
- -

High single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1870 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, highp> highp_fmat3x4
-
- -

High single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1874 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_fmat4x4 highp_fmat4
-
- -

High single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1902 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, highp> highp_fmat4x2
-
- -

High single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1878 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, highp> highp_fmat4x3
-
- -

High single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1882 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, highp> highp_fmat4x4
-
- -

High single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1886 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<float, highp> highp_fvec1
-
- -

High single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1617 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<float, highp> highp_fvec2
-
- -

High Single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1621 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<float, highp> highp_fvec3
-
- -

High Single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1625 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<float, highp> highp_fvec4
-
- -

High Single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1629 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 highp_i16
-
- -

High precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 264 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i16, highp> highp_i16vec1
-
- -

High precision 16 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 440 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i16, highp> highp_i16vec2
-
- -

High precision 16 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 444 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i16, highp> highp_i16vec3
-
- -

High precision 16 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 448 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i16, highp> highp_i16vec4
-
- -

High precision 16 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 452 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 highp_i32
-
- -

High precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 268 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i32, highp > highp_i32vec1
-
- -

High precision 32 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 520 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i32, highp > highp_i32vec2
-
- -

High precision 32 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 524 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i32, highp > highp_i32vec3
-
- -

High precision 32 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 528 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i32, highp > highp_i32vec4
-
- -

High precision 32 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 532 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 highp_i64
-
- -

High precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 272 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i64, highp> highp_i64vec1
-
- -

High precision 64 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 679 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i64, highp> highp_i64vec2
-
- -

High precision 64 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 683 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i64, highp> highp_i64vec3
-
- -

High precision 64 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 687 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i64, highp> highp_i64vec4
-
- -

High precision 64 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 691 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 highp_i8
-
- -

High precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 260 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i8, highp> highp_i8vec1
-
- -

High precision 8 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 361 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i8, highp> highp_i8vec2
-
- -

High precision 8 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 365 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i8, highp> highp_i8vec3
-
- -

High precision 8 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 369 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i8, highp> highp_i8vec4
-
- -

High precision 8 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 373 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 highp_int16
-
- -

High precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 232 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 highp_int16_t
-
- -

High precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 248 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 highp_int32
-
- -

High precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 236 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 highp_int32_t
-
- -

32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 252 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 highp_int64
-
- -

High precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 240 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 highp_int64_t
-
- -

High precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 256 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 highp_int8
-
- -

High precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 228 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 highp_int8_t
-
- -

High precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 244 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 highp_u16
-
- -

Medium precision 16 bit unsigned integer type.

-

High precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 865 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u16, highp> highp_u16vec1
-
- -

High precision 16 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1043 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u16, highp> highp_u16vec2
-
- -

High precision 16 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1047 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u16, highp> highp_u16vec3
-
- -

High precision 16 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1051 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u16, highp> highp_u16vec4
-
- -

High precision 16 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1055 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 highp_u32
-
- -

Medium precision 32 bit unsigned integer type.

-

High precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 869 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u32, highp > highp_u32vec1
-
- -

High precision 32 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1123 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u32, highp > highp_u32vec2
-
- -

High precision 32 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1127 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u32, highp > highp_u32vec3
-
- -

High precision 32 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1131 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u32, highp > highp_u32vec4
-
- -

High precision 32 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1135 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 highp_u64
-
- -

Medium precision 64 bit unsigned integer type.

-

High precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 873 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u64, highp> highp_u64vec1
-
- -

High precision 64 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1282 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u64, highp> highp_u64vec2
-
- -

High precision 64 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1286 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u64, highp> highp_u64vec3
-
- -

High precision 64 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1290 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u64, highp> highp_u64vec4
-
- -

High precision 64 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1294 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 highp_u8
-
- -

Medium precision 8 bit unsigned integer type.

-

High precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 861 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u8, highp> highp_u8vec1
-
- -

High precision 8 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 964 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u8, highp> highp_u8vec2
-
- -

High precision 8 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 968 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u8, highp> highp_u8vec3
-
- -

High precision 8 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 972 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u8, highp> highp_u8vec4
-
- -

High precision 8 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 976 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 highp_uint16
-
- -

Medium precision 16 bit unsigned integer type.

-

High precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 833 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 highp_uint16_t
-
- -

Medium precision 16 bit unsigned integer type.

-

High precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 849 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 highp_uint32
-
- -

Medium precision 32 bit unsigned integer type.

-

High precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 837 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 highp_uint32_t
-
- -

Medium precision 32 bit unsigned integer type.

-

High precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 853 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 highp_uint64
-
- -

Medium precision 64 bit unsigned integer type.

-

High precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 841 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 highp_uint64_t
-
- -

Medium precision 64 bit unsigned integer type.

-

High precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 857 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 highp_uint8
-
- -

Medium precision 8 bit unsigned integer type.

-

High precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 829 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 highp_uint8_t
-
- -

Medium precision 8 bit unsigned integer type.

-

High precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 845 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_vec1_t highp_vec1
-
- -

High single-precision floating-point vector of 1 component.

-

1 component vector of high precision floating-point numbers.

-
See Also
GLM_GTC_type_precision
-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 1601 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 i16
-
- -

16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 313 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i16, defaultp > i16vec1
-
- -

Default precision 16 bit signed integer scalar type.

-

16 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 468 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i16, defaultp > i16vec2
-
- -

Default precision 16 bit signed integer vector of 2 components type.

-

16 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 472 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i16, defaultp > i16vec3
-
- -

Default precision 16 bit signed integer vector of 3 components type.

-

16 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 476 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i16, defaultp > i16vec4
-
- -

Default precision 16 bit signed integer vector of 4 components type.

-

16 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 480 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 i32
-
- -

32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 317 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i32, defaultp > i32vec1
-
- -

Default precision 32 bit signed integer scalar type.

-

32 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 547 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i32, defaultp > i32vec2
-
- -

Default precision 32 bit signed integer vector of 2 components type.

-

32 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 551 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i32, defaultp > i32vec3
-
- -

Default precision 32 bit signed integer vector of 3 components type.

-

32 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 555 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i32, defaultp > i32vec4
-
- -

Default precision 32 bit signed integer vector of 4 components type.

-

32 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 559 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 i64
-
- -

64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 321 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i64, defaultp > i64vec1
-
- -

Default precision 64 bit signed integer scalar type.

-

64 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 706 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i64, defaultp > i64vec2
-
- -

Default precision 64 bit signed integer vector of 2 components type.

-

64 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 710 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i64, defaultp > i64vec3
-
- -

Default precision 64 bit signed integer vector of 3 components type.

-

64 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 714 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i64, defaultp > i64vec4
-
- -

Default precision 64 bit signed integer vector of 4 components type.

-

64 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 718 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 i8
-
- -

8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 309 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i8, defaultp > i8vec1
-
- -

Default precision 8 bit signed integer scalar type.

-

8 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 388 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i8, defaultp > i8vec2
-
- -

Default precision 8 bit signed integer vector of 2 components type.

-

8 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 392 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i8, defaultp > i8vec3
-
- -

Default precision 8 bit signed integer vector of 3 components type.

-

8 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 396 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i8, defaultp > i8vec4
-
- -

Default precision 8 bit signed integer vector of 4 components type.

-

8 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 400 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 int16
-
- -

16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 90 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 int16_t
-
- -

16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 297 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 int32
-
- -

32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 91 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 int32_t
-
- -

32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 301 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 int64
-
- -

64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 92 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 int64_t
-
- -

64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 305 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 int8
-
- -

8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 89 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 int8_t
-
- -

8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 293 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 lowp_f32
-
- -

Low 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1346 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f32mat2x2 lowp_f32mat2
-
- -

Low single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1951 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, lowp> lowp_f32mat2x2
-
- -

Low single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1911 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, lowp> lowp_f32mat2x3
-
- -

Low single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1915 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, lowp> lowp_f32mat2x4
-
- -

Low single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1919 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f32mat3x3 lowp_f32mat3
-
- -

Low single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1955 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, lowp> lowp_f32mat3x2
-
- -

Low single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1923 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, lowp> lowp_f32mat3x3
-
- -

Low single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1927 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, lowp> lowp_f32mat3x4
-
- -

Low single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1931 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f32mat4x4 lowp_f32mat4
-
- -

Low single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1959 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, lowp> lowp_f32mat4x2
-
- -

Low single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1935 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, lowp> lowp_f32mat4x3
-
- -

Low single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1939 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, lowp> lowp_f32mat4x4
-
- -

Low single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1943 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f32, lowp> lowp_f32quat
-
- -

Low single-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2255 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f32, lowp> lowp_f32vec1
-
- -

Low single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1634 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f32, lowp> lowp_f32vec2
-
- -

Low single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1638 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f32, lowp> lowp_f32vec3
-
- -

Low single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1642 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f32, lowp> lowp_f32vec4
-
- -

Low single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1646 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 lowp_f64
-
- -

Low 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1350 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f64mat2x2 lowp_f64mat2
-
- -

Low double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2126 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f64, lowp> lowp_f64mat2x2
-
- -

Low double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2086 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f64, lowp> lowp_f64mat2x3
-
- -

Low double-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2090 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f64, lowp> lowp_f64mat2x4
-
- -

Low double-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2094 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f64mat3x3 lowp_f64mat3
-
- -

Low double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2130 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f64, lowp> lowp_f64mat3x2
-
- -

Low double-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2098 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f64, lowp> lowp_f64mat3x3
-
- -

Low double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2102 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f64, lowp> lowp_f64mat3x4
-
- -

Low double-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2106 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f64mat4x4 lowp_f64mat4
-
- -

Low double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2134 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f64, lowp> lowp_f64mat4x2
-
- -

Low double-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2110 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f64, lowp> lowp_f64mat4x3
-
- -

Low double-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2114 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f64, lowp> lowp_f64mat4x4
-
- -

Low double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2118 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f64, lowp> lowp_f64quat
-
- -

Low double-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2259 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f64, lowp> lowp_f64vec1
-
- -

Low double-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1683 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f64, lowp> lowp_f64vec2
-
- -

Low double-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1687 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f64, lowp> lowp_f64vec3
-
- -

Low double-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1691 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f64, lowp> lowp_f64vec4
-
- -

Low double-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1695 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 lowp_float32
-
- -

Low 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1330 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 lowp_float32_t
-
- -

Low 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1338 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 lowp_float64
-
- -

Low 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1334 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 lowp_float64_t
-
- -

Low 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1342 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_fmat2x2 lowp_fmat2
-
- -

Low single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1779 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, lowp> lowp_fmat2x2
-
- -

Low single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1739 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, lowp> lowp_fmat2x3
-
- -

Low single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1743 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, lowp> lowp_fmat2x4
-
- -

Low single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1747 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_fmat3x3 lowp_fmat3
-
- -

Low single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1783 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, lowp> lowp_fmat3x2
-
- -

Low single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1751 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, lowp> lowp_fmat3x3
-
- -

Low single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1755 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, lowp> lowp_fmat3x4
-
- -

Low single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1759 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_fmat4x4 lowp_fmat4
-
- -

Low single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1787 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, lowp> lowp_fmat4x2
-
- -

Low single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1763 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, lowp> lowp_fmat4x3
-
- -

Low single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1767 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, lowp> lowp_fmat4x4
-
- -

Low single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1771 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<float, lowp> lowp_fvec1
-
- -

Low single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1549 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<float, lowp> lowp_fvec2
-
- -

Low single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1553 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<float, lowp> lowp_fvec3
-
- -

Low single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1557 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<float, lowp> lowp_fvec4
-
- -

Low single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1561 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 lowp_i16
-
- -

Low precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 168 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i16, lowp> lowp_i16vec1
-
- -

Low precision 16 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 406 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i16, lowp> lowp_i16vec2
-
- -

Low precision 16 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 410 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i16, lowp> lowp_i16vec3
-
- -

Low precision 16 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 414 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i16, lowp> lowp_i16vec4
-
- -

Low precision 16 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 418 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 lowp_i32
-
- -

Low precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 172 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i32, lowp > lowp_i32vec1
-
- -

Low precision 32 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 486 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i32, lowp > lowp_i32vec2
-
- -

Low precision 32 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 490 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i32, lowp > lowp_i32vec3
-
- -

Low precision 32 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 494 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i32, lowp > lowp_i32vec4
-
- -

Low precision 32 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 498 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 lowp_i64
-
- -

Low precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 176 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i64, lowp> lowp_i64vec1
-
- -

Low precision 64 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 645 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i64, lowp> lowp_i64vec2
-
- -

Low precision 64 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 649 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i64, lowp> lowp_i64vec3
-
- -

Low precision 64 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 653 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i64, lowp> lowp_i64vec4
-
- -

Low precision 64 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 657 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 lowp_i8
-
- -

Low precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 164 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i8, lowp> lowp_i8vec1
-
- -

Low precision 8 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 327 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i8, lowp> lowp_i8vec2
-
- -

Low precision 8 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 331 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i8, lowp> lowp_i8vec3
-
- -

Low precision 8 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 335 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i8, lowp> lowp_i8vec4
-
- -

Low precision 8 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 339 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 lowp_int16
-
- -

Low precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 136 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 lowp_int16_t
-
- -

Low precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 152 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 lowp_int32
-
- -

Low precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 140 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 lowp_int32_t
-
- -

Low precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 156 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 lowp_int64
-
- -

Low precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 144 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 lowp_int64_t
-
- -

Low precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 160 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 lowp_int8
-
- -

Low precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 132 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 lowp_int8_t
-
- -

Low precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 148 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 lowp_u16
-
- -

Low precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 765 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u16, lowp> lowp_u16vec1
-
- -

Low precision 16 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1009 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u16, lowp> lowp_u16vec2
-
- -

Low precision 16 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1013 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u16, lowp> lowp_u16vec3
-
- -

Low precision 16 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1017 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u16, lowp> lowp_u16vec4
-
- -

Low precision 16 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1021 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 lowp_u32
-
- -

Low precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 769 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u32, lowp > lowp_u32vec1
-
- -

Low precision 32 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1089 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u32, lowp > lowp_u32vec2
-
- -

Low precision 32 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1093 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u32, lowp > lowp_u32vec3
-
- -

Low precision 32 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1097 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u32, lowp > lowp_u32vec4
-
- -

Low precision 32 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1101 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 lowp_u64
-
- -

Low precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 773 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u64, lowp> lowp_u64vec1
-
- -

Low precision 64 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1248 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u64, lowp> lowp_u64vec2
-
- -

Low precision 64 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1252 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u64, lowp> lowp_u64vec3
-
- -

Low precision 64 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1256 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u64, lowp> lowp_u64vec4
-
- -

Low precision 64 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1260 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 lowp_u8
-
- -

Low precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 761 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u8, lowp> lowp_u8vec1
-
- -

Low precision 8 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 930 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u8, lowp> lowp_u8vec2
-
- -

Low precision 8 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 934 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u8, lowp> lowp_u8vec3
-
- -

Low precision 8 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 938 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u8, lowp> lowp_u8vec4
-
- -

Low precision 8 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 942 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 lowp_uint16
-
- -

Low precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 731 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 lowp_uint16_t
-
- -

Low precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 748 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 lowp_uint32
-
- -

Low precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 735 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 lowp_uint32_t
-
- -

Low precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 752 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 lowp_uint64
-
- -

Low precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 739 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 lowp_uint64_t
-
- -

Low precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 756 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 lowp_uint8
-
- -

Low precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 727 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 lowp_uint8_t
-
- -

Low precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 744 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_vec1_t lowp_vec1
-
- -

Low single-precision floating-point vector of 1 component.

-

1 component vector of low precision floating-point numbers.

-
See Also
GLM_GTC_type_precision
-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 1533 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 mediump_f32
-
- -

Medium 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1420 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f32mat2x2 mediump_f32mat2
-
- -

Medium single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Medium single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2009 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, mediump> mediump_f32mat2x2
-
- -

High single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Low single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1969 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, mediump> mediump_f32mat2x3
-
- -

Medium single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1973 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, mediump> mediump_f32mat2x4
-
- -

Medium single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1977 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f32mat3x3 mediump_f32mat3
-
- -

Medium single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2013 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, mediump> mediump_f32mat3x2
-
- -

Medium single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1981 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, mediump> mediump_f32mat3x3
-
- -

Medium single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1985 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, mediump> mediump_f32mat3x4
-
- -

Medium single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1989 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f32mat4x4 mediump_f32mat4
-
- -

Medium single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2017 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, mediump> mediump_f32mat4x2
-
- -

Medium single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1993 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, mediump> mediump_f32mat4x3
-
- -

Medium single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1997 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, mediump> mediump_f32mat4x4
-
- -

Medium single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2001 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f32, mediump> mediump_f32quat
-
- -

Medium single-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2263 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f32, mediump> mediump_f32vec1
-
- -

Medium single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1650 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f32, mediump> mediump_f32vec2
-
- -

Medium single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1654 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f32, mediump> mediump_f32vec3
-
- -

Medium single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1658 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f32, mediump> mediump_f32vec4
-
- -

Medium single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1662 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 mediump_f64
-
- -

Medium 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1424 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f64mat2x2 mediump_f64mat2
-
- -

Medium double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Medium double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2184 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f64, mediump> mediump_f64mat2x2
-
- -

Medium double-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Medium double-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 2144 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f64, mediump> mediump_f64mat2x3
-
- -

Medium double-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2148 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f64, mediump> mediump_f64mat2x4
-
- -

Medium double-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2152 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f64mat3x3 mediump_f64mat3
-
- -

Medium double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2188 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f64, mediump> mediump_f64mat3x2
-
- -

Medium double-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2156 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f64, mediump> mediump_f64mat3x3
-
- -

Medium double-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2160 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f64, mediump> mediump_f64mat3x4
-
- -

Medium double-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2164 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f64mat4x4 mediump_f64mat4
-
- -

Medium double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2192 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f64, mediump> mediump_f64mat4x2
-
- -

Medium double-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2168 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f64, mediump> mediump_f64mat4x3
-
- -

Medium double-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2172 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f64, mediump> mediump_f64mat4x4
-
- -

Medium double-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2176 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<f64, mediump> mediump_f64quat
-
- -

Medium double-precision floating-point quaternion.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 2267 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<f64, mediump> mediump_f64vec1
-
- -

Medium double-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1699 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<f64, mediump> mediump_f64vec2
-
- -

Medium double-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1703 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<f64, mediump> mediump_f64vec3
-
- -

Medium double-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1707 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<f64, mediump> mediump_f64vec4
-
- -

Medium double-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1711 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 mediump_float32
-
- -

Medium 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1404 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float32 mediump_float32_t
-
- -

Medium 32 bit single-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1412 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 mediump_float64
-
- -

Medium 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1408 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::float64 mediump_float64_t
-
- -

Medium 64 bit double-precision floating-point scalar.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1416 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_fmat2x2 mediump_fmat2
-
- -

Medium single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Medium single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1836 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<f32, mediump> mediump_fmat2x2
-
- -

Medium single-precision floating-point 1x1 matrix.

-
See Also
GLM_GTC_type_precision Medium single-precision floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 1796 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<f32, mediump> mediump_fmat2x3
-
- -

Medium single-precision floating-point 2x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1800 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<f32, mediump> mediump_fmat2x4
-
- -

Medium single-precision floating-point 2x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1804 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_fmat3x3 mediump_fmat3
-
- -

Medium single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1840 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<f32, mediump> mediump_fmat3x2
-
- -

Medium single-precision floating-point 3x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1808 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<f32, mediump> mediump_fmat3x3
-
- -

Medium single-precision floating-point 3x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1812 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<f32, mediump> mediump_fmat3x4
-
- -

Medium single-precision floating-point 3x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1816 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_fmat4x4 mediump_fmat4
-
- -

Medium single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1844 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<f32, mediump> mediump_fmat4x2
-
- -

Medium single-precision floating-point 4x2 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1820 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<f32, mediump> mediump_fmat4x3
-
- -

Medium single-precision floating-point 4x3 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1824 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<f32, mediump> mediump_fmat4x4
-
- -

Medium single-precision floating-point 4x4 matrix.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1828 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<float, mediump> mediump_fvec1
-
- -

Medium single-precision floating-point vector of 1 component.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1583 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<float, mediump> mediump_fvec2
-
- -

Medium Single-precision floating-point vector of 2 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1587 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<float, mediump> mediump_fvec3
-
- -

Medium Single-precision floating-point vector of 3 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1591 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<float, mediump> mediump_fvec4
-
- -

Medium Single-precision floating-point vector of 4 components.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1595 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 mediump_i16
-
- -

Medium precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 216 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i16, mediump> mediump_i16vec1
-
- -

Medium precision 16 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 423 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i16, mediump> mediump_i16vec2
-
- -

Medium precision 16 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 427 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i16, mediump> mediump_i16vec3
-
- -

Medium precision 16 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 431 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i16, mediump> mediump_i16vec4
-
- -

Medium precision 16 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 435 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 mediump_i32
-
- -

Medium precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 220 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< i32, mediump > mediump_i32vec1
-
- -

Medium precision 32 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 503 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< i32, mediump > mediump_i32vec2
-
- -

Medium precision 32 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 507 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< i32, mediump > mediump_i32vec3
-
- -

Medium precision 32 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 511 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< i32, mediump > mediump_i32vec4
-
- -

Medium precision 32 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 515 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 mediump_i64
-
- -

Medium precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 224 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i64, mediump> mediump_i64vec1
-
- -

Medium precision 64 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 662 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i64, mediump> mediump_i64vec2
-
- -

Medium precision 64 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 666 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i64, mediump> mediump_i64vec3
-
- -

Medium precision 64 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 670 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i64, mediump> mediump_i64vec4
-
- -

Medium precision 64 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 674 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 mediump_i8
-
- -

Medium precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 212 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<i8, mediump> mediump_i8vec1
-
- -

Medium precision 8 bit signed integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 344 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<i8, mediump> mediump_i8vec2
-
- -

Medium precision 8 bit signed integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 348 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<i8, mediump> mediump_i8vec3
-
- -

Medium precision 8 bit signed integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 352 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<i8, mediump> mediump_i8vec4
-
- -

Medium precision 8 bit signed integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 356 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 mediump_int16
-
- -

Medium precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 184 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 mediump_int16_t
-
- -

Medium precision 16 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 200 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 mediump_int32
-
- -

Medium precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 188 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 mediump_int32_t
-
- -

Medium precision 32 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 204 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 mediump_int64
-
- -

Medium precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 192 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 mediump_int64_t
-
- -

Medium precision 64 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 208 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 mediump_int8
-
- -

Medium precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 180 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 mediump_int8_t
-
- -

Medium precision 8 bit signed integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 196 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 mediump_u16
-
- -

Medium precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 815 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u16, mediump> mediump_u16vec1
-
- -

Medium precision 16 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1026 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u16, mediump> mediump_u16vec2
-
- -

Medium precision 16 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1030 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u16, mediump> mediump_u16vec3
-
- -

Medium precision 16 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1034 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u16, mediump> mediump_u16vec4
-
- -

Medium precision 16 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1038 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 mediump_u32
-
- -

Medium precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 819 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u32, mediump > mediump_u32vec1
-
- -

Medium precision 32 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1106 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u32, mediump > mediump_u32vec2
-
- -

Medium precision 32 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1110 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u32, mediump > mediump_u32vec3
-
- -

Medium precision 32 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1114 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u32, mediump > mediump_u32vec4
-
- -

Medium precision 32 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1118 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 mediump_u64
-
- -

Medium precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 823 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u64, mediump> mediump_u64vec1
-
- -

Medium precision 64 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1265 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u64, mediump> mediump_u64vec2
-
- -

Medium precision 64 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1269 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u64, mediump> mediump_u64vec3
-
- -

Medium precision 64 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1273 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u64, mediump> mediump_u64vec4
-
- -

Medium precision 64 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1277 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 mediump_u8
-
- -

Medium precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 811 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1<u8, mediump> mediump_u8vec1
-
- -

Medium precision 8 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 947 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<u8, mediump> mediump_u8vec2
-
- -

Medium precision 8 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 951 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<u8, mediump> mediump_u8vec3
-
- -

Medium precision 8 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 955 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<u8, mediump> mediump_u8vec4
-
- -

Medium precision 8 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 959 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 mediump_uint16
-
- -

Medium precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 783 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 mediump_uint16_t
-
- -

Medium precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 799 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 mediump_uint32
-
- -

Medium precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 787 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 mediump_uint32_t
-
- -

Medium precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 803 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 mediump_uint64
-
- -

Medium precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 791 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 mediump_uint64_t
-
- -

Medium precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 807 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 mediump_uint8
-
- -

Medium precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 779 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 mediump_uint8_t
-
- -

Medium precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 795 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_vec1_t mediump_vec1
-
- -

Medium single-precision floating-point vector of 1 component.

-

1 component vector of medium precision floating-point numbers.

-
See Also
GLM_GTC_type_precision
-

There is no guarantee on the actual precision.

-
See Also
GLM_GTX_vec1 extension.
- -

Definition at line 1567 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 u16
-
- -

16 bit unsigned integer type.

-

Default precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 915 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u16, defaultp > u16vec1
-
- -

Default precision 16 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1071 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u16, defaultp > u16vec2
-
- -

Default precision 16 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1075 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u16, defaultp > u16vec3
-
- -

Default precision 16 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1079 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u16, defaultp > u16vec4
-
- -

Default precision 16 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1083 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 u32
-
- -

32 bit unsigned integer type.

-

Default precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 919 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u32, defaultp > u32vec1
-
- -

Default precision 32 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1150 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u32, defaultp > u32vec2
-
- -

Default precision 32 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1154 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u32, defaultp > u32vec3
-
- -

Default precision 32 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1158 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u32, defaultp > u32vec4
-
- -

Default precision 32 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1162 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 u64
-
- -

64 bit unsigned integer type.

-

Default precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 923 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u64, defaultp > u64vec1
-
- -

Default precision 64 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1309 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u64, defaultp > u64vec2
-
- -

Default precision 64 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1313 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u64, defaultp > u64vec3
-
- -

Default precision 64 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1317 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u64, defaultp > u64vec4
-
- -

Default precision 64 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1321 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 u8
-
- -

8 bit unsigned integer type.

-

Default precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 911 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec1< u8, defaultp > u8vec1
-
- -

Default precision 8 bit unsigned integer scalar type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 991 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2< u8, defaultp > u8vec2
-
- -

Default precision 8 bit unsigned integer vector of 2 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 995 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3< u8, defaultp > u8vec3
-
- -

Default precision 8 bit unsigned integer vector of 3 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 999 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4< u8, defaultp > u8vec4
-
- -

Default precision 8 bit unsigned integer vector of 4 components type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 1003 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 uint16
-
- -

16 bit unsigned integer type.

-

Default precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 95 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 uint16_t
-
- -

16 bit unsigned integer type.

-

Default precision 16 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 899 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 uint32
-
- -

32 bit unsigned integer type.

-

Default precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 96 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 uint32_t
-
- -

32 bit unsigned integer type.

-

Default precision 32 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 903 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 uint64
-
- -

64 bit unsigned integer type.

-

Default precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 97 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 uint64_t
-
- -

64 bit unsigned integer type.

-

Default precision 64 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 907 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 uint8
-
- -

8 bit unsigned integer type.

-

Default precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 94 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 uint8_t
-
- -

8 bit unsigned integer type.

-

Default precision 8 bit unsigned integer type.

-
See Also
GLM_GTC_type_precision
- -

Definition at line 895 of file fwd.hpp.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00183.html b/3party/glm/doc/api/a00183.html deleted file mode 100755 index 1ab2a87d75..0000000000 --- a/3party/glm/doc/api/a00183.html +++ /dev/null @@ -1,466 +0,0 @@ - - - - - - -GLM: GLM_GTC_type_ptr - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTC_type_ptr
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL detail::tmat2x2
-< T, defaultp > 
make_mat2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x2
-< T, defaultp > 
make_mat2x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x3
-< T, defaultp > 
make_mat2x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat2x4
-< T, defaultp > 
make_mat2x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x3
-< T, defaultp > 
make_mat3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x2
-< T, defaultp > 
make_mat3x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x3
-< T, defaultp > 
make_mat3x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat3x4
-< T, defaultp > 
make_mat3x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
make_mat4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x2
-< T, defaultp > 
make_mat4x2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x3
-< T, defaultp > 
make_mat4x3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tmat4x4
-< T, defaultp > 
make_mat4x4 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tquat< T,
-defaultp > 
make_quat (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec2< T,
-defaultp > 
make_vec2 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec3< T,
-defaultp > 
make_vec3 (T const *const ptr)
 
template<typename T >
GLM_FUNC_DECL detail::tvec4< T,
-defaultp > 
make_vec4 (T const *const ptr)
 
template<typename genType >
GLM_FUNC_DECL
-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

- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat2x2<T, defaultp> glm::make_mat2 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat2x2<T, defaultp> glm::make_mat2x2 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat2x3<T, defaultp> glm::make_mat2x3 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat2x4<T, defaultp> glm::make_mat2x4 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat3x3<T, defaultp> glm::make_mat3 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat3x2<T, defaultp> glm::make_mat3x2 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat3x3<T, defaultp> glm::make_mat3x3 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat3x4<T, defaultp> glm::make_mat3x4 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::make_mat4 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat4x2<T, defaultp> glm::make_mat4x2 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat4x3<T, defaultp> glm::make_mat4x3 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tmat4x4<T, defaultp> glm::make_mat4x4 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tquat<T, defaultp> glm::make_quat (T const *const ptr)
-
- -

Build a quaternion from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec2<T, defaultp> glm::make_vec2 (T const *const ptr)
-
- -

Build a vector from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec3<T, defaultp> glm::make_vec3 (T const *const ptr)
-
- -

Build a vector from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL detail::tvec4<T, defaultp> glm::make_vec4 (T const *const ptr)
-
- -

Build a vector from a pointer.

-
See Also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00184.html b/3party/glm/doc/api/a00184.html deleted file mode 100755 index 471a38d5d9..0000000000 --- a/3party/glm/doc/api/a00184.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - -GLM: GLM_GTC_ulp - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
- -
- - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL uint float_distance (T const &x, T const &y)
 
template<typename T , template< typename > class vecType>
GLM_FUNC_DECL vecType< uint > float_distance (vecType< T > const &x, vecType< T > const &y)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType const &x, uint const &Distance)
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType const &x)
 
template<typename genType >
GLM_FUNC_DECL 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/gtc/ulp.hpp> need to be included to use these features.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint glm::float_distance (T const & x,
T const & y 
)
-
- -

Return the distance in the number of ULP between 2 scalars.

-
See Also
GLM_GTC_ulp
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vecType<uint> glm::float_distance (vecType< T > const & x,
vecType< T > const & y 
)
-
- -

Return the distance in the number of ULP between 2 vectors.

-
See Also
GLM_GTC_ulp
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::next_float (genType const & x)
-
- -

Return the next ULP value(s) after the input value(s).

-
See Also
GLM_GTC_ulp
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::next_float (genType const & x,
uint const & Distance 
)
-
- -

Return the value(s) ULP distance after the input value(s).

-
See Also
GLM_GTC_ulp
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::prev_float (genType const & x)
-
- -

Return the previous ULP value(s) before the input value(s).

-
See Also
GLM_GTC_ulp
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::prev_float (genType const & x,
uint const & Distance 
)
-
- -

Return the value(s) ULP distance before the input value(s).

-
See Also
GLM_GTC_ulp
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00185.html b/3party/glm/doc/api/a00185.html deleted file mode 100755 index 4f4ff986eb..0000000000 --- a/3party/glm/doc/api/a00185.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - -GLM: GLM_GTX_associated_min_max - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00186.html b/3party/glm/doc/api/a00186.html deleted file mode 100755 index c9c7595ae3..0000000000 --- a/3party/glm/doc/api/a00186.html +++ /dev/null @@ -1,954 +0,0 @@ - - - - - - -GLM: GLM_GTX_bit - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 
template<typename genType >
GLM_DEPRECATED GLM_FUNC_DECL
-genType 
bitRevert (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateLeft (genType const &In, std::size_t Shift)
 
template<typename genType >
GLM_FUNC_DECL genType bitRotateRight (genType const &In, std::size_t Shift)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithOne (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename genIUType >
GLM_FUNC_DECL genIUType fillBitfieldWithZero (genIUType const &Value, int const &FromBit, int const &ToBit)
 
template<typename genType >
GLM_FUNC_DECL genType highestBitValue (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL bool isPowerOfTwo (genType const &value)
 
template<typename genIType >
GLM_FUNC_DECL genIType mask (genIType const &count)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoAbove (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL genType powerOfTwoBelow (genType const &value)
 
template<typename genType >
GLM_FUNC_DECL 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

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int16 glm::bitfieldInterleave (int8 x,
int8 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint16 glm::bitfieldInterleave (uint8 x,
uint8 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int16 x,
int16 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint16 x,
uint16 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int32 x,
int32 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint32 x,
uint32 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int8 x,
int8 y,
int8 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint8 x,
uint8 y,
uint8 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int16 x,
int16 y,
int16 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint16 x,
uint16 y,
uint16 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int32 x,
int32 y,
int32 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint32 x,
uint32 y,
uint32 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int8 x,
int8 y,
int8 z,
int8 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint8 x,
uint8 y,
uint8 z,
uint8 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int16 x,
int16 y,
int16 z,
int16 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint16 x,
uint16 y,
uint16 z,
uint16 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_DEPRECATED GLM_FUNC_DECL genType glm::bitRevert (genType const & value)
-
- -

Revert all bits of any integer based type.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::bitRotateLeft (genType const & In,
std::size_t Shift 
)
-
- -

Rotate all bits to the left.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::bitRotateRight (genType const & In,
std::size_t Shift 
)
-
- -

Rotate all bits to the right.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::fillBitfieldWithOne (genIUType const & Value,
int const & FromBit,
int const & ToBit 
)
-
- -

Set to 1 a range of bits.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::fillBitfieldWithZero (genIUType const & Value,
int const & FromBit,
int const & ToBit 
)
-
- -

Set to 0 a range of bits.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL bool glm::isPowerOfTwo (genType const & value)
-
- -

Return true if the value is a power of two number.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIType glm::mask (genIType const & count)
-
- -

Build a mask of 'count' bits.

-
See Also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL 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
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00187.html b/3party/glm/doc/api/a00187.html deleted file mode 100755 index b210e50a72..0000000000 --- a/3party/glm/doc/api/a00187.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -GLM: GLM_GTX_closest_point - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_closest_point
-
-
- - - - - -

-Functions

template<typename T , precision P>
detail::tvec3< T, P > closestPointOnLine (detail::tvec3< T, P > const &point, detail::tvec3< T, P > const &a, detail::tvec3< T, P > 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, P> glm::closestPointOnLine (detail::tvec3< T, P > const & point,
detail::tvec3< T, P > const & a,
detail::tvec3< T, P > const & b 
)
-
- -

Find the point on a straight line which is the closet of a point.

-
See Also
GLM_GTX_closest_point
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00188.html b/3party/glm/doc/api/a00188.html deleted file mode 100755 index 6ce5f5cc52..0000000000 --- a/3party/glm/doc/api/a00188.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - -GLM: GLM_GTX_color_space - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tvec3< T, P > hsvColor (detail::tvec3< T, P > const &rgbValue)
 
template<typename T , precision P>
luminosity (detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
detail::tvec3< T, P > rgbColor (detail::tvec3< T, P > const &hsvValue)
 
template<typename T , precision P>
detail::tmat4x4< T, P > saturation (T const s)
 
template<typename T , precision P>
detail::tvec3< T, P > saturation (T const s, detail::tvec3< T, P > const &color)
 
template<typename T , precision P>
detail::tvec4< T, P > saturation (T const s, detail::tvec4< T, P > 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<T, P> glm::hsvColor (detail::tvec3< T, P > const & rgbValue)
-
- -

Converts a color from RGB color space to its color in HSV color space.

-
See Also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - -
T glm::luminosity (detail::tvec3< T, P > const & color)
-
- -

Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.

-
See Also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - -
detail::tvec3<T, P> glm::rgbColor (detail::tvec3< T, P > const & hsvValue)
-
- -

Converts a color from HSV color space to its color in RGB color space.

-
See Also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::saturation (T const s)
-
- -

Build a saturation matrix.

-
See Also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::saturation (T const s,
detail::tvec3< T, P > const & color 
)
-
- -

Modify the saturation of a color.

-
See Also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T, P> glm::saturation (T const s,
detail::tvec4< T, P > const & color 
)
-
- -

Modify the saturation of a color.

-
See Also
GLM_GTX_color_space
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00189.html b/3party/glm/doc/api/a00189.html deleted file mode 100755 index 64317812b3..0000000000 --- a/3party/glm/doc/api/a00189.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - -GLM: GLM_GTX_color_space_YCoCg - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_color_space_YCoCg
-
-
- - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCg (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > rgb2YCoCgR (detail::tvec3< T, P > const &rgbColor)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCg2rgb (detail::tvec3< T, P > const &YCoCgColor)
 
template<typename T , precision P>
detail::tvec3< T, P > YCoCgR2rgb (detail::tvec3< T, P > 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<T, P> glm::rgb2YCoCg (detail::tvec3< T, P > const & rgbColor)
-
- -

Convert a color from RGB color space to YCoCg color space.

-
See Also
GLM_GTX_color_space_YCoCg
- -
-
- -
-
- - - - - - - - -
detail::tvec3<T, P> glm::rgb2YCoCgR (detail::tvec3< T, P > 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
- -
-
- -
-
- - - - - - - - -
detail::tvec3<T, P> glm::YCoCg2rgb (detail::tvec3< T, P > const & YCoCgColor)
-
- -

Convert a color from YCoCg color space to RGB color space.

-
See Also
GLM_GTX_color_space_YCoCg
- -
-
- -
-
- - - - - - - - -
detail::tvec3<T, P> glm::YCoCgR2rgb (detail::tvec3< T, P > 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
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00190.html b/3party/glm/doc/api/a00190.html deleted file mode 100755 index 875fb0e92f..0000000000 --- a/3party/glm/doc/api/a00190.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - - -GLM: GLM_GTX_compatibility - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_compatibility
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

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

-Functions

-template<typename T , precision P>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
atan2 (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
atan2 (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
atan2 (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y)
 
-template<typename genType >
bool isfinite (genType const &x)
 
-template<typename T , precision P>
detail::tvec2< bool, P > isfinite (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
detail::tvec3< bool, P > isfinite (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
detail::tvec4< bool, P > isfinite (const detail::tvec4< T, P > &x)
 
-template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, T a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
lerp (const detail::tvec2< T, P > &x, const detail::tvec2< T, P > &y, const detail::tvec2< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
lerp (const detail::tvec3< T, P > &x, const detail::tvec3< T, P > &y, const detail::tvec3< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
lerp (const detail::tvec4< T, P > &x, const detail::tvec4< T, P > &y, const detail::tvec4< T, P > &a)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER T saturate (T x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec2< T, P > 
saturate (const detail::tvec2< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec3< T, P > 
saturate (const detail::tvec3< T, P > &x)
 
-template<typename T , precision P>
GLM_FUNC_QUALIFIER
-detail::tvec4< T, P > 
saturate (const detail::tvec4< T, P > &x)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T slerp (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
-

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.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_QUALIFIER T glm::slerp (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y,
T const & a 
)
-
- -

Returns the slurp interpolation between two quaternions.

-

Spherical linear interpolation of two quaternions.

- -

Definition at line 73 of file compatibility.hpp.

- -

References glm::mix().

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00191.html b/3party/glm/doc/api/a00191.html deleted file mode 100755 index d7dfe27eb1..0000000000 --- a/3party/glm/doc/api/a00191.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - -GLM: GLM_GTX_component_wise - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_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
- -
-
- -
-
- - - - - - - - -
genType::value_type glm::compMax (genType const & v)
-
- -

Find the maximum value between single vector components.

-
See Also
GLM_GTX_component_wise
- -
-
- -
-
- - - - - - - - -
genType::value_type glm::compMin (genType const & v)
-
- -

Find the minimum value between single vector components.

-
See Also
GLM_GTX_component_wise
- -
-
- -
-
- - - - - - - - -
genType::value_type glm::compMul (genType const & v)
-
- -

Multiply all vector components together.

-
See Also
GLM_GTX_component_wise
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00192.html b/3party/glm/doc/api/a00192.html deleted file mode 100755 index a5510f8927..0000000000 --- a/3party/glm/doc/api/a00192.html +++ /dev/null @@ -1,475 +0,0 @@ - - - - - - -GLM: GLM_GTX_dual_quaternion - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_dual_quaternion
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef highp_ddualquat ddualquat
 
typedef highp_fdualquat dualquat
 
typedef highp_fdualquat fdualquat
 
typedef detail::tdualquat
-< double, highp > 
highp_ddualquat
 
typedef detail::tdualquat
-< float, highp > 
highp_dualquat
 
typedef detail::tdualquat
-< float, highp > 
highp_fdualquat
 
typedef detail::tdualquat
-< double, lowp > 
lowp_ddualquat
 
typedef detail::tdualquat
-< float, lowp > 
lowp_dualquat
 
typedef detail::tdualquat
-< float, lowp > 
lowp_fdualquat
 
typedef detail::tdualquat
-< double, mediump > 
mediump_ddualquat
 
typedef detail::tdualquat
-< float, mediump > 
mediump_dualquat
 
typedef detail::tdualquat
-< float, mediump > 
mediump_fdualquat
 
- - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat2x4< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > dualquat_cast (detail::tmat3x4< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > inverse (detail::tdualquat< T, P > const &q)
 
template<typename T , precision P>
detail::tdualquat< T, P > lerp (detail::tdualquat< T, P > const &x, detail::tdualquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tmat2x4< T, P > mat2x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat3x4< T, P > mat3x4_cast (detail::tdualquat< T, P > const &x)
 
template<typename T , precision P>
detail::tdualquat< T, P > normalize (detail::tdualquat< T, P > const &q)
 
-

Detailed Description

-

Defines a templated dual-quaternion type and several dual-quaternion operations.

-

<glm/gtx/dual_quaternion.hpp> need to be included to use these functionalities.

-

Typedef Documentation

- -
-
- - - - -
typedef highp_ddualquat ddualquat
-
- -

Dual-quaternion of default double-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 279 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef highp_fdualquat dualquat
-
- -

Dual-quaternion of floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 255 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef highp_fdualquat fdualquat
-
- -

Dual-quaternion of single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 260 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<double, highp> highp_ddualquat
-
- -

Dual-quaternion of high double-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 248 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, highp> highp_dualquat
-
- -

Dual-quaternion of high single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 216 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, highp> highp_fdualquat
-
- -

Dual-quaternion of high single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 232 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<double, lowp> lowp_ddualquat
-
- -

Dual-quaternion of low double-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 238 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, lowp> lowp_dualquat
-
- -

Dual-quaternion of low single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 206 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, lowp> lowp_fdualquat
-
- -

Dual-quaternion of low single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 222 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<double, mediump> mediump_ddualquat
-
- -

Dual-quaternion of medium double-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 243 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, mediump> mediump_dualquat
-
- -

Dual-quaternion of medium single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 211 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef detail::tdualquat<float, mediump> mediump_fdualquat
-
- -

Dual-quaternion of medium single-precision floating-point numbers.

-
See Also
GLM_GTX_dual_quaternion
- -

Definition at line 227 of file dual_quaternion.hpp.

- -
-
-

Function Documentation

- -
-
- - - - - - - - -
detail::tdualquat<T, P> glm::dualquat_cast (detail::tmat2x4< T, P > const & x)
-
- -

Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tdualquat<T, P> glm::dualquat_cast (detail::tmat3x4< T, P > const & x)
-
- -

Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tdualquat<T, P> glm::inverse (detail::tdualquat< T, P > const & q)
-
- -

Returns the q inverse.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tdualquat<T, P> glm::lerp (detail::tdualquat< T, P > const & x,
detail::tdualquat< T, P > const & y,
T const & a 
)
-
- -

Returns the linear interpolation of two dual quaternion.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tmat2x4<T, P> glm::mat2x4_cast (detail::tdualquat< T, P > const & x)
-
- -

Converts a quaternion to a 2 * 4 matrix.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tmat3x4<T, P> glm::mat3x4_cast (detail::tdualquat< T, P > const & x)
-
- -

Converts a quaternion to a 3 * 4 matrix.

-
See Also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tdualquat<T, P> glm::normalize (detail::tdualquat< T, P > const & q)
-
- -

Returns the normalized quaternion.

-
See Also
GLM_GTX_dual_quaternion
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00193.html b/3party/glm/doc/api/a00193.html deleted file mode 100755 index 17350bf7e9..0000000000 --- a/3party/glm/doc/api/a00193.html +++ /dev/null @@ -1,485 +0,0 @@ - - - - - - -GLM: GLM_GTX_euler_angles - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_euler_angles
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleX (T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleXY (T const &angleX, T const &angleY)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleXZ (T const &angleX, T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleY (T const &angleY)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYX (T const &angleY, T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYXZ (T const &yaw, T const &pitch, T const &roll)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleYZ (T const &angleY, T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZ (T const &angleZ)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZX (T const &angle, T const &angleX)
 
template<typename T >
detail::tmat4x4< T, defaultp > eulerAngleZY (T const &angleZ, T const &angleY)
 
template<typename T >
detail::tmat2x2< T, defaultp > orientate2 (T const &angle)
 
template<typename T >
detail::tmat3x3< T, defaultp > orientate3 (T const &angle)
 
template<typename T , precision P>
detail::tmat3x3< T, P > orientate3 (detail::tvec3< T, P > const &angles)
 
template<typename T , precision P>
detail::tmat4x4< T, P > orientate4 (detail::tvec3< T, P > const &angles)
 
template<typename T >
detail::tmat4x4< T, defaultp > yawPitchRoll (T const &yaw, T const &pitch, T 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<T, defaultp> glm::eulerAngleX (T const & angleX)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleXY (T const & angleX,
T const & angleY 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleXZ (T const & angleX,
T const & angleZ 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleY (T const & angleY)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleYX (T const & angleY,
T const & angleX 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleYXZ (T const & yaw,
T const & pitch,
T const & roll 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleYZ (T const & angleY,
T const & angleZ 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleZ (T const & angleZ)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleZX (T const & angle,
T const & angleX 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, defaultp> glm::eulerAngleZY (T const & angleZ,
T const & angleY 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
detail::tmat2x2<T, defaultp> glm::orientate2 (T const & angle)
-
- -

Creates a 2D 2 * 2 rotation matrix from an euler angle.

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
detail::tmat3x3<T, defaultp> glm::orientate3 (T const & angle)
-
- -

Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
detail::tmat3x3<T, P> glm::orientate3 (detail::tvec3< T, P > const & angles)
-
- -

Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::orientate4 (detail::tvec3< T, P > const & angles)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-
See Also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, defaultp> glm::yawPitchRoll (T const & yaw,
T const & pitch,
T const & roll 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-
See Also
GLM_GTX_euler_angles
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00194.html b/3party/glm/doc/api/a00194.html deleted file mode 100755 index 5913089083..0000000000 --- a/3party/glm/doc/api/a00194.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -GLM: GLM_GTX_extend - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
- -
- - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL 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.

-

<glm/gtx/scalar_relational.hpp> need to be included to use these functionalities.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00195.html b/3party/glm/doc/api/a00195.html deleted file mode 100755 index c7357b7dbe..0000000000 --- a/3party/glm/doc/api/a00195.html +++ /dev/null @@ -1,555 +0,0 @@ - - - - - - -GLM: GLM_GTX_extented_min_max - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_extented_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 >::T const &y, typename C< T >::T 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 >::T const &y, typename C< T >::T const &z, typename C< T >::T 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 >::T const &y, typename C< T >::T 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 >::T const &y, typename C< T >::T const &z, typename C< T >::T 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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
C<T> glm::max (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z 
)
-
- -

Return the maximum component-wise values of 3 inputs.

-
See Also
GLM_GTX_extented_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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C<T> glm::max (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z,
typename C< T >::T const & w 
)
-
- -

Return the maximum component-wise values of 4 inputs.

-
See Also
GLM_GTX_extented_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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
C<T> glm::min (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z 
)
-
- -

Return the minimum component-wise values of 3 inputs.

-
See Also
GLM_GTX_extented_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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C<T> glm::min (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z,
typename C< T >::T const & w 
)
-
- -

Return the minimum component-wise values of 4 inputs.

-
See Also
GLM_GTX_extented_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
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00196.html b/3party/glm/doc/api/a00196.html deleted file mode 100755 index eb041f204e..0000000000 --- a/3party/glm/doc/api/a00196.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - -GLM: GLM_GTX_fast_exponential - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_fast_exponential
-
-
- - - - - - - - - - - - - - - - - - - - - - - -

-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
- -
-
- -
-
- - - - - - - - -
T glm::fastExp2 (const T & x)
-
- -

Faster than the common exp2 function but less accurate.

-
See Also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
T glm::fastLn (const T & x)
-
- -

Faster than the common ln function but less accurate.

-
See Also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
T glm::fastLog (const T & x)
-
- -

Faster than the common log function but less accurate.

-
See Also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
T glm::fastLog2 (const T & x)
-
- -

Faster than the common log2 function but less accurate.

-
See Also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType glm::fastPow (genType const & x,
genType const & y 
)
-
- -

Faster than the common pow function but less accurate.

-
See Also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genTypeT glm::fastPow (genTypeT const & x,
genTypeU const & y 
)
-
- -

Faster than the common pow function but less accurate.

-
See Also
GLM_GTX_fast_exponential
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00197.html b/3party/glm/doc/api/a00197.html deleted file mode 100755 index 02afe16c8c..0000000000 --- a/3party/glm/doc/api/a00197.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - -GLM: GLM_GTX_fast_square_root - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_fast_square_root
-
-
- - - - - - - - - - - - - - - - - -

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

-
    -
  • Sqrt optimisation based on Newton's method, www.gamedev.net/community/forums/topic.asp?topic id=139956
  • -
-

<glm/gtx/fast_square_root.hpp> need to be included to use these functionalities.

-

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/3party/glm/doc/api/a00198.html b/3party/glm/doc/api/a00198.html deleted file mode 100755 index dc16748858..0000000000 --- a/3party/glm/doc/api/a00198.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - -GLM: GLM_GTX_fast_trigonometry - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_fast_trigonometry
-
-
- - - - - - - - - - - - - - - - - - - - - - - -

-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/3party/glm/doc/api/a00199.html b/3party/glm/doc/api/a00199.html deleted file mode 100755 index 5d7a17331d..0000000000 --- a/3party/glm/doc/api/a00199.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - -GLM: GLM_GTX_gradient_paint - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_gradient_paint
-
-
- - - - - - - - -

-Functions

template<typename T , precision P>
linearGradient (detail::tvec2< T, P > const &Point0, detail::tvec2< T, P > const &Point1, detail::tvec2< T, P > const &Position)
 
template<typename T , precision P>
radialGradient (detail::tvec2< T, P > const &Center, T const &Radius, detail::tvec2< T, P > const &Focal, detail::tvec2< T, P > 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

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
T glm::linearGradient (detail::tvec2< T, P > const & Point0,
detail::tvec2< T, P > const & Point1,
detail::tvec2< T, P > const & Position 
)
-
- -

Return a color from a linear gradient.

-
See Also
- GLM_GTX_gradient_paint
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
T glm::radialGradient (detail::tvec2< T, P > const & Center,
T const & Radius,
detail::tvec2< T, P > const & Focal,
detail::tvec2< T, P > const & Position 
)
-
- -

Return a color from a radial gradient.

-
See Also
- GLM_GTX_gradient_paint
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00200.html b/3party/glm/doc/api/a00200.html deleted file mode 100755 index 1efa10bf2b..0000000000 --- a/3party/glm/doc/api/a00200.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - -GLM: GLM_GTX_handed_coordinate_space - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_handed_coordinate_space
-
-
- - - - - - - - -

-Functions

template<typename T , precision P>
bool leftHanded (detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
bool rightHanded (detail::tvec3< T, P > const &tangent, detail::tvec3< T, P > const &binormal, detail::tvec3< T, P > 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, P > const & tangent,
detail::tvec3< T, P > const & binormal,
detail::tvec3< T, P > const & normal 
)
-
- -

Return if a trihedron left handed or not.

-

From GLM_GTX_handed_coordinate_space extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::rightHanded (detail::tvec3< T, P > const & tangent,
detail::tvec3< T, P > const & binormal,
detail::tvec3< T, P > const & normal 
)
-
- -

Return if a trihedron right handed or not.

-

From GLM_GTX_handed_coordinate_space extension.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00201.html b/3party/glm/doc/api/a00201.html deleted file mode 100755 index dfd0229058..0000000000 --- a/3party/glm/doc/api/a00201.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - -GLM: GLM_GTX_inertia - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-

Create inertia matrices.

-

<glm/gtx/inertia.hpp> need to be included to use these functionalities.

-
- - - - diff --git a/3party/glm/doc/api/a00202.html b/3party/glm/doc/api/a00202.html deleted file mode 100755 index cd194bf371..0000000000 --- a/3party/glm/doc/api/a00202.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - - - -GLM: GLM_GTX_integer - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
- -
- - - - -

-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 gtx/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/3party/glm/doc/api/a00203.html b/3party/glm/doc/api/a00203.html deleted file mode 100755 index dfadb5607b..0000000000 --- a/3party/glm/doc/api/a00203.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - -GLM: GLM_GTX_intersect - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 
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 intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 
template<typename genType >
bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 
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 & sphereCenter,
typename genType::value_type sphereRadius,
genType & intersectionPosition1,
genType & intersectionNormal1,
genType & intersectionPosition2 = genType(),
genType & intersectionNormal2 = genType() 
)
-
- -

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::intersectRayPlane (genType const & orig,
genType const & dir,
genType const & planeOrig,
genType const & planeNormal,
typename genType::value_type & intersectionDistance 
)
-
- -

Compute the intersection of a ray and a triangle.

-

Ray direction and plane normal must be unit length. From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::intersectRaySphere (genType const & rayStarting,
genType const & rayNormalizedDirection,
genType const & sphereCenter,
typename genType::value_type const sphereRadiusSquered,
typename genType::value_type & intersectionDistance 
)
-
- -

Compute the intersection distance of a ray and a sphere.

-

The ray direction vector is unit length. From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::intersectRaySphere (genType const & rayStarting,
genType const & rayNormalizedDirection,
genType const & sphereCenter,
const typename genType::value_type sphereRadius,
genType & intersectionPosition,
genType & intersectionNormal 
)
-
- -

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/3party/glm/doc/api/a00204.html b/3party/glm/doc/api/a00204.html deleted file mode 100755 index c26500facc..0000000000 --- a/3party/glm/doc/api/a00204.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -GLM: GLM_GTX_io - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
- -
-

Detailed Description

-

std::[w]ostream support for glm types

-

<glm/gtx/io.hpp> needs to be included to use these functionalities.

-
- - - - diff --git a/3party/glm/doc/api/a00205.html b/3party/glm/doc/api/a00205.html deleted file mode 100755 index 87866d40f6..0000000000 --- a/3party/glm/doc/api/a00205.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -GLM: GLM_GTX_log_base - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- - -
-
- - - - - -

-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/3party/glm/doc/api/a00206.html b/3party/glm/doc/api/a00206.html deleted file mode 100755 index b0e621bede..0000000000 --- a/3party/glm/doc/api/a00206.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -GLM: GLM_GTX_matrix_cross_product - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_matrix_cross_product
-
-
- - - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat3x3< T, P > matrixCross3 (detail::tvec3< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > matrixCross4 (detail::tvec3< T, P > 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, P> glm::matrixCross3 (detail::tvec3< T, P > const & x)
-
- -

Build a cross product matrix.

-

From GLM_GTX_matrix_cross_product extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::matrixCross4 (detail::tvec3< T, P > const & x)
-
- -

Build a cross product matrix.

-

From GLM_GTX_matrix_cross_product extension.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00207.html b/3party/glm/doc/api/a00207.html deleted file mode 100755 index 8419b85a37..0000000000 --- a/3party/glm/doc/api/a00207.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - -GLM: GLM_GTX_matrix_interpolation - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_matrix_interpolation
-
-
- - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
void axisAngle (detail::tmat4x4< T, P > const &mat, detail::tvec3< T, P > &axis, T &angle)
 
template<typename T , precision P>
detail::tmat4x4< T, P > axisAngleMatrix (detail::tvec3< T, P > const &axis, T const angle)
 
template<typename T , precision P>
detail::tmat4x4< T, P > extractMatrixRotation (detail::tmat4x4< T, P > const &mat)
 
template<typename T , precision P>
detail::tmat4x4< T, P > interpolate (detail::tmat4x4< T, P > const &m1, detail::tmat4x4< T, P > 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, P > const & mat,
detail::tvec3< T, P > & axis,
T & angle 
)
-
- -

Get the axis and angle of the rotation from a matrix.

-

From GLM_GTX_matrix_interpolation extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::axisAngleMatrix (detail::tvec3< T, P > const & axis,
T const angle 
)
-
- -

Build a matrix from axis and angle.

-

From GLM_GTX_matrix_interpolation extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::extractMatrixRotation (detail::tmat4x4< T, P > const & mat)
-
- -

Extracts the rotation part of a matrix.

-

From GLM_GTX_matrix_interpolation extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::interpolate (detail::tmat4x4< T, P > const & m1,
detail::tmat4x4< T, P > 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/3party/glm/doc/api/a00208.html b/3party/glm/doc/api/a00208.html deleted file mode 100755 index 618dece8cf..0000000000 --- a/3party/glm/doc/api/a00208.html +++ /dev/null @@ -1,423 +0,0 @@ - - - - - - -GLM: GLM_GTX_matrix_major_storage - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_matrix_major_storage
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat2x2< T, P > colMajor2 (detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
 
template<typename T , precision P>
detail::tmat2x2< T, P > colMajor2 (detail::tmat2x2< T, P > const &m)
 
template<typename T , precision P>
detail::tmat3x3< T, P > colMajor3 (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename T , precision P>
detail::tmat3x3< T, P > colMajor3 (detail::tmat3x3< T, P > const &m)
 
template<typename T , precision P>
detail::tmat4x4< T, P > colMajor4 (detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
 
template<typename T , precision P>
detail::tmat4x4< T, P > colMajor4 (detail::tmat4x4< T, P > const &m)
 
template<typename T , precision P>
detail::tmat2x2< T, P > rowMajor2 (detail::tvec2< T, P > const &v1, detail::tvec2< T, P > const &v2)
 
template<typename T , precision P>
detail::tmat2x2< T, P > rowMajor2 (detail::tmat2x2< T, P > const &m)
 
template<typename T , precision P>
detail::tmat3x3< T, P > rowMajor3 (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > const &v3)
 
template<typename T , precision P>
detail::tmat3x3< T, P > rowMajor3 (detail::tmat3x3< T, P > const &m)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rowMajor4 (detail::tvec4< T, P > const &v1, detail::tvec4< T, P > const &v2, detail::tvec4< T, P > const &v3, detail::tvec4< T, P > const &v4)
 
template<typename T , precision P>
detail::tmat4x4< T, P > rowMajor4 (detail::tmat4x4< T, P > 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, P> glm::colMajor2 (detail::tvec2< T, P > const & v1,
detail::tvec2< T, P > const & v2 
)
-
- -

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat2x2<T, P> glm::colMajor2 (detail::tmat2x2< T, P > const & m)
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T, P> glm::colMajor3 (detail::tvec3< T, P > const & v1,
detail::tvec3< T, P > const & v2,
detail::tvec3< T, P > const & v3 
)
-
- -

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat3x3<T, P> glm::colMajor3 (detail::tmat3x3< T, P > const & m)
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::colMajor4 (detail::tvec4< T, P > const & v1,
detail::tvec4< T, P > const & v2,
detail::tvec4< T, P > const & v3,
detail::tvec4< T, P > const & v4 
)
-
- -

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::colMajor4 (detail::tmat4x4< T, P > const & m)
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat2x2<T, P> glm::rowMajor2 (detail::tvec2< T, P > const & v1,
detail::tvec2< T, P > const & v2 
)
-
- -

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat2x2<T, P> glm::rowMajor2 (detail::tmat2x2< T, P > const & m)
-
- -

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T, P> glm::rowMajor3 (detail::tvec3< T, P > const & v1,
detail::tvec3< T, P > const & v2,
detail::tvec3< T, P > const & v3 
)
-
- -

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat3x3<T, P> glm::rowMajor3 (detail::tmat3x3< T, P > const & m)
-
- -

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::rowMajor4 (detail::tvec4< T, P > const & v1,
detail::tvec4< T, P > const & v2,
detail::tvec4< T, P > const & v3,
detail::tvec4< T, P > const & v4 
)
-
- -

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::rowMajor4 (detail::tmat4x4< T, P > const & m)
-
- -

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00209.html b/3party/glm/doc/api/a00209.html deleted file mode 100755 index dd2c4fd2b1..0000000000 --- a/3party/glm/doc/api/a00209.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - -GLM: GLM_GTX_matrix_operation - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_matrix_operation
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat2x2< T, P > diagonal2x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat2x3< T, P > diagonal2x3 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat2x4< T, P > diagonal2x4 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x2< T, P > diagonal3x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x3< T, P > diagonal3x3 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat3x4< T, P > diagonal3x4 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x2< T, P > diagonal4x2 (detail::tvec2< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x3< T, P > diagonal4x3 (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > diagonal4x4 (detail::tvec4< T, P > 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<T, P> glm::diagonal2x2 (detail::tvec2< T, P > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat2x3<T, P> glm::diagonal2x3 (detail::tvec2< T, P > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat2x4<T, P> glm::diagonal2x4 (detail::tvec2< T, P > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat3x2<T, P> glm::diagonal3x2 (detail::tvec2< T, P > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat3x3<T, P> glm::diagonal3x3 (detail::tvec3< T, P > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat3x4<T, P> glm::diagonal3x4 (detail::tvec3< T, P > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat4x2<T, P> glm::diagonal4x2 (detail::tvec2< T, P > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat4x3<T, P> glm::diagonal4x3 (detail::tvec3< T, P > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::diagonal4x4 (detail::tvec4< T, P > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00210.html b/3party/glm/doc/api/a00210.html deleted file mode 100755 index 4e2e74ccd2..0000000000 --- a/3party/glm/doc/api/a00210.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - -GLM: GLM_GTX_matrix_query - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_matrix_query
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P, template< typename, precision > class matType>
bool isIdentity (matType< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNormalized (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat2x2< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat3x3< T, P > const &m, T const &epsilon)
 
template<typename T , precision P>
bool isNull (detail::tmat4x4< T, P > const &m, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class matType>
bool isOrthogonal (matType< T, P > const &m, T 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 (matType< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is an identity matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNormalized (detail::tmat2x2< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNormalized (detail::tmat3x3< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNormalized (detail::tmat4x4< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNull (detail::tmat2x2< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNull (detail::tmat3x3< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNull (detail::tmat4x4< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isOrthogonal (matType< T, P > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is an orthonormalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00211.html b/3party/glm/doc/api/a00211.html deleted file mode 100755 index 800411332b..0000000000 --- a/3party/glm/doc/api/a00211.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -GLM: GLM_GTX_mixed_producte - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_mixed_producte
-
-
- - - - - -

-Functions

-template<typename T , precision P>
mixedProduct (detail::tvec3< T, P > const &v1, detail::tvec3< T, P > const &v2, detail::tvec3< T, P > 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/3party/glm/doc/api/a00212.html b/3party/glm/doc/api/a00212.html deleted file mode 100755 index b513b03efb..0000000000 --- a/3party/glm/doc/api/a00212.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - -GLM: GLM_GTX_multiple - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- - -
-
- - - - - - - - -

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

-
Template Parameters
- - -
genTypeFloating-point or integer scalar or vector types.
-
-
-
Parameters
- - - -
Source
MultipleMust be a null or positive value
-
-
-
See Also
GLM_GTX_multiple
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType glm::lowerMultiple (genType const & Source,
genType const & Multiple 
)
-
- -

Lower multiple number of Source.

-
Template Parameters
- - -
genTypeFloating-point or integer scalar or vector types.
-
-
-
Parameters
- - - -
Source
MultipleMust be a null or positive value
-
-
-
See Also
GLM_GTX_multiple
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00213.html b/3party/glm/doc/api/a00213.html deleted file mode 100755 index 7c239ca367..0000000000 --- a/3party/glm/doc/api/a00213.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - -GLM: GLM_GTX_norm - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-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 , precision P>
l1Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l1Norm (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
 
template<typename T , precision P>
l2Norm (detail::tvec3< T, P > const &x)
 
template<typename T >
length2 (T const &x)
 
template<typename genType >
genType::value_type length2 (genType const &x)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, unsigned int Depth)
 
template<typename T , precision P>
lxNorm (detail::tvec3< T, P > const &x, unsigned int Depth)
 
-

Detailed Description

-

Various ways 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, P > const & x,
detail::tvec3< T, P > const & y 
)
-
- -

Returns the L1 norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - -
T glm::l1Norm (detail::tvec3< T, P > const & v)
-
- -

Returns the L1 norm of v.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::l2Norm (detail::tvec3< T, P > const & x,
detail::tvec3< T, P > const & y 
)
-
- -

Returns the L2 norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - -
T glm::l2Norm (detail::tvec3< T, P > 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::lxNorm (detail::tvec3< T, P > const & x,
detail::tvec3< T, P > const & y,
unsigned int Depth 
)
-
- -

Returns the L norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::lxNorm (detail::tvec3< T, P > const & x,
unsigned int Depth 
)
-
- -

Returns the L norm of v.

-

From GLM_GTX_norm extension.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00214.html b/3party/glm/doc/api/a00214.html deleted file mode 100755 index 5e22df4c83..0000000000 --- a/3party/glm/doc/api/a00214.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -GLM: GLM_GTX_normal - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
- -
- - - - - -

-Functions

template<typename T , precision P>
detail::tvec3< T, P > triangleNormal (detail::tvec3< T, P > const &p1, detail::tvec3< T, P > const &p2, detail::tvec3< T, P > 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, P> glm::triangleNormal (detail::tvec3< T, P > const & p1,
detail::tvec3< T, P > const & p2,
detail::tvec3< T, P > const & p3 
)
-
- -

Computes triangle normal from triangle points.

-

From GLM_GTX_normal extension.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00215.html b/3party/glm/doc/api/a00215.html deleted file mode 100755 index ed13d26a7d..0000000000 --- a/3party/glm/doc/api/a00215.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - -GLM: GLM_GTX_normalize_dot - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_normalize_dot
-
-
- - - - - - - - -

-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/3party/glm/doc/api/a00216.html b/3party/glm/doc/api/a00216.html deleted file mode 100755 index 71cdac7458..0000000000 --- a/3party/glm/doc/api/a00216.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - -GLM: GLM_GTX_number_precision - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_number_precision
-
-
- - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-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/3party/glm/doc/api/a00217.html b/3party/glm/doc/api/a00217.html deleted file mode 100755 index 7d1e901ec2..0000000000 --- a/3party/glm/doc/api/a00217.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - -GLM: GLM_GTX_optimum_pow - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - -

-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)
 
template<precision P>
detail::tvec2< bool, P > powOfTwo (detail::tvec2< int, P > const &x)
 
template<precision P>
detail::tvec3< bool, P > powOfTwo (detail::tvec3< int, P > const &x)
 
template<precision P>
detail::tvec4< bool, P > powOfTwo (detail::tvec4< int, P > const &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, P> glm::gtx::powOfTwo (detail::tvec2< int, P > const & x)
-
- -

Checks to determine if the parameter component are power of 2 numbers.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - - - - -
detail::tvec3<bool, P> glm::gtx::powOfTwo (detail::tvec3< int, P > const & x)
-
- -

Checks to determine if the parameter component are power of 2 numbers.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - - - - -
detail::tvec4<bool, P> glm::gtx::powOfTwo (detail::tvec4< int, P > const & x)
-
- -

Checks to determine if the parameter component are power of 2 numbers.

-

From GLM_GTX_optimum_pow extension.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00218.html b/3party/glm/doc/api/a00218.html deleted file mode 100755 index c453a1b4c8..0000000000 --- a/3party/glm/doc/api/a00218.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - -GLM: GLM_GTX_orthonormalize - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_orthonormalize
-
-
- - - - - - - - -

-Functions

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

Detailed Description

-

Orthonormalize matrices.

-

<glm/gtx/orthonormalize.hpp> need to be included to use these functionalities.

-

Function Documentation

- -
-
- - - - - - - - -
detail::tmat3x3<T, P> glm::orthonormalize (const detail::tmat3x3< T, P > & m)
-
- -

Returns the orthonormalized matrix of m.

-

From GLM_GTX_orthonormalize extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::orthonormalize (const detail::tvec3< T, P > & x,
const detail::tvec3< T, P > & y 
)
-
- -

Orthonormalizes x according y.

-

From GLM_GTX_orthonormalize extension.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00219.html b/3party/glm/doc/api/a00219.html deleted file mode 100755 index 36a374fd9e..0000000000 --- a/3party/glm/doc/api/a00219.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: GLM_GTX_perpendicular - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_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/3party/glm/doc/api/a00220.html b/3party/glm/doc/api/a00220.html deleted file mode 100755 index 7291c0e8cb..0000000000 --- a/3party/glm/doc/api/a00220.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -GLM: GLM_GTX_polar_coordinates - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_polar_coordinates
-
-
- - - - - - - - -

-Functions

template<typename T , precision P>
detail::tvec3< T, P > euclidean (detail::tvec2< T, P > const &polar)
 
template<typename T , precision P>
detail::tvec3< T, P > polar (detail::tvec3< T, P > 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, P> glm::euclidean (detail::tvec2< T, P > const & polar)
-
- -

Convert Polar to Euclidean coordinates.

-
See Also
GLM_GTX_polar_coordinates
- -
-
- -
-
- - - - - - - - -
detail::tvec3<T, P> glm::polar (detail::tvec3< T, P > const & euclidean)
-
- -

Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.

-
See Also
GLM_GTX_polar_coordinates
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00221.html b/3party/glm/doc/api/a00221.html deleted file mode 100755 index fd245d49e7..0000000000 --- a/3party/glm/doc/api/a00221.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: GLM_GTX_projection - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - -

-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/3party/glm/doc/api/a00222.html b/3party/glm/doc/api/a00222.html deleted file mode 100755 index 22f552ed62..0000000000 --- a/3party/glm/doc/api/a00222.html +++ /dev/null @@ -1,615 +0,0 @@ - - - - - - -GLM: GLM_GTX_quaternion - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec3< T, P > cross (detail::tvec3< T, P > const &v, detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > exp (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
extractRealComponent (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > fastMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tquat< T, P > intermediate (detail::tquat< T, P > const &prev, detail::tquat< T, P > const &curr, detail::tquat< T, P > const &next)
 
template<typename T , precision P>
length2 (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > log (detail::tquat< T, P > const &q)
 
template<typename T , precision P>
detail::tquat< T, P > pow (detail::tquat< T, P > const &x, T const &y)
 
template<typename T , precision P>
detail::tvec3< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tvec4< T, P > rotate (detail::tquat< T, P > const &q, detail::tvec4< T, P > const &v)
 
template<typename T , precision P>
detail::tquat< T, P > rotation (detail::tvec3< T, P > const &orig, detail::tvec3< T, P > const &dest)
 
template<typename T , precision P>
detail::tquat< T, P > shortMix (detail::tquat< T, P > const &x, detail::tquat< T, P > const &y, T const &a)
 
template<typename T , precision P>
detail::tquat< T, P > squad (detail::tquat< T, P > const &q1, detail::tquat< T, P > const &q2, detail::tquat< T, P > const &s1, detail::tquat< T, P > const &s2, T const &h)
 
template<typename T , precision P>
detail::tmat3x3< T, P > toMat3 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > toMat4 (detail::tquat< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat3x3< T, P > const &x)
 
template<typename T , precision P>
detail::tquat< T, P > toQuat (detail::tmat4x4< T, P > const &x)
 
-

Detailed Description

-

Extented quaternion types and functions.

-

<glm/gtx/quaternion.hpp> need to be included to use these functionalities.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::cross (detail::tquat< T, P > const & q,
detail::tvec3< T, P > const & v 
)
-
- -

Compute a cross product between a quaternion and a vector.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::cross (detail::tvec3< T, P > const & v,
detail::tquat< T, P > const & q 
)
-
- -

Compute a cross product between a vector and a quaternion.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tquat<T, P> glm::exp (detail::tquat< T, P > const & q)
-
- -

Returns a exp of a quaternion.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
T glm::extractRealComponent (detail::tquat< T, P > const & q)
-
- -

Extract the real component of a quaternion.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::fastMix (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y,
T const & a 
)
-
- -

Quaternion normalized linear interpolation.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::intermediate (detail::tquat< T, P > const & prev,
detail::tquat< T, P > const & curr,
detail::tquat< T, P > const & next 
)
-
- -

Returns an intermediate control point for squad interpolation.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
T glm::length2 (detail::tquat< T, P > const & q)
-
- -

Returns the squared length of x.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tquat<T, P> glm::log (detail::tquat< T, P > const & q)
-
- -

Returns a log of a quaternion.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::pow (detail::tquat< T, P > const & x,
T const & y 
)
-
- -

Returns x raised to the y power.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::rotate (detail::tquat< T, P > const & q,
detail::tvec3< T, P > const & v 
)
-
- -

Returns quarternion square root.

-
See Also
GLM_GTX_quaternion Rotates a 3 components vector by a quaternion.
-
-GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T, P> glm::rotate (detail::tquat< T, P > const & q,
detail::tvec4< T, P > const & v 
)
-
- -

Rotates a 4 components vector by a quaternion.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::rotation (detail::tvec3< T, P > const & orig,
detail::tvec3< T, P > const & dest 
)
-
- -

Compute the rotation between two vectors.

-

param orig vector, needs to be normalized param dest vector, needs to be normalized

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::shortMix (detail::tquat< T, P > const & x,
detail::tquat< T, P > const & y,
T const & a 
)
-
- -

Quaternion interpolation using the rotation short path.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::squad (detail::tquat< T, P > const & q1,
detail::tquat< T, P > const & q2,
detail::tquat< T, P > const & s1,
detail::tquat< T, P > const & s2,
T const & h 
)
-
- -

Compute a point on a path according squad equation.

-

q1 and q2 are control points; s1 and s2 are intermediate control points.

-
See Also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
detail::tmat3x3<T, P> glm::toMat3 (detail::tquat< T, P > const & x)
-
- -

Converts a quaternion to a 3 * 3 matrix.

-
See Also
GLM_GTX_quaternion
- -

Definition at line 150 of file gtx/quaternion.hpp.

- -

References glm::mat3_cast().

- -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::toMat4 (detail::tquat< T, P > const & x)
-
- -

Converts a quaternion to a 4 * 4 matrix.

-
See Also
GLM_GTX_quaternion
- -

Definition at line 157 of file gtx/quaternion.hpp.

- -

References glm::mat4_cast().

- -
-
- -
-
- - - - - - - - -
detail::tquat<T, P> glm::toQuat (detail::tmat3x3< T, P > const & x)
-
- -

Converts a 3 * 3 matrix to a quaternion.

-
See Also
GLM_GTX_quaternion
- -

Definition at line 164 of file gtx/quaternion.hpp.

- -

References glm::quat_cast().

- -
-
- -
-
- - - - - - - - -
detail::tquat<T, P> glm::toQuat (detail::tmat4x4< T, P > const & x)
-
- -

Converts a 4 * 4 matrix to a quaternion.

-
See Also
GLM_GTX_quaternion
- -

Definition at line 171 of file gtx/quaternion.hpp.

- -

References glm::quat_cast().

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00223.html b/3party/glm/doc/api/a00223.html deleted file mode 100755 index 95a19871b2..0000000000 --- a/3party/glm/doc/api/a00223.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - -GLM: GLM_GTX_raw_data - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- - -
-
- - - - - - - - - - -

-Typedefs

typedef detail::uint8 byte
 
typedef detail::uint32 dword
 
typedef detail::uint64 qword
 
typedef detail::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 detail::uint8 byte
-
- -

Type for byte numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 55 of file raw_data.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 dword
-
- -

Type for dword numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 63 of file raw_data.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 qword
-
- -

Type for qword numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 67 of file raw_data.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 word
-
- -

Type for word numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 59 of file raw_data.hpp.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00224.html b/3party/glm/doc/api/a00224.html deleted file mode 100755 index 318ec0f92f..0000000000 --- a/3party/glm/doc/api/a00224.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - -GLM: GLM_GTX_rotate_normalized_axis - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_rotate_normalized_axis
-
-
- - - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat4x4< T, P > rotateNormalizedAxis (detail::tmat4x4< T, P > const &m, T const &angle, detail::tvec3< T, P > const &axis)
 
template<typename T , precision P>
detail::tquat< T, P > rotateNormalizedAxis (detail::tquat< T, P > const &q, T const &angle, detail::tvec3< T, P > const &axis)
 
-

Detailed Description

-

Quaternions and matrices rotations around normalized axis.

-

<glm/gtx/rotate_normalized_axis.hpp> need to be included to use these functionalities.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::rotateNormalizedAxis (detail::tmat4x4< T, P > const & m,
T const & angle,
detail::tvec3< T, P > const & axis 
)
-
- -

Builds a rotation 4 * 4 matrix created from a normalized axis and an angle.

-
Parameters
- - - - -
mInput matrix multiplied by this rotation matrix.
angleRotation angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
axisRotation axis, must be normalized.
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Currently supported: half (not recommanded), float or double.
-
-
-
See Also
GLM_GTX_rotate_normalized_axis
-
-- rotate(T angle, T x, T y, T z)
-
-- rotate(detail::tmat4x4<T, P> const & m, T angle, T x, T y, T z)
-
-- rotate(T angle, detail::tvec3<T, P> const & v)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<T, P> glm::rotateNormalizedAxis (detail::tquat< T, P > const & q,
T const & angle,
detail::tvec3< T, P > const & axis 
)
-
- -

Rotates a quaternion from a vector of 3 components normalized axis and an angle.

-
Parameters
- - - - -
qSource orientation
angleAngle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
axisNormalized axis of the rotation, must be normalized.
-
-
-
See Also
GLM_GTX_rotate_normalized_axis
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00225.html b/3party/glm/doc/api/a00225.html deleted file mode 100755 index 23df10a820..0000000000 --- a/3party/glm/doc/api/a00225.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - - -GLM: GLM_GTX_rotate_vector - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_rotate_vector
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat4x4< T, P > orientation (detail::tvec3< T, P > const &Normal, detail::tvec3< T, P > const &Up)
 
template<typename T , precision P>
detail::tvec2< T, P > rotate (detail::tvec2< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotate (detail::tvec3< T, P > const &v, T const &angle, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
detail::tvec4< T, P > rotate (detail::tvec4< T, P > const &v, T const &angle, detail::tvec3< T, P > const &normal)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateX (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateX (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateY (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateY (detail::tvec4< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec3< T, P > rotateZ (detail::tvec3< T, P > const &v, T const &angle)
 
template<typename T , precision P>
detail::tvec4< T, P > rotateZ (detail::tvec4< T, P > 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, P> glm::orientation (detail::tvec3< T, P > const & Normal,
detail::tvec3< T, P > const & Up 
)
-
- -

Build a rotation matrix from a normal and a up vector.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec2<T, P> glm::rotate (detail::tvec2< T, P > const & v,
T const & angle 
)
-
- -

Rotate a two dimensional vector.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::rotate (detail::tvec3< T, P > const & v,
T const & angle,
detail::tvec3< T, P > const & normal 
)
-
- -

Rotate a three dimensional vector around an axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tvec4<T, P> glm::rotate (detail::tvec4< T, P > const & v,
T const & angle,
detail::tvec3< T, P > const & normal 
)
-
- -

Rotate a four dimensional vector around an axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::rotateX (detail::tvec3< T, P > const & v,
T const & angle 
)
-
- -

Rotate a three dimensional vector around the X axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T, P> glm::rotateX (detail::tvec4< T, P > const & v,
T const & angle 
)
-
- -

Rotate a four dimentionnals vector around the X axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::rotateY (detail::tvec3< T, P > const & v,
T const & angle 
)
-
- -

Rotate a three dimensional vector around the Y axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T, P> glm::rotateY (detail::tvec4< T, P > const & v,
T const & angle 
)
-
- -

Rotate a four dimensional vector around the X axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T, P> glm::rotateZ (detail::tvec3< T, P > const & v,
T const & angle 
)
-
- -

Rotate a three dimensional vector around the Z axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T, P> glm::rotateZ (detail::tvec4< T, P > const & v,
T const & angle 
)
-
- -

Rotate a four dimensional vector around the X axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00226.html b/3party/glm/doc/api/a00226.html deleted file mode 100755 index e1bd2e7fca..0000000000 --- a/3party/glm/doc/api/a00226.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - -GLM: GLM_GTX_simd_mat4 - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
-
-
-

SIMD implementation of mat4 type.

-

<glm/gtx/simd_mat4.hpp> need to be included to use these functionalities.

-
- - - - diff --git a/3party/glm/doc/api/a00227.html b/3party/glm/doc/api/a00227.html deleted file mode 100755 index 0d361d90c4..0000000000 --- a/3party/glm/doc/api/a00227.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -GLM: GLM_GTX_simd_quat - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
-
-
-

SIMD implementation of quat type.

-

SIMD implementation of vec4 type.

-

<glm/gtx/simd_quat.hpp> need to be included to use these functionalities.

-

<glm/gtx/simd_vec4.hpp> need to be included to use these functionalities.

-
- - - - diff --git a/3party/glm/doc/api/a00228.html b/3party/glm/doc/api/a00228.html deleted file mode 100755 index bea683bb4a..0000000000 --- a/3party/glm/doc/api/a00228.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - -GLM: GLM_GTX_spline - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
- -
- - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 
template<typename genType >
GLM_FUNC_DECL 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

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

-
See Also
GLM_GTX_spline extension.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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.

-
See Also
GLM_GTX_spline extension.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL 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.

-
See Also
GLM_GTX_spline extension.
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00229.html b/3party/glm/doc/api/a00229.html deleted file mode 100755 index 4fddf0184d..0000000000 --- a/3party/glm/doc/api/a00229.html +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - -GLM: GLM_GTX_std_based_type - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_std_based_type
-
-
- - - - - - - - - - - - - - -

-Typedefs

typedef detail::tvec2
-< std::size_t, defaultp > 
size2
 
typedef detail::tvec2
-< std::size_t, defaultp > 
size2_t
 
typedef detail::tvec3
-< std::size_t, defaultp > 
size3
 
typedef detail::tvec3
-< std::size_t, defaultp > 
size3_t
 
typedef detail::tvec4
-< std::size_t, defaultp > 
size4
 
typedef detail::tvec4
-< std::size_t, defaultp > 
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, defaultp> 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, defaultp> 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, defaultp> 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, defaultp> 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, defaultp> 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, defaultp> 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/3party/glm/doc/api/a00230.html b/3party/glm/doc/api/a00230.html deleted file mode 100755 index cdf4838a4e..0000000000 --- a/3party/glm/doc/api/a00230.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -GLM: GLM_GTX_string_cast - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - -

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

-
See Also
GLM_GTX_string_cast extension.
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00231.html b/3party/glm/doc/api/a00231.html deleted file mode 100755 index f365e5b9fc..0000000000 --- a/3party/glm/doc/api/a00231.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - -GLM: GLM_GTX_transform - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat4x4< T, P > rotate (T angle, detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > scale (detail::tvec3< T, P > const &v)
 
template<typename T , precision P>
detail::tmat4x4< T, P > translate (detail::tvec3< T, P > const &v)
 
-

Detailed Description

-

Add transformation matrices.

-

<glm/gtx/transform.hpp> need to be included to use these functionalities.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::rotate (angle,
detail::tvec3< T, P > const & v 
)
-
- -

Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.

- - -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::scale (detail::tvec3< T, P > const & v)
-
- -

Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.

- - -
-
- -
-
- - - - - - - - -
detail::tmat4x4<T, P> glm::translate (detail::tvec3< T, P > const & v)
-
- -

Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.

- - -
-
-
- - - - diff --git a/3party/glm/doc/api/a00232.html b/3party/glm/doc/api/a00232.html deleted file mode 100755 index 41380249cd..0000000000 --- a/3party/glm/doc/api/a00232.html +++ /dev/null @@ -1,374 +0,0 @@ - - - - - - -GLM: GLM_GTX_transform2 - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P>
detail::tmat3x3< T, P > proj2D (const detail::tmat3x3< T, P > &m, const detail::tvec3< T, P > &normal)
 
template<typename T , precision P>
detail::tmat4x4< T, P > proj3D (const detail::tmat4x4< T, P > &m, const detail::tvec3< T, P > &normal)
 
template<typename valType , precision P>
detail::tmat4x4< valType, P > scaleBias (valType scale, valType bias)
 
template<typename valType , precision P>
detail::tmat4x4< valType, P > scaleBias (detail::tmat4x4< valType, P > const &m, valType scale, valType bias)
 
template<typename T , precision P>
detail::tmat3x3< T, P > shearX2D (detail::tmat3x3< T, P > const &m, T y)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearX3D (const detail::tmat4x4< T, P > &m, T y, T z)
 
template<typename T , precision P>
detail::tmat3x3< T, P > shearY2D (detail::tmat3x3< T, P > const &m, T x)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearY3D (const detail::tmat4x4< T, P > &m, T x, T z)
 
template<typename T , precision P>
detail::tmat4x4< T, P > shearZ3D (const detail::tmat4x4< T, P > &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, P> glm::proj2D (const detail::tmat3x3< T, P > & m,
const detail::tvec3< T, P > & normal 
)
-
- -

Build planar projection matrix along normal axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::proj3D (const detail::tmat4x4< T, P > & m,
const detail::tvec3< T, P > & normal 
)
-
- -

Build planar projection matrix along normal axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType, P> glm::scaleBias (valType scale,
valType bias 
)
-
- -

Build a scale bias matrix.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType, P> glm::scaleBias (detail::tmat4x4< valType, P > const & m,
valType scale,
valType bias 
)
-
- -

Build a scale bias matrix.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T, P> glm::shearX2D (detail::tmat3x3< T, P > const & m,
y 
)
-
- -

Transforms a matrix with a shearing on X axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::shearX3D (const detail::tmat4x4< T, P > & m,
y,
z 
)
-
- -

Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T, P> glm::shearY2D (detail::tmat3x3< T, P > const & m,
x 
)
-
- -

Transforms a matrix with a shearing on Y axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::shearY3D (const detail::tmat4x4< T, P > & m,
x,
z 
)
-
- -

Transforms a matrix with a shearing on Y axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T, P> glm::shearZ3D (const detail::tmat4x4< T, P > & m,
x,
y 
)
-
- -

Transforms a matrix with a shearing on Z axis.

-

From GLM_GTX_transform2 extension.

- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00233.html b/3party/glm/doc/api/a00233.html deleted file mode 100755 index b8418eb01e..0000000000 --- a/3party/glm/doc/api/a00233.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - -GLM: GLM_GTX_vec1 - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
- -
-

Add vec1, ivec1, uvec1 and bvec1 types.

-

<glm/gtx/vec1.hpp> need to be included to use these functionalities.

-
- - - - diff --git a/3party/glm/doc/api/a00234.html b/3party/glm/doc/api/a00234.html deleted file mode 100755 index 25ee17bea5..0000000000 --- a/3party/glm/doc/api/a00234.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - -GLM: GLM_GTX_vector_angle - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_vector_angle
-
-
- - - - - - - - - - - -

-Functions

template<typename vecType >
GLM_FUNC_QUALIFIER
-vecType::value_type 
angle (vecType const &x, vecType const &y)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec2< T, P > const &x, detail::tvec2< T, P > const &y)
 
template<typename T , precision P>
GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y, detail::tvec3< T, P > 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.

-
See Also
GLM_GTX_vector_angle extension
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_QUALIFIER T glm::orientedAngle (detail::tvec2< T, P > const & x,
detail::tvec2< T, P > const & y 
)
-
- -

Returns the oriented angle between two 2d vectors Parameters need to be normalized.

-
See Also
GLM_GTX_vector_angle extension.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_QUALIFIER T glm::orientedAngle (detail::tvec3< T, P > const & x,
detail::tvec3< T, P > const & y,
detail::tvec3< T, P > const & ref 
)
-
- -

Returns the oriented angle between two 3d vectors based from a reference axis.

-

Parameters need to be normalized.

-
See Also
GLM_GTX_vector_angle extension.
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00235.html b/3party/glm/doc/api/a00235.html deleted file mode 100755 index a91b973e76..0000000000 --- a/3party/glm/doc/api/a00235.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - -GLM: GLM_GTX_vector_query - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
- -
-
GLM_GTX_vector_query
-
-
- - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , precision P, template< typename, precision > class vecType>
bool areCollinear (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthogonal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool areOrthonormal (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
vecType< bool, P > isCompNull (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNormalized (vecType< T, P > const &v, T const &epsilon)
 
template<typename T , precision P, template< typename, precision > class vecType>
bool isNull (vecType< T, P > const &v, T 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 (vecType< T, P > const & v0,
vecType< T, P > const & v1,
T const & epsilon 
)
-
- -

Check whether two vectors are collinears.

-
See Also
GLM_GTX_vector_query extensions.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::areOrthogonal (vecType< T, P > const & v0,
vecType< T, P > const & v1,
T const & epsilon 
)
-
- -

Check whether two vectors are orthogonals.

-
See Also
GLM_GTX_vector_query extensions.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::areOrthonormal (vecType< T, P > const & v0,
vecType< T, P > const & v1,
T const & epsilon 
)
-
- -

Check whether two vectors are orthonormal.

-
See Also
GLM_GTX_vector_query extensions.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
vecType<bool, P> glm::isCompNull (vecType< T, P > const & v,
T const & epsilon 
)
-
- -

Check whether a each component of a vector is null.

-
See Also
GLM_GTX_vector_query extensions.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNormalized (vecType< T, P > const & v,
T const & epsilon 
)
-
- -

Check whether a vector is normalized.

-
See Also
GLM_GTX_vector_query extensions.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::isNull (vecType< T, P > const & v,
T const & epsilon 
)
-
- -

Check whether a vector is null.

-
See Also
GLM_GTX_vector_query extensions.
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00236.html b/3party/glm/doc/api/a00236.html deleted file mode 100755 index 5656d3e592..0000000000 --- a/3party/glm/doc/api/a00236.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - -GLM: GLM_GTX_wrap - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
- -
- - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL genType mirrorRepeat (genType const &Texcoord)
 
template<typename genType >
GLM_FUNC_DECL 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

- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::clamp (genType const & Texcoord)
-
- -

Simulate GL_CLAMP OpenGL wrap mode.

-
See Also
GLM_GTX_wrap extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::mirrorRepeat (genType const & Texcoord)
-
- -

Simulate GL_MIRROR_REPEAT OpenGL wrap mode.

-
See Also
GLM_GTX_wrap extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::repeat (genType const & Texcoord)
-
- -

Simulate GL_REPEAT OpenGL wrap mode.

-
See Also
GLM_GTX_wrap extension.
- -
-
-
- - - - diff --git a/3party/glm/doc/api/a00237.html b/3party/glm/doc/api/a00237.html deleted file mode 100755 index e0f5817f4b..0000000000 --- a/3party/glm/doc/api/a00237.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - -GLM: GLM_VIRTREV_xstream: xml like output - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
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/3party/glm/doc/api/a00238.html b/3party/glm/doc/api/a00238.html deleted file mode 100755 index 6145b10ba6..0000000000 --- a/3party/glm/doc/api/a00238.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - -GLM: Gtx_scalar_relational - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
Gtx_scalar_relational
-
-
-
- - - - diff --git a/3party/glm/doc/api/a00240.html b/3party/glm/doc/api/a00240.html deleted file mode 100755 index 9d09b446ab..0000000000 --- a/3party/glm/doc/api/a00240.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -GLM: Todo List - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
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.
-
-
- - - - diff --git a/3party/glm/doc/api/bc_s.png b/3party/glm/doc/api/bc_s.png deleted file mode 100755 index 224b29aa9847d5a4b3902efd602b7ddf7d33e6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT diff --git a/3party/glm/doc/api/bdwn.png b/3party/glm/doc/api/bdwn.png deleted file mode 100755 index 940a0b950443a0bb1b216ac03c45b8a16c955452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT diff --git a/3party/glm/doc/api/dir_04e4a28b8d58785d7769817294d623f5.html b/3party/glm/doc/api/dir_04e4a28b8d58785d7769817294d623f5.html deleted file mode 100755 index ba4be44660..0000000000 --- a/3party/glm/doc/api/dir_04e4a28b8d58785d7769817294d623f5.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -GLM: virtrev Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
virtrev Directory Reference
-
-
- - - - -

-Files

file  xstream.hpp [code]
 
-
- - - - diff --git a/3party/glm/doc/api/dir_4d1ca7e3aefdd5b86b5dba8da1c3d503.html b/3party/glm/doc/api/dir_4d1ca7e3aefdd5b86b5dba8da1c3d503.html deleted file mode 100755 index b823311175..0000000000 --- a/3party/glm/doc/api/dir_4d1ca7e3aefdd5b86b5dba8da1c3d503.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - -GLM: detail Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
detail Directory Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  _features.hpp [code]
 
file  _fixes.hpp [code]
 
file  _literals.hpp [code]
 
file  _noise.hpp [code]
 
file  _swizzle.hpp [code]
 
file  _swizzle_func.hpp [code]
 
file  _vectorize.hpp [code]
 
file  func_common.hpp [code]
 
file  func_exponential.hpp [code]
 
file  func_geometric.hpp [code]
 
file  func_integer.hpp [code]
 
file  func_matrix.hpp [code]
 
file  func_noise.hpp [code]
 
file  func_packing.hpp [code]
 
file  func_trigonometric.hpp [code]
 
file  func_vector_relational.hpp [code]
 
file  hint.hpp [code]
 
file  intrinsic_common.hpp [code]
 
file  intrinsic_exponential.hpp [code]
 
file  intrinsic_geometric.hpp [code]
 
file  intrinsic_integer.hpp [code]
 
file  intrinsic_matrix.hpp [code]
 
file  intrinsic_trigonometric.hpp [code]
 
file  intrinsic_vector_relational.hpp [code]
 
file  precision.hpp [code]
 
file  setup.hpp [code]
 
file  type_float.hpp [code]
 
file  type_gentype.hpp [code]
 
file  type_half.hpp [code]
 
file  type_int.hpp [code]
 
file  type_mat.hpp [code]
 
file  type_mat2x2.hpp [code]
 
file  type_mat2x3.hpp [code]
 
file  type_mat2x4.hpp [code]
 
file  type_mat3x2.hpp [code]
 
file  type_mat3x3.hpp [code]
 
file  type_mat3x4.hpp [code]
 
file  type_mat4x2.hpp [code]
 
file  type_mat4x3.hpp [code]
 
file  type_mat4x4.hpp [code]
 
file  type_vec.hpp [code]
 
file  type_vec1.hpp [code]
 
file  type_vec2.hpp [code]
 
file  type_vec3.hpp [code]
 
file  type_vec4.hpp [code]
 
-
- - - - diff --git a/3party/glm/doc/api/dir_6e418c18ca640a0404613de005739e2e.html b/3party/glm/doc/api/dir_6e418c18ca640a0404613de005739e2e.html deleted file mode 100755 index 34916310d9..0000000000 --- a/3party/glm/doc/api/dir_6e418c18ca640a0404613de005739e2e.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -GLM: Documents Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
Documents Directory Reference
-
-
- - - - -

-Directories

directory  GitHub
 
-
- - - - diff --git a/3party/glm/doc/api/dir_89daaa151958d75313fcd89dd5f4bdb8.html b/3party/glm/doc/api/dir_89daaa151958d75313fcd89dd5f4bdb8.html deleted file mode 100755 index e123e91321..0000000000 --- a/3party/glm/doc/api/dir_89daaa151958d75313fcd89dd5f4bdb8.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -GLM: doc Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
doc Directory Reference
-
-
- - - - - - -

-Files

file  man.doxy [code]
 
file  pages.doxy [code]
 
-
- - - - diff --git a/3party/glm/doc/api/dir_8ceffd4ee35c3518d4e8bdc7e638efe8.html b/3party/glm/doc/api/dir_8ceffd4ee35c3518d4e8bdc7e638efe8.html deleted file mode 100755 index f8528c9f01..0000000000 --- a/3party/glm/doc/api/dir_8ceffd4ee35c3518d4e8bdc7e638efe8.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -GLM: Users Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
Users Directory Reference
-
-
- - - - -

-Directories

directory  Groove
 
-
- - - - diff --git a/3party/glm/doc/api/dir_968fb7988749a6351e7b3d0c1783dec4.html b/3party/glm/doc/api/dir_968fb7988749a6351e7b3d0c1783dec4.html deleted file mode 100755 index af15b98cb1..0000000000 --- a/3party/glm/doc/api/dir_968fb7988749a6351e7b3d0c1783dec4.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -GLM: Groove Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
Groove Directory Reference
-
-
- - - - -

-Directories

directory  Documents
 
-
- - - - diff --git a/3party/glm/doc/api/dir_a8d99eddac27b2368ab5252ce80ded11.html b/3party/glm/doc/api/dir_a8d99eddac27b2368ab5252ce80ded11.html deleted file mode 100755 index 5e24055d88..0000000000 --- a/3party/glm/doc/api/dir_a8d99eddac27b2368ab5252ce80ded11.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - -GLM: gtx Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
gtx Directory Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  associated_min_max.hpp [code]
 
file  bit.hpp [code]
 
file  closest_point.hpp [code]
 
file  color_space.hpp [code]
 
file  color_space_YCoCg.hpp [code]
 
file  compatibility.hpp [code]
 
file  component_wise.hpp [code]
 
file  gtx/constants.hpp [code]
 
file  dual_quaternion.hpp [code]
 
file  gtx/epsilon.hpp [code]
 
file  euler_angles.hpp [code]
 
file  extend.hpp [code]
 
file  extented_min_max.hpp [code]
 
file  fast_exponential.hpp [code]
 
file  fast_square_root.hpp [code]
 
file  fast_trigonometry.hpp [code]
 
file  gradient_paint.hpp [code]
 
file  handed_coordinate_space.hpp [code]
 
file  inertia.hpp [code]
 
file  int_10_10_10_2.hpp [code]
 
file  gtx/integer.hpp [code]
 
file  intersect.hpp [code]
 
file  io.hpp [code]
 
file  log_base.hpp [code]
 
file  matrix_cross_product.hpp [code]
 
file  matrix_interpolation.hpp [code]
 
file  matrix_major_storage.hpp [code]
 
file  matrix_operation.hpp [code]
 
file  matrix_query.hpp [code]
 
file  mixed_product.hpp [code]
 
file  multiple.hpp [code]
 
file  gtx/noise.hpp [code]
 
file  norm.hpp [code]
 
file  normal.hpp [code]
 
file  normalize_dot.hpp [code]
 
file  number_precision.hpp [code]
 
file  optimum_pow.hpp [code]
 
file  orthonormalize.hpp [code]
 
file  perpendicular.hpp [code]
 
file  polar_coordinates.hpp [code]
 
file  projection.hpp [code]
 
file  gtx/quaternion.hpp [code]
 
file  gtx/random.hpp [code]
 
file  raw_data.hpp [code]
 
file  gtx/reciprocal.hpp [code]
 
file  rotate_normalized_axis.hpp [code]
 
file  rotate_vector.hpp [code]
 
file  scalar_relational.hpp [code]
 
file  simd_mat4.hpp [code]
 
file  simd_quat.hpp [code]
 
file  simd_vec4.hpp [code]
 
file  spline.hpp [code]
 
file  std_based_type.hpp [code]
 
file  string_cast.hpp [code]
 
file  transform.hpp [code]
 
file  transform2.hpp [code]
 
file  gtx/ulp.hpp [code]
 
file  unsigned_int.hpp [code]
 
file  vec1.hpp [code]
 
file  vector_angle.hpp [code]
 
file  vector_query.hpp [code]
 
file  wrap.hpp [code]
 
-
- - - - diff --git a/3party/glm/doc/api/dir_e3ecd7863bd215c92a17f47e2ae3be43.html b/3party/glm/doc/api/dir_e3ecd7863bd215c92a17f47e2ae3be43.html deleted file mode 100755 index c6678a0edd..0000000000 --- a/3party/glm/doc/api/dir_e3ecd7863bd215c92a17f47e2ae3be43.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -GLM: GitHub Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
GitHub Directory Reference
-
-
- - - - -

-Directories

directory  glm
 
-
- - - - diff --git a/3party/glm/doc/api/dir_e50778361fd4ab4de52181ed9eb2b726.html b/3party/glm/doc/api/dir_e50778361fd4ab4de52181ed9eb2b726.html deleted file mode 100755 index 985b0ce68b..0000000000 --- a/3party/glm/doc/api/dir_e50778361fd4ab4de52181ed9eb2b726.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - -GLM: glm Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
glm Directory Reference
-
-
- - - - - - - - - - -

-Directories

directory  detail
 
directory  gtc
 
directory  gtx
 
directory  virtrev
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  common.hpp [code]
 
file  exponential.hpp [code]
 
file  ext.hpp [code]
 
file  fwd.hpp [code]
 
file  geometric.hpp [code]
 
file  glm.hpp [code]
 
file  integer.hpp [code]
 
file  mat2x2.hpp [code]
 
file  mat2x3.hpp [code]
 
file  mat2x4.hpp [code]
 
file  mat3x2.hpp [code]
 
file  mat3x3.hpp [code]
 
file  mat3x4.hpp [code]
 
file  mat4x2.hpp [code]
 
file  mat4x3.hpp [code]
 
file  mat4x4.hpp [code]
 
file  matrix.hpp [code]
 
file  packing.hpp [code]
 
file  trigonometric.hpp [code]
 
file  vec2.hpp [code]
 
file  vec3.hpp [code]
 
file  vec4.hpp [code]
 
file  vector_relational.hpp [code]
 
-
- - - - diff --git a/3party/glm/doc/api/dir_edf753475b928be648c1cf1c6443cf63.html b/3party/glm/doc/api/dir_edf753475b928be648c1cf1c6443cf63.html deleted file mode 100755 index e228e45e43..0000000000 --- a/3party/glm/doc/api/dir_edf753475b928be648c1cf1c6443cf63.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -GLM: glm Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
glm Directory Reference
-
-
- - - - - - -

-Directories

directory  doc
 
directory  glm
 
-
- - - - diff --git a/3party/glm/doc/api/dir_f7324829a002c536307b42a892c06451.html b/3party/glm/doc/api/dir_f7324829a002c536307b42a892c06451.html deleted file mode 100755 index bce28a8051..0000000000 --- a/3party/glm/doc/api/dir_f7324829a002c536307b42a892c06451.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - -GLM: gtc Directory Reference - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
gtc Directory Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  gtc/constants.hpp [code]
 
file  gtc/epsilon.hpp [code]
 
file  matrix_access.hpp [code]
 
file  matrix_integer.hpp [code]
 
file  matrix_inverse.hpp [code]
 
file  matrix_transform.hpp [code]
 
file  gtc/noise.hpp [code]
 
file  gtc/packing.hpp [code]
 
file  gtc/quaternion.hpp [code]
 
file  gtc/random.hpp [code]
 
file  gtc/reciprocal.hpp [code]
 
file  type_precision.hpp [code]
 
file  type_ptr.hpp [code]
 
file  gtc/ulp.hpp [code]
 
-
- - - - diff --git a/3party/glm/doc/api/doxygen.css b/3party/glm/doc/api/doxygen.css deleted file mode 100755 index f0f4a4f2b5..0000000000 --- a/3party/glm/doc/api/doxygen.css +++ /dev/null @@ -1,865 +0,0 @@ -/* The standard CSS for doxygen */ - -body, table, div, p, dl -{ - font-family: Lucida Grande, Calibri, Verdana; - font-size: 14px; -} - -body -{ - margin:0px; - padding:0px; - background-color:#bf6000; - 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/3party/glm/doc/api/doxygen.png b/3party/glm/doc/api/doxygen.png deleted file mode 100755 index 3ff17d807fd8aa003bed8bb2a69e8f0909592fd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3779 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 diff --git a/3party/glm/doc/api/dynsections.js b/3party/glm/doc/api/dynsections.js deleted file mode 100755 index 2f15470d72..0000000000 --- a/3party/glm/doc/api/dynsections.js +++ /dev/null @@ -1,104 +0,0 @@ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} -function toggleLevel(level) -{ - $('table.directory tr').each(function(){ - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - -GLM: File List - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
o*_features.hpp
o*_fixes.hpp
o*_literals.hpp
o*_noise.hppOpenGL Mathematics (glm.g-truc.net)
o*_swizzle.hpp
o*_swizzle_func.hpp
o*_vectorize.hpp
o*associated_min_max.hppOpenGL Mathematics (glm.g-truc.net)
o*bit.hppOpenGL Mathematics (glm.g-truc.net)
o*closest_point.hpp
o*color_space.hppOpenGL Mathematics (glm.g-truc.net)
o*color_space_YCoCg.hppOpenGL Mathematics (glm.g-truc.net)
o*common.hppOpenGL Mathematics (glm.g-truc.net)
o*compatibility.hppOpenGL Mathematics (glm.g-truc.net)
o*component_wise.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/constants.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/constants.hpp
o*dual_quaternion.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/epsilon.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/epsilon.hpp
o*euler_angles.hppOpenGL Mathematics (glm.g-truc.net)
o*exponential.hppOpenGL Mathematics (glm.g-truc.net)
o*ext.hpp
o*extend.hppOpenGL Mathematics (glm.g-truc.net)
o*extented_min_max.hppOpenGL Mathematics (glm.g-truc.net)
o*fast_exponential.hppOpenGL Mathematics (glm.g-truc.net)
o*fast_square_root.hppOpenGL Mathematics (glm.g-truc.net)
o*fast_trigonometry.hppOpenGL Mathematics (glm.g-truc.net)
o*func_common.hpp
o*func_exponential.hpp
o*func_geometric.hpp
o*func_integer.hpp
o*func_matrix.hpp
o*func_noise.hpp
o*func_packing.hpp
o*func_trigonometric.hpp
o*func_vector_relational.hpp
o*fwd.hppOpenGL Mathematics (glm.g-truc.net)
o*geometric.hppOpenGL Mathematics (glm.g-truc.net)
o*glm.hppOpenGL Mathematics (glm.g-truc.net)
o*gradient_paint.hppOpenGL Mathematics (glm.g-truc.net)
o*handed_coordinate_space.hppOpenGL Mathematics (glm.g-truc.net)
o*hint.hpp
o*inertia.hppOpenGL Mathematics (glm.g-truc.net)
o*int_10_10_10_2.hpp
o*gtx/integer.hppOpenGL Mathematics (glm.g-truc.net)
o*integer.hppOpenGL Mathematics (glm.g-truc.net)
o*intersect.hppOpenGL Mathematics (glm.g-truc.net)
o*intrinsic_common.hpp
o*intrinsic_exponential.hpp
o*intrinsic_geometric.hpp
o*intrinsic_integer.hpp
o*intrinsic_matrix.hpp
o*intrinsic_trigonometric.hpp
o*intrinsic_vector_relational.hpp
o*io.hppOpenGL Mathematics (glm.g-truc.net)
o*log_base.hppOpenGL Mathematics (glm.g-truc.net)
o*man.doxy
o*mat2x2.hppOpenGL Mathematics (glm.g-truc.net)
o*mat2x3.hppOpenGL Mathematics (glm.g-truc.net)
o*mat2x4.hppOpenGL Mathematics (glm.g-truc.net)
o*mat3x2.hppOpenGL Mathematics (glm.g-truc.net)
o*mat3x3.hppOpenGL Mathematics (glm.g-truc.net)
o*mat3x4.hppOpenGL Mathematics (glm.g-truc.net)
o*mat4x2.hppOpenGL Mathematics (glm.g-truc.net)
o*mat4x3.hpp
o*mat4x4.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_access.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_cross_product.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_integer.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_interpolation.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_inverse.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_major_storage.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_operation.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_query.hppOpenGL Mathematics (glm.g-truc.net)
o*matrix_transform.hppOpenGL Mathematics (glm.g-truc.net)
o*mixed_product.hppOpenGL Mathematics (glm.g-truc.net)
o*multiple.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/noise.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/noise.hpp
o*norm.hppOpenGL Mathematics (glm.g-truc.net)
o*normal.hppOpenGL Mathematics (glm.g-truc.net)
o*normalize_dot.hppOpenGL Mathematics (glm.g-truc.net)
o*number_precision.hppOpenGL Mathematics (glm.g-truc.net)
o*optimum_pow.hppOpenGL Mathematics (glm.g-truc.net)
o*orthonormalize.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/packing.hppOpenGL Mathematics (glm.g-truc.net)
o*packing.hppOpenGL Mathematics (glm.g-truc.net)
o*pages.doxy
o*perpendicular.hppOpenGL Mathematics (glm.g-truc.net)
o*polar_coordinates.hppOpenGL Mathematics (glm.g-truc.net)
o*precision.hpp
o*projection.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/quaternion.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/quaternion.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/random.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/random.hpp
o*raw_data.hppOpenGL Mathematics (glm.g-truc.net)
o*gtc/reciprocal.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/reciprocal.hpp
o*rotate_normalized_axis.hppOpenGL Mathematics (glm.g-truc.net)
o*rotate_vector.hppOpenGL Mathematics (glm.g-truc.net)
o*scalar_relational.hppOpenGL Mathematics (glm.g-truc.net)
o*setup.hpp
o*simd_mat4.hpp
o*simd_quat.hppOpenGL Mathematics (glm.g-truc.net)
o*simd_vec4.hppOpenGL Mathematics (glm.g-truc.net)
o*spline.hppOpenGL Mathematics (glm.g-truc.net)
o*std_based_type.hppOpenGL Mathematics (glm.g-truc.net)
o*string_cast.hppOpenGL Mathematics (glm.g-truc.net)
o*transform.hppOpenGL Mathematics (glm.g-truc.net)
o*transform2.hppOpenGL Mathematics (glm.g-truc.net)
o*trigonometric.hppOpenGL Mathematics (glm.g-truc.net)
o*type_float.hpp
o*type_gentype.hpp
o*type_half.hpp
o*type_int.hpp
o*type_mat.hpp
o*type_mat2x2.hpp
o*type_mat2x3.hpp
o*type_mat2x4.hpp
o*type_mat3x2.hpp
o*type_mat3x3.hpp
o*type_mat3x4.hpp
o*type_mat4x2.hpp
o*type_mat4x3.hpp
o*type_mat4x4.hpp
o*type_precision.hppOpenGL Mathematics (glm.g-truc.net)
o*type_ptr.hppOpenGL Mathematics (glm.g-truc.net)
o*type_vec.hpp
o*type_vec1.hpp
o*type_vec2.hpp
o*type_vec3.hpp
o*type_vec4.hpp
o*gtc/ulp.hppOpenGL Mathematics (glm.g-truc.net)
o*gtx/ulp.hpp
o*unsigned_int.hpp
o*vec1.hppOpenGL Mathematics (glm.g-truc.net)
o*vec2.hppOpenGL Mathematics (glm.g-truc.net)
o*vec3.hppOpenGL Mathematics (glm.g-truc.net)
o*vec4.hppOpenGL Mathematics (glm.g-truc.net)
o*vector_angle.hppOpenGL Mathematics (glm.g-truc.net)
o*vector_query.hppOpenGL Mathematics (glm.g-truc.net)
o*vector_relational.hppOpenGL Mathematics (glm.g-truc.net)
o*wrap.hppOpenGL Mathematics (glm.g-truc.net)
\*xstream.hppOpenGL Mathematics (glm.g-truc.net)
-
-
- - - - diff --git a/3party/glm/doc/api/ftv2blank.png b/3party/glm/doc/api/ftv2blank.png deleted file mode 100755 index 63c605bb4c3d941c921a4b6cfa74951e946bcb48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/3party/glm/doc/api/ftv2cl.png b/3party/glm/doc/api/ftv2cl.png deleted file mode 100755 index 132f6577bf7f085344904602815a260d29f55d9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmV;$0XqJPP)VBF;ev;toEj8_OB0EQg5eYilIj#JZG_m^33l3^k4mtzx!TVD?g)Y$ zrvwRDSqT!wLIM$dWCIa$vtxE|mzbTzu-y&$FvF6WA2a{Wr1g}`WdPT-0JzEZ0IxAv z-Z+ejZc&H;I5-pb_SUB}04j0^V)3t{`z<7asDl2Tw3w3sP%)0^8$bhEg)IOTBcRXv zFfq~3&gvJ$F-U7mpBW8z1GY~HK&7h4^YI~Orv~wLnC0PP_dAkv;nzX{9Q|8Gv=2ca z@v)c9T;D#h`TZ2X&&$ff2wedmot995de~-s3I)yauahg;7qn*?1n?F$e+PwP37}~; z1NKUk7reVK^7A;$QRW7qAx40HHUZ<|k3U%nz(Ec`#i+q9K!dgcROAlCS?`L= v>#=f?wF5ZND!1uAfQsk;KN^4&*8~0npJiJ%2dj9(00000NkvXXu0mjfWVFf_ diff --git a/3party/glm/doc/api/ftv2doc.png b/3party/glm/doc/api/ftv2doc.png deleted file mode 100755 index 17edabff95f7b8da13c9516a04efe05493c29501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/3party/glm/doc/api/ftv2folderclosed.png b/3party/glm/doc/api/ftv2folderclosed.png deleted file mode 100755 index bb8ab35edce8e97554e360005ee9fc5bffb36e66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA diff --git a/3party/glm/doc/api/ftv2lastnode.png b/3party/glm/doc/api/ftv2lastnode.png deleted file mode 100755 index 63c605bb4c3d941c921a4b6cfa74951e946bcb48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/3party/glm/doc/api/ftv2link.png b/3party/glm/doc/api/ftv2link.png deleted file mode 100755 index 17edabff95f7b8da13c9516a04efe05493c29501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/3party/glm/doc/api/ftv2mlastnode.png b/3party/glm/doc/api/ftv2mlastnode.png deleted file mode 100755 index 0b63f6d38c4b9ec907b820192ebe9724ed6eca22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmVkw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 diff --git a/3party/glm/doc/api/ftv2mnode.png b/3party/glm/doc/api/ftv2mnode.png deleted file mode 100755 index 0b63f6d38c4b9ec907b820192ebe9724ed6eca22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmVkw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 diff --git a/3party/glm/doc/api/ftv2mo.png b/3party/glm/doc/api/ftv2mo.png deleted file mode 100755 index 4bfb80f76e65815989a9350ad79d8ce45380e2b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmV;E0c`$>P)${!fXv7NWJ%@%u4(KapRY>T6_x;E zxE7kt!}Tiw8@d9Sd`rTGum>z#Q14vIm`wm1#-byD1muMi02@YNO5LRF0o!Y{`a!Ya z{^&p0Su|s705&2QxmqdexG+-zNKL3f@8gTQSJrKByfo+oNJ^-{|Mn||Q5SDwjQVsS zr1}7o5-QMs>gYIMD>GRw@$lT`z4r-_m{5U#cR{urD_)TOeY)(UD|qZ^&y`IVijqk~ xs(9-kWFr7E^!lgi8GsFK5kOY_{Xbgf0^etEU%fLevs?fG002ovPDHLkV1nB&vX1}& diff --git a/3party/glm/doc/api/ftv2node.png b/3party/glm/doc/api/ftv2node.png deleted file mode 100755 index 63c605bb4c3d941c921a4b6cfa74951e946bcb48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/3party/glm/doc/api/ftv2ns.png b/3party/glm/doc/api/ftv2ns.png deleted file mode 100755 index 72e3d71c2892d6f00e259facebc88b45f6db2e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmV-~0ek+5P)f+++#cT|!CkD&4pnIkeMEUEM*>`*9>+Juji$!h-mW%M^8s9957{3nvbrz^&=u<~TAUrFROkmt%^F~Ez+-c53Lv%iH3d38!Rv?K zrb&MYAhp;Gf<}wS;9ZZq2@;!uYG;=Z>~GKE^{HD4keu}lnyqhc>kWX^tQn|warJ~h zT+rtMkdz6aHoN%z(o|&wpu@@OpJnF_z{PA)6(FHw02iHslz^(N{4*+K9)QJHR87wT iTyp>aXaF{u2lxRou|^4tux6eB0000^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K diff --git a/3party/glm/doc/api/ftv2pnode.png b/3party/glm/doc/api/ftv2pnode.png deleted file mode 100755 index c6ee22f937a07d1dbfc27c669d11f8ed13e2f152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmV^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K diff --git a/3party/glm/doc/api/ftv2splitbar.png b/3party/glm/doc/api/ftv2splitbar.png deleted file mode 100755 index fe895f2c58179b471a22d8320b39a4bd7312ec8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T diff --git a/3party/glm/doc/api/ftv2vertline.png b/3party/glm/doc/api/ftv2vertline.png deleted file mode 100755 index 63c605bb4c3d941c921a4b6cfa74951e946bcb48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/3party/glm/doc/api/index.html b/3party/glm/doc/api/index.html deleted file mode 100755 index 5055de143f..0000000000 --- a/3party/glm/doc/api/index.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - -GLM: OpenGL Mathematics - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
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
  • -
  • Intel C++ Composer XE 2013 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.nosp@m.-tru.nosp@m.c.net.

-
- - - - diff --git a/3party/glm/doc/api/jquery.js b/3party/glm/doc/api/jquery.js deleted file mode 100755 index 6aa2e4c22a..0000000000 --- a/3party/glm/doc/api/jquery.js +++ /dev/null @@ -1,39 +0,0 @@ -/*! - * jQuery JavaScript Library v1.7.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Mon Nov 21 21:11:03 2011 -0500 - */ -(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType; -if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1 -},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av); -ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},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(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length; -if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b -})}})(window); -/*! - PowerTip - v1.2.0 - 2013-04-03 - http://stevenbenner.github.com/jquery-powertip/ - Copyright (c) 2013 Steven Benner (http://stevenbenner.com/). - Released under MIT license. - https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt -*/ -(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.topI||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.leftF){H|=p.left}if(M.left+L>F||M.right - - - - - -GLM: Modules - - - - - - -
-
-
- - - - - -
-
GLM -  0.9.5 -
-
- - - - - -
-
-
Modules
-
-
-
Here is a list of all modules:
-
[detail level 123]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
oGTC Extensions (Stable)Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program
|oGLM_GTC_constantsAllow to perform bit operations on integer values
|oGLM_GTC_epsilonComparison functions for a user defined epsilon values
|oGLM_GTC_matrix_accessDefines functions to access rows or columns of a matrix easily
|oGLM_GTC_matrix_integerDefines a number of matrices with integer types
|oGLM_GTC_matrix_inverseDefines additional matrix inverting functions
|oGLM_GTC_matrix_transformDefines functions that generate common transformation matrices
|oGLM_GTC_noiseDefines 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
|oGLM_GTC_packingThis extension provides a set of function to convert vertors to packed formats
|oGLM_GTC_quaternionDefines a templated quaternion type and several quaternion operations
|oGLM_GTC_randomGenerate random number from various distribution methods
|oGLM_GTC_reciprocalDefine secant, cosecant and cotangent functions
|oGLM_GTC_type_precisionDefines specific C++-based precision types
|oGLM_GTC_type_ptrHandles the interaction between pointers and vector, matrix types
|oGLM_GTC_ulpAllow the measurement of the accuracy of a function against a reference implementation
|oGLM_GTX_dual_quaternionDefines a templated dual-quaternion type and several dual-quaternion operations
|\GLM_GTX_rotate_normalized_axisQuaternions and matrices rotations around normalized axis
oGTX Extensions (Experimental)Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program
|oGLM_GTX_associated_min_maxMin and max functions that return associated values not the compared onces
|oGLM_GTX_bitAllow to perform bit operations on integer values
|oGLM_GTX_closest_pointFind the point on a straight line which is the closet of a point
|oGLM_GTX_color_spaceRelated to RGB to HSV conversions and operations
|oGLM_GTX_color_space_YCoCgRGB to YCoCg conversions and operations
|oGLM_GTX_compatibilityProvide functions to increase the compatibility with Cg and HLSL languages
|oGLM_GTX_component_wiseOperations between components of a type
|oGLM_GTX_euler_anglesBuild matrices from Euler angles
|oGLM_GTX_extendExtend a position from a source to a position at a defined length
|oGLM_GTX_extented_min_maxMin and max functions for 3 to 4 parameters
|oGLM_GTX_fast_exponentialFast but less accurate implementations of exponential based functions
|oGLM_GTX_fast_square_rootFast but less accurate implementations of square root based functions
|oGLM_GTX_fast_trigonometryFast but less accurate implementations of trigonometric functions
|oGLM_GTX_gradient_paintFunctions that return the color of procedural gradient for specific coordinates
|oGLM_GTX_handed_coordinate_spaceTo know if a set of three basis vectors defines a right or left-handed coordinate system
|oGLM_GTX_inertiaCreate inertia matrices
|oGLM_GTX_integerAdd support for integer for core functions
|oGLM_GTX_intersectAdd intersection functions
|oGLM_GTX_ioStd::[w]ostream support for glm types
|oGLM_GTX_log_baseLogarithm for any base
|oGLM_GTX_matrix_cross_productBuild cross product matrices
|oGLM_GTX_matrix_interpolationAllows to directly interpolate two exiciting matrices
|oGLM_GTX_matrix_major_storageBuild matrices with specific matrix order, row or column
|oGLM_GTX_matrix_operationBuild diagonal matrices from vectors
|oGLM_GTX_matrix_queryQuery to evaluate matrix properties
|oGLM_GTX_mixed_producteMixed product of 3 vectors
|oGLM_GTX_multipleFind the closest number of a number multiple of other number
|oGLM_GTX_normVarious ways to compute vector norms
|oGLM_GTX_normalCompute the normal of a triangle
|oGLM_GTX_normalize_dotDot product of vectors that need to be normalize with a single square root
|oGLM_GTX_number_precisionDefined size types
|oGLM_GTX_optimum_powInteger exponentiation of power functions
|oGLM_GTX_orthonormalizeOrthonormalize matrices
|oGLM_GTX_perpendicularPerpendicular of a vector from other one
|oGLM_GTX_polar_coordinatesConversion from Euclidean space to polar space and revert
|oGLM_GTX_projectionProjection of a vector to other one
|oGLM_GTX_quaternionExtented quaternion types and functions
|oGLM_GTX_raw_dataProjection of a vector to other one
|oGLM_GTX_rotate_vectorFunction to directly rotate a vector
|oGLM_GTX_simd_mat4SIMD implementation of mat4 type
|oGLM_GTX_simd_quatSIMD implementation of quat type
|oGLM_GTX_splineSpline functions
|oGLM_GTX_std_based_typeAdds vector types based on STL value types
|oGLM_GTX_string_castSetup strings for GLM type values
|oGLM_GTX_transformAdd transformation matrices
|oGLM_GTX_transform2Add extra transformation matrices
|oGLM_GTX_vec1Add vec1, ivec1, uvec1 and bvec1 types
|oGLM_GTX_vector_angleCompute angle between vectors
|oGLM_GTX_vector_queryQuery informations of vector types
|\GLM_GTX_wrapWrapping mode of texture coordinates
oVIRTREV ExtensionsExtensions develop and maintain by Mathieu [matrem] Roumillac (http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showprofile&User=22660)
|\GLM_VIRTREV_xstream: xml like outputStreaming vector and matrix in a xml way
oGLM CoreThe core of GLM, which implements exactly and only the GLSL specification to the degree possible
|oCommon functionsThese all operate component-wise
|oExponential functionsThese all operate component-wise
|oGeometric functionsThese operate on vectors as vectors, not component-wise
|oInteger functionsThese all operate component-wise
|oMatrix functionsFor 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
|oNoise functionsNoise functions are stochastic functions that can be used to increase visual complexity
|oFloating-Point Pack and Unpack FunctionsThese functions do not operate component-wise, rather as described in each case
|oAngle and Trigonometry FunctionsFunction parameters specified as angle are assumed to be in units of radians
|oVector Relational FunctionsRelational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results
|oTypesThe standard types defined by the specification
||\Precision typesNon-GLSL types that are used to define precision-based types
|oPrecision typesNon-GLSL types that are used to define precision-based types
|\Template typesThe generic template types used as the basis for the core types
\Gtx_scalar_relational
-
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers.html b/3party/glm/doc/api/namespacemembers.html deleted file mode 100755 index f7252794d7..0000000000 --- a/3party/glm/doc/api/namespacemembers.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- a -

    -
  • abs() -: glm -
  • -
  • acos() -: glm -
  • -
  • acosh() -: glm -
  • -
  • acot() -: glm -
  • -
  • acoth() -: glm -
  • -
  • acsc() -: glm -
  • -
  • acsch() -: glm -
  • -
  • affineInverse() -: glm -
  • -
  • all() -: glm -
  • -
  • angle() -: glm -
  • -
  • angleAxis() -: glm -
  • -
  • any() -: glm -
  • -
  • areCollinear() -: glm -
  • -
  • areOrthogonal() -: glm -
  • -
  • areOrthonormal() -: glm -
  • -
  • asec() -: glm -
  • -
  • asech() -: glm -
  • -
  • asin() -: glm -
  • -
  • asinh() -: glm -
  • -
  • associatedMax() -: glm -
  • -
  • associatedMin() -: glm -
  • -
  • atan() -: glm -
  • -
  • atan2() -: glm -
  • -
  • atanh() -: glm -
  • -
  • axis() -: glm -
  • -
  • axisAngle() -: glm -
  • -
  • axisAngleMatrix() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x62.html b/3party/glm/doc/api/namespacemembers_0x62.html deleted file mode 100755 index ebf1b176f0..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x62.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- b -

    -
  • ballRand() -: glm -
  • -
  • bitCount() -: glm -
  • -
  • bitfieldExtract() -: glm -
  • -
  • bitfieldInsert() -: glm -
  • -
  • bitfieldInterleave() -: glm -
  • -
  • bitfieldReverse() -: glm -
  • -
  • bitRevert() -: glm -
  • -
  • bitRotateLeft() -: glm -
  • -
  • bitRotateRight() -: glm -
  • -
  • bool1 -: glm -
  • -
  • bool1x1 -: glm -
  • -
  • bool2 -: glm -
  • -
  • bool2x2 -: glm -
  • -
  • bool2x3 -: glm -
  • -
  • bool2x4 -: glm -
  • -
  • bool3 -: glm -
  • -
  • bool3x2 -: glm -
  • -
  • bool3x3 -: glm -
  • -
  • bool3x4 -: glm -
  • -
  • bool4 -: glm -
  • -
  • bool4x2 -: glm -
  • -
  • bool4x3 -: glm -
  • -
  • bool4x4 -: glm -
  • -
  • bvec1 -: glm -
  • -
  • bvec2 -: glm -
  • -
  • bvec3 -: glm -
  • -
  • bvec4 -: glm -
  • -
  • byte -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x63.html b/3party/glm/doc/api/namespacemembers_0x63.html deleted file mode 100755 index 6ca90fc71a..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x63.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- c -

    -
  • catmullRom() -: glm -
  • -
  • ceil() -: glm -
  • -
  • circularRand() -: glm -
  • -
  • clamp() -: glm -
  • -
  • closestPointOnLine() -: glm -
  • -
  • colMajor2() -: glm -
  • -
  • colMajor3() -: glm -
  • -
  • colMajor4() -: glm -
  • -
  • column() -: glm -
  • -
  • compAdd() -: glm -
  • -
  • compMax() -: glm -
  • -
  • compMin() -: glm -
  • -
  • compMul() -: glm -
  • -
  • conjugate() -: glm -
  • -
  • cos() -: glm -
  • -
  • cosh() -: glm -
  • -
  • cot() -: glm -
  • -
  • coth() -: glm -
  • -
  • cross() -: glm -
  • -
  • csc() -: glm -
  • -
  • csch() -: glm -
  • -
  • cubic() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x64.html b/3party/glm/doc/api/namespacemembers_0x64.html deleted file mode 100755 index cc37030751..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x64.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- d -

    -
  • ddualquat -: glm -
  • -
  • degrees() -: glm -
  • -
  • diagonal2x2() -: glm -
  • -
  • diagonal2x3() -: glm -
  • -
  • diagonal2x4() -: glm -
  • -
  • diagonal3x2() -: glm -
  • -
  • diagonal3x3() -: glm -
  • -
  • diagonal3x4() -: glm -
  • -
  • diagonal4x2() -: glm -
  • -
  • diagonal4x3() -: glm -
  • -
  • diagonal4x4() -: glm -
  • -
  • diskRand() -: glm -
  • -
  • distance() -: glm -
  • -
  • distance2() -: glm -
  • -
  • dmat2 -: glm -
  • -
  • dmat2x2 -: glm -
  • -
  • dmat2x3 -: glm -
  • -
  • dmat2x4 -: glm -
  • -
  • dmat3 -: glm -
  • -
  • dmat3x2 -: glm -
  • -
  • dmat3x3 -: glm -
  • -
  • dmat3x4 -: glm -
  • -
  • dmat4 -: glm -
  • -
  • dmat4x2 -: glm -
  • -
  • dmat4x3 -: glm -
  • -
  • dmat4x4 -: glm -
  • -
  • dot() -: glm -
  • -
  • double1 -: glm -
  • -
  • double1x1 -: glm -
  • -
  • double2 -: glm -
  • -
  • double2x2 -: glm -
  • -
  • double2x3 -: glm -
  • -
  • double2x4 -: glm -
  • -
  • double3 -: glm -
  • -
  • double3x2 -: glm -
  • -
  • double3x3 -: glm -
  • -
  • double3x4 -: glm -
  • -
  • double4 -: glm -
  • -
  • double4x2 -: glm -
  • -
  • double4x3 -: glm -
  • -
  • double4x4 -: glm -
  • -
  • dquat -: glm -
  • -
  • dualquat -: glm -
  • -
  • dualquat_cast() -: glm -
  • -
  • dvec2 -: glm -
  • -
  • dvec3 -: glm -
  • -
  • dvec4 -: glm -
  • -
  • dword -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x65.html b/3party/glm/doc/api/namespacemembers_0x65.html deleted file mode 100755 index 2bcfecdc5e..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x65.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- e -

    -
  • e() -: glm -
  • -
  • epsilon() -: glm -
  • -
  • epsilonEqual() -: glm -
  • -
  • epsilonNotEqual() -: glm -
  • -
  • equal() -: glm -
  • -
  • euclidean() -: glm -
  • -
  • euler() -: glm -
  • -
  • eulerAngles() -: glm -
  • -
  • eulerAngleX() -: glm -
  • -
  • eulerAngleXY() -: glm -
  • -
  • eulerAngleXZ() -: glm -
  • -
  • eulerAngleY() -: glm -
  • -
  • eulerAngleYX() -: glm -
  • -
  • eulerAngleYXZ() -: glm -
  • -
  • eulerAngleYZ() -: glm -
  • -
  • eulerAngleZ() -: glm -
  • -
  • eulerAngleZX() -: glm -
  • -
  • eulerAngleZY() -: glm -
  • -
  • exp() -: glm -
  • -
  • exp2() -: glm -
  • -
  • extend() -: glm -
  • -
  • extractMatrixRotation() -: glm -
  • -
  • extractRealComponent() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x66.html b/3party/glm/doc/api/namespacemembers_0x66.html deleted file mode 100755 index 481dd945e9..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x66.html +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- f -

    -
  • f32 -: glm -
  • -
  • f32mat2 -: glm -
  • -
  • f32mat2x2 -: glm -
  • -
  • f32mat2x3 -: glm -
  • -
  • f32mat2x4 -: glm -
  • -
  • f32mat3 -: glm -
  • -
  • f32mat3x2 -: glm -
  • -
  • f32mat3x3 -: glm -
  • -
  • f32mat3x4 -: glm -
  • -
  • f32mat4 -: glm -
  • -
  • f32mat4x2 -: glm -
  • -
  • f32mat4x3 -: glm -
  • -
  • f32mat4x4 -: glm -
  • -
  • f32quat -: glm -
  • -
  • f32vec1 -: glm -
  • -
  • f32vec2 -: glm -
  • -
  • f32vec3 -: glm -
  • -
  • f32vec4 -: glm -
  • -
  • f64 -: glm -
  • -
  • f64mat2 -: glm -
  • -
  • f64mat2x2 -: glm -
  • -
  • f64mat2x3 -: glm -
  • -
  • f64mat2x4 -: glm -
  • -
  • f64mat3 -: glm -
  • -
  • f64mat3x2 -: glm -
  • -
  • f64mat3x3 -: glm -
  • -
  • f64mat3x4 -: glm -
  • -
  • f64mat4 -: glm -
  • -
  • f64mat4x2 -: glm -
  • -
  • f64mat4x3 -: glm -
  • -
  • f64mat4x4 -: glm -
  • -
  • f64quat -: glm -
  • -
  • f64vec1 -: glm -
  • -
  • f64vec2 -: glm -
  • -
  • f64vec3 -: glm -
  • -
  • f64vec4 -: glm -
  • -
  • faceforward() -: glm -
  • -
  • factorial() -: glm -
  • -
  • fastAcos() -: glm -
  • -
  • fastAsin() -: glm -
  • -
  • fastAtan() -: glm -
  • -
  • fastCos() -: glm -
  • -
  • fastDistance() -: glm -
  • -
  • fastExp() -: glm -
  • -
  • fastExp2() -: glm -
  • -
  • fastInverseSqrt() -: glm -
  • -
  • fastLength() -: glm -
  • -
  • fastLn() -: glm -
  • -
  • fastLog() -: glm -
  • -
  • fastLog2() -: glm -
  • -
  • fastMix() -: glm -
  • -
  • fastNormalize() -: glm -
  • -
  • fastNormalizeDot() -: glm -
  • -
  • fastPow() -: glm -
  • -
  • fastSin() -: glm -
  • -
  • fastSqrt() -: glm -
  • -
  • fastTan() -: glm -
  • -
  • fdualquat -: glm -
  • -
  • fillBitfieldWithOne() -: glm -
  • -
  • fillBitfieldWithZero() -: glm -
  • -
  • findLSB() -: glm -
  • -
  • findMSB() -: glm -
  • -
  • float1 -: glm -
  • -
  • float1x1 -: glm -
  • -
  • float2 -: glm -
  • -
  • float2x2 -: glm -
  • -
  • float2x3 -: glm -
  • -
  • float2x4 -: glm -
  • -
  • float3 -: glm -
  • -
  • float32 -: glm -
  • -
  • float32_t -: glm -
  • -
  • float3x2 -: glm -
  • -
  • float3x3 -: glm -
  • -
  • float3x4 -: glm -
  • -
  • float4 -: glm -
  • -
  • float4x2 -: glm -
  • -
  • float4x3 -: glm -
  • -
  • float4x4 -: glm -
  • -
  • float64 -: glm -
  • -
  • float64_t -: glm -
  • -
  • float_distance() -: glm -
  • -
  • floatBitsToInt() -: glm -
  • -
  • floatBitsToUint() -: glm -
  • -
  • floor() -: glm -
  • -
  • floor_log2() -: glm -
  • -
  • fma() -: glm -
  • -
  • fmat2 -: glm -
  • -
  • fmat2x2 -: glm -
  • -
  • fmat2x3 -: glm -
  • -
  • fmat2x4 -: glm -
  • -
  • fmat3 -: glm -
  • -
  • fmat3x2 -: glm -
  • -
  • fmat3x3 -: glm -
  • -
  • fmat3x4 -: glm -
  • -
  • fmat4 -: glm -
  • -
  • fmat4x2 -: glm -
  • -
  • fmat4x3 -: glm -
  • -
  • fmat4x4 -: glm -
  • -
  • fquat -: glm -
  • -
  • fract() -: glm -
  • -
  • frexp() -: glm -
  • -
  • frustum() -: glm -
  • -
  • fvec1 -: glm -
  • -
  • fvec2 -: glm -
  • -
  • fvec3 -: glm -
  • -
  • fvec4 -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x67.html b/3party/glm/doc/api/namespacemembers_0x67.html deleted file mode 100755 index bf26536aed..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x67.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- g -

    -
  • gaussRand() -: glm -
  • -
  • golden_ratio() -: glm -
  • -
  • greaterThan() -: glm -
  • -
  • greaterThanEqual() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x68.html b/3party/glm/doc/api/namespacemembers_0x68.html deleted file mode 100755 index d765b38614..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x68.html +++ /dev/null @@ -1,672 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- h -

    -
  • half_pi() -: glm -
  • -
  • hermite() -: glm -
  • -
  • higherMultiple() -: glm -
  • -
  • highestBitValue() -: glm -
  • -
  • highp_bvec1 -: glm -
  • -
  • highp_bvec2 -: glm -
  • -
  • highp_bvec3 -: glm -
  • -
  • highp_bvec4 -: glm -
  • -
  • highp_ddualquat -: glm -
  • -
  • highp_dmat2 -: glm -
  • -
  • highp_dmat2x2 -: glm -
  • -
  • highp_dmat2x3 -: glm -
  • -
  • highp_dmat2x4 -: glm -
  • -
  • highp_dmat3 -: glm -
  • -
  • highp_dmat3x2 -: glm -
  • -
  • highp_dmat3x3 -: glm -
  • -
  • highp_dmat3x4 -: glm -
  • -
  • highp_dmat4 -: glm -
  • -
  • highp_dmat4x2 -: glm -
  • -
  • highp_dmat4x3 -: glm -
  • -
  • highp_dmat4x4 -: glm -
  • -
  • highp_dquat -: glm -
  • -
  • highp_dualquat -: glm -
  • -
  • highp_dvec2 -: glm -
  • -
  • highp_dvec3 -: glm -
  • -
  • highp_dvec4 -: glm -
  • -
  • highp_f32 -: glm -
  • -
  • highp_f32mat2 -: glm -
  • -
  • highp_f32mat2x2 -: glm -
  • -
  • highp_f32mat2x3 -: glm -
  • -
  • highp_f32mat2x4 -: glm -
  • -
  • highp_f32mat3 -: glm -
  • -
  • highp_f32mat3x2 -: glm -
  • -
  • highp_f32mat3x3 -: glm -
  • -
  • highp_f32mat3x4 -: glm -
  • -
  • highp_f32mat4 -: glm -
  • -
  • highp_f32mat4x2 -: glm -
  • -
  • highp_f32mat4x3 -: glm -
  • -
  • highp_f32mat4x4 -: glm -
  • -
  • highp_f32quat -: glm -
  • -
  • highp_f32vec1 -: glm -
  • -
  • highp_f32vec2 -: glm -
  • -
  • highp_f32vec3 -: glm -
  • -
  • highp_f32vec4 -: glm -
  • -
  • highp_f64 -: glm -
  • -
  • highp_f64mat2 -: glm -
  • -
  • highp_f64mat2x2 -: glm -
  • -
  • highp_f64mat2x3 -: glm -
  • -
  • highp_f64mat2x4 -: glm -
  • -
  • highp_f64mat3 -: glm -
  • -
  • highp_f64mat3x2 -: glm -
  • -
  • highp_f64mat3x3 -: glm -
  • -
  • highp_f64mat3x4 -: glm -
  • -
  • highp_f64mat4 -: glm -
  • -
  • highp_f64mat4x2 -: glm -
  • -
  • highp_f64mat4x3 -: glm -
  • -
  • highp_f64mat4x4 -: glm -
  • -
  • highp_f64quat -: glm -
  • -
  • highp_f64vec1 -: glm -
  • -
  • highp_f64vec2 -: glm -
  • -
  • highp_f64vec3 -: glm -
  • -
  • highp_f64vec4 -: glm -
  • -
  • highp_fdualquat -: glm -
  • -
  • highp_float -: glm -
  • -
  • highp_float32 -: glm -
  • -
  • highp_float32_t -: glm -
  • -
  • highp_float64 -: glm -
  • -
  • highp_float64_t -: glm -
  • -
  • highp_fmat2 -: glm -
  • -
  • highp_fmat2x2 -: glm -
  • -
  • highp_fmat2x3 -: glm -
  • -
  • highp_fmat2x4 -: glm -
  • -
  • highp_fmat3 -: glm -
  • -
  • highp_fmat3x2 -: glm -
  • -
  • highp_fmat3x3 -: glm -
  • -
  • highp_fmat3x4 -: glm -
  • -
  • highp_fmat4 -: glm -
  • -
  • highp_fmat4x2 -: glm -
  • -
  • highp_fmat4x3 -: glm -
  • -
  • highp_fmat4x4 -: glm -
  • -
  • highp_fquat -: glm -
  • -
  • highp_fvec1 -: glm -
  • -
  • highp_fvec2 -: glm -
  • -
  • highp_fvec3 -: glm -
  • -
  • highp_fvec4 -: glm -
  • -
  • highp_i16 -: glm -
  • -
  • highp_i16vec1 -: glm -
  • -
  • highp_i16vec2 -: glm -
  • -
  • highp_i16vec3 -: glm -
  • -
  • highp_i16vec4 -: glm -
  • -
  • highp_i32 -: glm -
  • -
  • highp_i32vec1 -: glm -
  • -
  • highp_i32vec2 -: glm -
  • -
  • highp_i32vec3 -: glm -
  • -
  • highp_i32vec4 -: glm -
  • -
  • highp_i64 -: glm -
  • -
  • highp_i64vec1 -: glm -
  • -
  • highp_i64vec2 -: glm -
  • -
  • highp_i64vec3 -: glm -
  • -
  • highp_i64vec4 -: glm -
  • -
  • highp_i8 -: glm -
  • -
  • highp_i8vec1 -: glm -
  • -
  • highp_i8vec2 -: glm -
  • -
  • highp_i8vec3 -: glm -
  • -
  • highp_i8vec4 -: glm -
  • -
  • highp_imat2 -: glm -
  • -
  • highp_imat2x2 -: glm -
  • -
  • highp_imat2x3 -: glm -
  • -
  • highp_imat2x4 -: glm -
  • -
  • highp_imat3 -: glm -
  • -
  • highp_imat3x2 -: glm -
  • -
  • highp_imat3x3 -: glm -
  • -
  • highp_imat3x4 -: glm -
  • -
  • highp_imat4 -: glm -
  • -
  • highp_imat4x2 -: glm -
  • -
  • highp_imat4x3 -: glm -
  • -
  • highp_imat4x4 -: glm -
  • -
  • highp_int -: glm -
  • -
  • highp_int16 -: glm -
  • -
  • highp_int16_t -: glm -
  • -
  • highp_int32 -: glm -
  • -
  • highp_int32_t -: glm -
  • -
  • highp_int64 -: glm -
  • -
  • highp_int64_t -: glm -
  • -
  • highp_int8 -: glm -
  • -
  • highp_int8_t -: glm -
  • -
  • highp_ivec1 -: glm -
  • -
  • highp_ivec2 -: glm -
  • -
  • highp_ivec3 -: glm -
  • -
  • highp_ivec4 -: glm -
  • -
  • highp_mat2 -: glm -
  • -
  • highp_mat2x2 -: glm -
  • -
  • highp_mat2x3 -: glm -
  • -
  • highp_mat2x4 -: glm -
  • -
  • highp_mat3 -: glm -
  • -
  • highp_mat3x2 -: glm -
  • -
  • highp_mat3x3 -: glm -
  • -
  • highp_mat3x4 -: glm -
  • -
  • highp_mat4 -: glm -
  • -
  • highp_mat4x2 -: glm -
  • -
  • highp_mat4x3 -: glm -
  • -
  • highp_mat4x4 -: glm -
  • -
  • highp_quat -: glm -
  • -
  • highp_u16 -: glm -
  • -
  • highp_u16vec1 -: glm -
  • -
  • highp_u16vec2 -: glm -
  • -
  • highp_u16vec3 -: glm -
  • -
  • highp_u16vec4 -: glm -
  • -
  • highp_u32 -: glm -
  • -
  • highp_u32vec1 -: glm -
  • -
  • highp_u32vec2 -: glm -
  • -
  • highp_u32vec3 -: glm -
  • -
  • highp_u32vec4 -: glm -
  • -
  • highp_u64 -: glm -
  • -
  • highp_u64vec1 -: glm -
  • -
  • highp_u64vec2 -: glm -
  • -
  • highp_u64vec3 -: glm -
  • -
  • highp_u64vec4 -: glm -
  • -
  • highp_u8 -: glm -
  • -
  • highp_u8vec1 -: glm -
  • -
  • highp_u8vec2 -: glm -
  • -
  • highp_u8vec3 -: glm -
  • -
  • highp_u8vec4 -: glm -
  • -
  • highp_uint -: glm -
  • -
  • highp_uint16 -: glm -
  • -
  • highp_uint16_t -: glm -
  • -
  • highp_uint32 -: glm -
  • -
  • highp_uint32_t -: glm -
  • -
  • highp_uint64 -: glm -
  • -
  • highp_uint64_t -: glm -
  • -
  • highp_uint8 -: glm -
  • -
  • highp_uint8_t -: glm -
  • -
  • highp_umat2 -: glm -
  • -
  • highp_umat2x2 -: glm -
  • -
  • highp_umat2x3 -: glm -
  • -
  • highp_umat2x4 -: glm -
  • -
  • highp_umat3 -: glm -
  • -
  • highp_umat3x2 -: glm -
  • -
  • highp_umat3x3 -: glm -
  • -
  • highp_umat3x4 -: glm -
  • -
  • highp_umat4 -: glm -
  • -
  • highp_umat4x2 -: glm -
  • -
  • highp_umat4x3 -: glm -
  • -
  • highp_umat4x4 -: glm -
  • -
  • highp_uvec1 -: glm -
  • -
  • highp_uvec2 -: glm -
  • -
  • highp_uvec3 -: glm -
  • -
  • highp_uvec4 -: glm -
  • -
  • highp_vec1 -: glm -
  • -
  • highp_vec2 -: glm -
  • -
  • highp_vec3 -: glm -
  • -
  • highp_vec4 -: glm -
  • -
  • hsvColor() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x69.html b/3party/glm/doc/api/namespacemembers_0x69.html deleted file mode 100755 index 83aeec83b6..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x69.html +++ /dev/null @@ -1,333 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- i -

    -
  • i16 -: glm -
  • -
  • i16vec1 -: glm -
  • -
  • i16vec2 -: glm -
  • -
  • i16vec3 -: glm -
  • -
  • i16vec4 -: glm -
  • -
  • i32 -: glm -
  • -
  • i32vec1 -: glm -
  • -
  • i32vec2 -: glm -
  • -
  • i32vec3 -: glm -
  • -
  • i32vec4 -: glm -
  • -
  • i64 -: glm -
  • -
  • i64vec1 -: glm -
  • -
  • i64vec2 -: glm -
  • -
  • i64vec3 -: glm -
  • -
  • i64vec4 -: glm -
  • -
  • i8 -: glm -
  • -
  • i8vec1 -: glm -
  • -
  • i8vec2 -: glm -
  • -
  • i8vec3 -: glm -
  • -
  • i8vec4 -: glm -
  • -
  • imat2 -: glm -
  • -
  • imat2x2 -: glm -
  • -
  • imat2x3 -: glm -
  • -
  • imat2x4 -: glm -
  • -
  • imat3 -: glm -
  • -
  • imat3x2 -: glm -
  • -
  • imat3x3 -: glm -
  • -
  • imat3x4 -: glm -
  • -
  • imat4 -: glm -
  • -
  • imat4x2 -: glm -
  • -
  • imat4x3 -: glm -
  • -
  • imat4x4 -: glm -
  • -
  • imulExtended() -: glm -
  • -
  • infinitePerspective() -: glm -
  • -
  • int1 -: glm -
  • -
  • int16 -: glm -
  • -
  • int16_t -: glm -
  • -
  • int1x1 -: glm -
  • -
  • int2 -: glm -
  • -
  • int2x2 -: glm -
  • -
  • int2x3 -: glm -
  • -
  • int2x4 -: glm -
  • -
  • int3 -: glm -
  • -
  • int32 -: glm -
  • -
  • int32_t -: glm -
  • -
  • int3x2 -: glm -
  • -
  • int3x3 -: glm -
  • -
  • int3x4 -: glm -
  • -
  • int4 -: glm -
  • -
  • int4x2 -: glm -
  • -
  • int4x3 -: glm -
  • -
  • int4x4 -: glm -
  • -
  • int64 -: glm -
  • -
  • int64_t -: glm -
  • -
  • int8 -: glm -
  • -
  • int8_t -: glm -
  • -
  • intBitsToFloat() -: glm -
  • -
  • intermediate() -: glm -
  • -
  • interpolate() -: glm -
  • -
  • intersectLineSphere() -: glm -
  • -
  • intersectLineTriangle() -: glm -
  • -
  • intersectRayPlane() -: glm -
  • -
  • intersectRaySphere() -: glm -
  • -
  • intersectRayTriangle() -: glm -
  • -
  • inverse() -: glm -
  • -
  • inversesqrt() -: glm -
  • -
  • inverseTranspose() -: glm -
  • -
  • isCompNull() -: glm -
  • -
  • isfinite() -: glm -
  • -
  • isIdentity() -: glm -
  • -
  • isinf() -: glm -
  • -
  • isnan() -: glm -
  • -
  • isNormalized() -: glm -
  • -
  • isNull() -: glm -
  • -
  • isOrthogonal() -: glm -
  • -
  • isPowerOfTwo() -: glm -
  • -
  • ivec1 -: glm -
  • -
  • ivec2 -: glm -
  • -
  • ivec3 -: glm -
  • -
  • ivec4 -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x6c.html b/3party/glm/doc/api/namespacemembers_0x6c.html deleted file mode 100755 index b14463b933..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x6c.html +++ /dev/null @@ -1,717 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- l -

    -
  • l1Norm() -: glm -
  • -
  • l2Norm() -: glm -
  • -
  • ldexp() -: glm -
  • -
  • leftHanded() -: glm -
  • -
  • length() -: glm -
  • -
  • length2() -: glm -
  • -
  • lerp() -: glm -
  • -
  • lessThan() -: glm -
  • -
  • lessThanEqual() -: glm -
  • -
  • linearGradient() -: glm -
  • -
  • linearRand() -: glm -
  • -
  • ln_ln_two() -: glm -
  • -
  • ln_ten() -: glm -
  • -
  • ln_two() -: glm -
  • -
  • log() -: glm -
  • -
  • log2() -: glm -
  • -
  • lookAt() -: glm -
  • -
  • lowerMultiple() -: glm -
  • -
  • lowp_bvec1 -: glm -
  • -
  • lowp_bvec2 -: glm -
  • -
  • lowp_bvec3 -: glm -
  • -
  • lowp_bvec4 -: glm -
  • -
  • lowp_ddualquat -: glm -
  • -
  • lowp_dmat2 -: glm -
  • -
  • lowp_dmat2x2 -: glm -
  • -
  • lowp_dmat2x3 -: glm -
  • -
  • lowp_dmat2x4 -: glm -
  • -
  • lowp_dmat3 -: glm -
  • -
  • lowp_dmat3x2 -: glm -
  • -
  • lowp_dmat3x3 -: glm -
  • -
  • lowp_dmat3x4 -: glm -
  • -
  • lowp_dmat4 -: glm -
  • -
  • lowp_dmat4x2 -: glm -
  • -
  • lowp_dmat4x3 -: glm -
  • -
  • lowp_dmat4x4 -: glm -
  • -
  • lowp_dquat -: glm -
  • -
  • lowp_dualquat -: glm -
  • -
  • lowp_dvec2 -: glm -
  • -
  • lowp_dvec3 -: glm -
  • -
  • lowp_dvec4 -: glm -
  • -
  • lowp_f32 -: glm -
  • -
  • lowp_f32mat2 -: glm -
  • -
  • lowp_f32mat2x2 -: glm -
  • -
  • lowp_f32mat2x3 -: glm -
  • -
  • lowp_f32mat2x4 -: glm -
  • -
  • lowp_f32mat3 -: glm -
  • -
  • lowp_f32mat3x2 -: glm -
  • -
  • lowp_f32mat3x3 -: glm -
  • -
  • lowp_f32mat3x4 -: glm -
  • -
  • lowp_f32mat4 -: glm -
  • -
  • lowp_f32mat4x2 -: glm -
  • -
  • lowp_f32mat4x3 -: glm -
  • -
  • lowp_f32mat4x4 -: glm -
  • -
  • lowp_f32quat -: glm -
  • -
  • lowp_f32vec1 -: glm -
  • -
  • lowp_f32vec2 -: glm -
  • -
  • lowp_f32vec3 -: glm -
  • -
  • lowp_f32vec4 -: glm -
  • -
  • lowp_f64 -: glm -
  • -
  • lowp_f64mat2 -: glm -
  • -
  • lowp_f64mat2x2 -: glm -
  • -
  • lowp_f64mat2x3 -: glm -
  • -
  • lowp_f64mat2x4 -: glm -
  • -
  • lowp_f64mat3 -: glm -
  • -
  • lowp_f64mat3x2 -: glm -
  • -
  • lowp_f64mat3x3 -: glm -
  • -
  • lowp_f64mat3x4 -: glm -
  • -
  • lowp_f64mat4 -: glm -
  • -
  • lowp_f64mat4x2 -: glm -
  • -
  • lowp_f64mat4x3 -: glm -
  • -
  • lowp_f64mat4x4 -: glm -
  • -
  • lowp_f64quat -: glm -
  • -
  • lowp_f64vec1 -: glm -
  • -
  • lowp_f64vec2 -: glm -
  • -
  • lowp_f64vec3 -: glm -
  • -
  • lowp_f64vec4 -: glm -
  • -
  • lowp_fdualquat -: glm -
  • -
  • lowp_float -: glm -
  • -
  • lowp_float32 -: glm -
  • -
  • lowp_float32_t -: glm -
  • -
  • lowp_float64 -: glm -
  • -
  • lowp_float64_t -: glm -
  • -
  • lowp_fmat2 -: glm -
  • -
  • lowp_fmat2x2 -: glm -
  • -
  • lowp_fmat2x3 -: glm -
  • -
  • lowp_fmat2x4 -: glm -
  • -
  • lowp_fmat3 -: glm -
  • -
  • lowp_fmat3x2 -: glm -
  • -
  • lowp_fmat3x3 -: glm -
  • -
  • lowp_fmat3x4 -: glm -
  • -
  • lowp_fmat4 -: glm -
  • -
  • lowp_fmat4x2 -: glm -
  • -
  • lowp_fmat4x3 -: glm -
  • -
  • lowp_fmat4x4 -: glm -
  • -
  • lowp_fquat -: glm -
  • -
  • lowp_fvec1 -: glm -
  • -
  • lowp_fvec2 -: glm -
  • -
  • lowp_fvec3 -: glm -
  • -
  • lowp_fvec4 -: glm -
  • -
  • lowp_i16 -: glm -
  • -
  • lowp_i16vec1 -: glm -
  • -
  • lowp_i16vec2 -: glm -
  • -
  • lowp_i16vec3 -: glm -
  • -
  • lowp_i16vec4 -: glm -
  • -
  • lowp_i32 -: glm -
  • -
  • lowp_i32vec1 -: glm -
  • -
  • lowp_i32vec2 -: glm -
  • -
  • lowp_i32vec3 -: glm -
  • -
  • lowp_i32vec4 -: glm -
  • -
  • lowp_i64 -: glm -
  • -
  • lowp_i64vec1 -: glm -
  • -
  • lowp_i64vec2 -: glm -
  • -
  • lowp_i64vec3 -: glm -
  • -
  • lowp_i64vec4 -: glm -
  • -
  • lowp_i8 -: glm -
  • -
  • lowp_i8vec1 -: glm -
  • -
  • lowp_i8vec2 -: glm -
  • -
  • lowp_i8vec3 -: glm -
  • -
  • lowp_i8vec4 -: glm -
  • -
  • lowp_imat2 -: glm -
  • -
  • lowp_imat2x2 -: glm -
  • -
  • lowp_imat2x3 -: glm -
  • -
  • lowp_imat2x4 -: glm -
  • -
  • lowp_imat3 -: glm -
  • -
  • lowp_imat3x2 -: glm -
  • -
  • lowp_imat3x3 -: glm -
  • -
  • lowp_imat3x4 -: glm -
  • -
  • lowp_imat4 -: glm -
  • -
  • lowp_imat4x2 -: glm -
  • -
  • lowp_imat4x3 -: glm -
  • -
  • lowp_imat4x4 -: glm -
  • -
  • lowp_int -: glm -
  • -
  • lowp_int16 -: glm -
  • -
  • lowp_int16_t -: glm -
  • -
  • lowp_int32 -: glm -
  • -
  • lowp_int32_t -: glm -
  • -
  • lowp_int64 -: glm -
  • -
  • lowp_int64_t -: glm -
  • -
  • lowp_int8 -: glm -
  • -
  • lowp_int8_t -: glm -
  • -
  • lowp_ivec1 -: glm -
  • -
  • lowp_ivec2 -: glm -
  • -
  • lowp_ivec3 -: glm -
  • -
  • lowp_ivec4 -: glm -
  • -
  • lowp_mat2 -: glm -
  • -
  • lowp_mat2x2 -: glm -
  • -
  • lowp_mat2x3 -: glm -
  • -
  • lowp_mat2x4 -: glm -
  • -
  • lowp_mat3 -: glm -
  • -
  • lowp_mat3x2 -: glm -
  • -
  • lowp_mat3x3 -: glm -
  • -
  • lowp_mat3x4 -: glm -
  • -
  • lowp_mat4 -: glm -
  • -
  • lowp_mat4x2 -: glm -
  • -
  • lowp_mat4x3 -: glm -
  • -
  • lowp_mat4x4 -: glm -
  • -
  • lowp_quat -: glm -
  • -
  • lowp_u16 -: glm -
  • -
  • lowp_u16vec1 -: glm -
  • -
  • lowp_u16vec2 -: glm -
  • -
  • lowp_u16vec3 -: glm -
  • -
  • lowp_u16vec4 -: glm -
  • -
  • lowp_u32 -: glm -
  • -
  • lowp_u32vec1 -: glm -
  • -
  • lowp_u32vec2 -: glm -
  • -
  • lowp_u32vec3 -: glm -
  • -
  • lowp_u32vec4 -: glm -
  • -
  • lowp_u64 -: glm -
  • -
  • lowp_u64vec1 -: glm -
  • -
  • lowp_u64vec2 -: glm -
  • -
  • lowp_u64vec3 -: glm -
  • -
  • lowp_u64vec4 -: glm -
  • -
  • lowp_u8 -: glm -
  • -
  • lowp_u8vec1 -: glm -
  • -
  • lowp_u8vec2 -: glm -
  • -
  • lowp_u8vec3 -: glm -
  • -
  • lowp_u8vec4 -: glm -
  • -
  • lowp_uint -: glm -
  • -
  • lowp_uint16 -: glm -
  • -
  • lowp_uint16_t -: glm -
  • -
  • lowp_uint32 -: glm -
  • -
  • lowp_uint32_t -: glm -
  • -
  • lowp_uint64 -: glm -
  • -
  • lowp_uint64_t -: glm -
  • -
  • lowp_uint8 -: glm -
  • -
  • lowp_uint8_t -: glm -
  • -
  • lowp_umat2 -: glm -
  • -
  • lowp_umat2x2 -: glm -
  • -
  • lowp_umat2x3 -: glm -
  • -
  • lowp_umat2x4 -: glm -
  • -
  • lowp_umat3 -: glm -
  • -
  • lowp_umat3x2 -: glm -
  • -
  • lowp_umat3x3 -: glm -
  • -
  • lowp_umat3x4 -: glm -
  • -
  • lowp_umat4 -: glm -
  • -
  • lowp_umat4x2 -: glm -
  • -
  • lowp_umat4x3 -: glm -
  • -
  • lowp_umat4x4 -: glm -
  • -
  • lowp_uvec1 -: glm -
  • -
  • lowp_uvec2 -: glm -
  • -
  • lowp_uvec3 -: glm -
  • -
  • lowp_uvec4 -: glm -
  • -
  • lowp_vec1 -: glm -
  • -
  • lowp_vec2 -: glm -
  • -
  • lowp_vec3 -: glm -
  • -
  • lowp_vec4 -: glm -
  • -
  • luminosity() -: glm -
  • -
  • lxNorm() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x6d.html b/3party/glm/doc/api/namespacemembers_0x6d.html deleted file mode 100755 index 38403d9f1a..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x6d.html +++ /dev/null @@ -1,783 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- m -

    -
  • make_mat2() -: glm -
  • -
  • make_mat2x2() -: glm -
  • -
  • make_mat2x3() -: glm -
  • -
  • make_mat2x4() -: glm -
  • -
  • make_mat3() -: glm -
  • -
  • make_mat3x2() -: glm -
  • -
  • make_mat3x3() -: glm -
  • -
  • make_mat3x4() -: glm -
  • -
  • make_mat4() -: glm -
  • -
  • make_mat4x2() -: glm -
  • -
  • make_mat4x3() -: glm -
  • -
  • make_mat4x4() -: glm -
  • -
  • make_quat() -: glm -
  • -
  • make_vec2() -: glm -
  • -
  • make_vec3() -: glm -
  • -
  • make_vec4() -: glm -
  • -
  • mask() -: glm -
  • -
  • mat2 -: glm -
  • -
  • mat2x2 -: glm -
  • -
  • mat2x3 -: glm -
  • -
  • mat2x4 -: glm -
  • -
  • mat2x4_cast() -: glm -
  • -
  • mat3 -: glm -
  • -
  • mat3_cast() -: glm -
  • -
  • mat3x2 -: glm -
  • -
  • mat3x3 -: glm -
  • -
  • mat3x4 -: glm -
  • -
  • mat3x4_cast() -: glm -
  • -
  • mat4 -: glm -
  • -
  • mat4_cast() -: glm -
  • -
  • mat4x2 -: glm -
  • -
  • mat4x3 -: glm -
  • -
  • mat4x4 -: glm -
  • -
  • matrixCross3() -: glm -
  • -
  • matrixCross4() -: glm -
  • -
  • max() -: glm -
  • -
  • mediump_bvec1 -: glm -
  • -
  • mediump_bvec2 -: glm -
  • -
  • mediump_bvec3 -: glm -
  • -
  • mediump_bvec4 -: glm -
  • -
  • mediump_ddualquat -: glm -
  • -
  • mediump_dmat2 -: glm -
  • -
  • mediump_dmat2x2 -: glm -
  • -
  • mediump_dmat2x3 -: glm -
  • -
  • mediump_dmat2x4 -: glm -
  • -
  • mediump_dmat3 -: glm -
  • -
  • mediump_dmat3x2 -: glm -
  • -
  • mediump_dmat3x3 -: glm -
  • -
  • mediump_dmat3x4 -: glm -
  • -
  • mediump_dmat4 -: glm -
  • -
  • mediump_dmat4x2 -: glm -
  • -
  • mediump_dmat4x3 -: glm -
  • -
  • mediump_dmat4x4 -: glm -
  • -
  • mediump_dquat -: glm -
  • -
  • mediump_dualquat -: glm -
  • -
  • mediump_dvec2 -: glm -
  • -
  • mediump_dvec3 -: glm -
  • -
  • mediump_dvec4 -: glm -
  • -
  • mediump_f32 -: glm -
  • -
  • mediump_f32mat2 -: glm -
  • -
  • mediump_f32mat2x2 -: glm -
  • -
  • mediump_f32mat2x3 -: glm -
  • -
  • mediump_f32mat2x4 -: glm -
  • -
  • mediump_f32mat3 -: glm -
  • -
  • mediump_f32mat3x2 -: glm -
  • -
  • mediump_f32mat3x3 -: glm -
  • -
  • mediump_f32mat3x4 -: glm -
  • -
  • mediump_f32mat4 -: glm -
  • -
  • mediump_f32mat4x2 -: glm -
  • -
  • mediump_f32mat4x3 -: glm -
  • -
  • mediump_f32mat4x4 -: glm -
  • -
  • mediump_f32quat -: glm -
  • -
  • mediump_f32vec1 -: glm -
  • -
  • mediump_f32vec2 -: glm -
  • -
  • mediump_f32vec3 -: glm -
  • -
  • mediump_f32vec4 -: glm -
  • -
  • mediump_f64 -: glm -
  • -
  • mediump_f64mat2 -: glm -
  • -
  • mediump_f64mat2x2 -: glm -
  • -
  • mediump_f64mat2x3 -: glm -
  • -
  • mediump_f64mat2x4 -: glm -
  • -
  • mediump_f64mat3 -: glm -
  • -
  • mediump_f64mat3x2 -: glm -
  • -
  • mediump_f64mat3x3 -: glm -
  • -
  • mediump_f64mat3x4 -: glm -
  • -
  • mediump_f64mat4 -: glm -
  • -
  • mediump_f64mat4x2 -: glm -
  • -
  • mediump_f64mat4x3 -: glm -
  • -
  • mediump_f64mat4x4 -: glm -
  • -
  • mediump_f64quat -: glm -
  • -
  • mediump_f64vec1 -: glm -
  • -
  • mediump_f64vec2 -: glm -
  • -
  • mediump_f64vec3 -: glm -
  • -
  • mediump_f64vec4 -: glm -
  • -
  • mediump_fdualquat -: glm -
  • -
  • mediump_float -: glm -
  • -
  • mediump_float32 -: glm -
  • -
  • mediump_float32_t -: glm -
  • -
  • mediump_float64 -: glm -
  • -
  • mediump_float64_t -: glm -
  • -
  • mediump_fmat2 -: glm -
  • -
  • mediump_fmat2x2 -: glm -
  • -
  • mediump_fmat2x3 -: glm -
  • -
  • mediump_fmat2x4 -: glm -
  • -
  • mediump_fmat3 -: glm -
  • -
  • mediump_fmat3x2 -: glm -
  • -
  • mediump_fmat3x3 -: glm -
  • -
  • mediump_fmat3x4 -: glm -
  • -
  • mediump_fmat4 -: glm -
  • -
  • mediump_fmat4x2 -: glm -
  • -
  • mediump_fmat4x3 -: glm -
  • -
  • mediump_fmat4x4 -: glm -
  • -
  • mediump_fquat -: glm -
  • -
  • mediump_fvec1 -: glm -
  • -
  • mediump_fvec2 -: glm -
  • -
  • mediump_fvec3 -: glm -
  • -
  • mediump_fvec4 -: glm -
  • -
  • mediump_i16 -: glm -
  • -
  • mediump_i16vec1 -: glm -
  • -
  • mediump_i16vec2 -: glm -
  • -
  • mediump_i16vec3 -: glm -
  • -
  • mediump_i16vec4 -: glm -
  • -
  • mediump_i32 -: glm -
  • -
  • mediump_i32vec1 -: glm -
  • -
  • mediump_i32vec2 -: glm -
  • -
  • mediump_i32vec3 -: glm -
  • -
  • mediump_i32vec4 -: glm -
  • -
  • mediump_i64 -: glm -
  • -
  • mediump_i64vec1 -: glm -
  • -
  • mediump_i64vec2 -: glm -
  • -
  • mediump_i64vec3 -: glm -
  • -
  • mediump_i64vec4 -: glm -
  • -
  • mediump_i8 -: glm -
  • -
  • mediump_i8vec1 -: glm -
  • -
  • mediump_i8vec2 -: glm -
  • -
  • mediump_i8vec3 -: glm -
  • -
  • mediump_i8vec4 -: glm -
  • -
  • mediump_imat2 -: glm -
  • -
  • mediump_imat2x2 -: glm -
  • -
  • mediump_imat2x3 -: glm -
  • -
  • mediump_imat2x4 -: glm -
  • -
  • mediump_imat3 -: glm -
  • -
  • mediump_imat3x2 -: glm -
  • -
  • mediump_imat3x3 -: glm -
  • -
  • mediump_imat3x4 -: glm -
  • -
  • mediump_imat4 -: glm -
  • -
  • mediump_imat4x2 -: glm -
  • -
  • mediump_imat4x3 -: glm -
  • -
  • mediump_imat4x4 -: glm -
  • -
  • mediump_int -: glm -
  • -
  • mediump_int16 -: glm -
  • -
  • mediump_int16_t -: glm -
  • -
  • mediump_int32 -: glm -
  • -
  • mediump_int32_t -: glm -
  • -
  • mediump_int64 -: glm -
  • -
  • mediump_int64_t -: glm -
  • -
  • mediump_int8 -: glm -
  • -
  • mediump_int8_t -: glm -
  • -
  • mediump_ivec1 -: glm -
  • -
  • mediump_ivec2 -: glm -
  • -
  • mediump_ivec3 -: glm -
  • -
  • mediump_ivec4 -: glm -
  • -
  • mediump_mat2 -: glm -
  • -
  • mediump_mat2x2 -: glm -
  • -
  • mediump_mat2x3 -: glm -
  • -
  • mediump_mat2x4 -: glm -
  • -
  • mediump_mat3 -: glm -
  • -
  • mediump_mat3x2 -: glm -
  • -
  • mediump_mat3x3 -: glm -
  • -
  • mediump_mat3x4 -: glm -
  • -
  • mediump_mat4 -: glm -
  • -
  • mediump_mat4x2 -: glm -
  • -
  • mediump_mat4x3 -: glm -
  • -
  • mediump_mat4x4 -: glm -
  • -
  • mediump_quat -: glm -
  • -
  • mediump_u16 -: glm -
  • -
  • mediump_u16vec1 -: glm -
  • -
  • mediump_u16vec2 -: glm -
  • -
  • mediump_u16vec3 -: glm -
  • -
  • mediump_u16vec4 -: glm -
  • -
  • mediump_u32 -: glm -
  • -
  • mediump_u32vec1 -: glm -
  • -
  • mediump_u32vec2 -: glm -
  • -
  • mediump_u32vec3 -: glm -
  • -
  • mediump_u32vec4 -: glm -
  • -
  • mediump_u64 -: glm -
  • -
  • mediump_u64vec1 -: glm -
  • -
  • mediump_u64vec2 -: glm -
  • -
  • mediump_u64vec3 -: glm -
  • -
  • mediump_u64vec4 -: glm -
  • -
  • mediump_u8 -: glm -
  • -
  • mediump_u8vec1 -: glm -
  • -
  • mediump_u8vec2 -: glm -
  • -
  • mediump_u8vec3 -: glm -
  • -
  • mediump_u8vec4 -: glm -
  • -
  • mediump_uint -: glm -
  • -
  • mediump_uint16 -: glm -
  • -
  • mediump_uint16_t -: glm -
  • -
  • mediump_uint32 -: glm -
  • -
  • mediump_uint32_t -: glm -
  • -
  • mediump_uint64 -: glm -
  • -
  • mediump_uint64_t -: glm -
  • -
  • mediump_uint8 -: glm -
  • -
  • mediump_uint8_t -: glm -
  • -
  • mediump_umat2 -: glm -
  • -
  • mediump_umat2x2 -: glm -
  • -
  • mediump_umat2x3 -: glm -
  • -
  • mediump_umat2x4 -: glm -
  • -
  • mediump_umat3 -: glm -
  • -
  • mediump_umat3x2 -: glm -
  • -
  • mediump_umat3x3 -: glm -
  • -
  • mediump_umat3x4 -: glm -
  • -
  • mediump_umat4 -: glm -
  • -
  • mediump_umat4x2 -: glm -
  • -
  • mediump_umat4x3 -: glm -
  • -
  • mediump_umat4x4 -: glm -
  • -
  • mediump_uvec1 -: glm -
  • -
  • mediump_uvec2 -: glm -
  • -
  • mediump_uvec3 -: glm -
  • -
  • mediump_uvec4 -: glm -
  • -
  • mediump_vec1 -: glm -
  • -
  • mediump_vec2 -: glm -
  • -
  • mediump_vec3 -: glm -
  • -
  • mediump_vec4 -: glm -
  • -
  • min() -: glm -
  • -
  • mirrorRepeat() -: glm -
  • -
  • mix() -: glm -
  • -
  • mixedProduct() -: glm -
  • -
  • mod() -: glm -
  • -
  • modf() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x6e.html b/3party/glm/doc/api/namespacemembers_0x6e.html deleted file mode 100755 index 554400f964..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x6e.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- n -

    -
  • next_float() -: glm -
  • -
  • nlz() -: glm -
  • -
  • noise1() -: glm -
  • -
  • noise2() -: glm -
  • -
  • noise3() -: glm -
  • -
  • noise4() -: glm -
  • -
  • normalize() -: glm -
  • -
  • normalizeDot() -: glm -
  • -
  • not_() -: glm -
  • -
  • notEqual() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x6f.html b/3party/glm/doc/api/namespacemembers_0x6f.html deleted file mode 100755 index 20693e76b2..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x6f.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- o -

    -
  • one() -: glm -
  • -
  • one_over_pi() -: glm -
  • -
  • one_over_root_two() -: glm -
  • -
  • orientate2() -: glm -
  • -
  • orientate3() -: glm -
  • -
  • orientate4() -: glm -
  • -
  • orientation() -: glm -
  • -
  • orientedAngle() -: glm -
  • -
  • ortho() -: glm -
  • -
  • orthonormalize() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x70.html b/3party/glm/doc/api/namespacemembers_0x70.html deleted file mode 100755 index 5fa2e50115..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x70.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- p -

    -
  • packDouble2x32() -: glm -
  • -
  • packF2x11_1x10() -: glm -
  • -
  • packHalf1x16() -: glm -
  • -
  • packHalf2x16() -: glm -
  • -
  • packHalf4x16() -: glm -
  • -
  • packI3x10_1x2() -: glm -
  • -
  • packSnorm1x16() -: glm -
  • -
  • packSnorm1x8() -: glm -
  • -
  • packSnorm2x16() -: glm -
  • -
  • packSnorm2x8() -: glm -
  • -
  • packSnorm3x10_1x2() -: glm -
  • -
  • packSnorm4x16() -: glm -
  • -
  • packSnorm4x8() -: glm -
  • -
  • packU3x10_1x2() -: glm -
  • -
  • packUnorm1x16() -: glm -
  • -
  • packUnorm1x8() -: glm -
  • -
  • packUnorm2x16() -: glm -
  • -
  • packUnorm2x8() -: glm -
  • -
  • packUnorm3x10_1x2() -: glm -
  • -
  • packUnorm4x16() -: glm -
  • -
  • packUnorm4x8() -: glm -
  • -
  • perlin() -: glm -
  • -
  • perp() -: glm -
  • -
  • perspective() -: glm -
  • -
  • perspectiveFov() -: glm -
  • -
  • pi() -: glm -
  • -
  • pickMatrix() -: glm -
  • -
  • pitch() -: glm -
  • -
  • polar() -: glm -
  • -
  • pow() -: glm -
  • -
  • powerOfTwoAbove() -: glm -
  • -
  • powerOfTwoBelow() -: glm -
  • -
  • powerOfTwoNearest() -: glm -
  • -
  • prev_float() -: glm -
  • -
  • proj() -: glm -
  • -
  • proj2D() -: glm -
  • -
  • proj3D() -: glm -
  • -
  • project() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x71.html b/3party/glm/doc/api/namespacemembers_0x71.html deleted file mode 100755 index 4298146d1c..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x71.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- q -

    -
  • quarter_pi() -: glm -
  • -
  • quat -: glm -
  • -
  • quat_cast() -: glm -
  • -
  • qword -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x72.html b/3party/glm/doc/api/namespacemembers_0x72.html deleted file mode 100755 index bab3cc8044..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x72.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- r -

    -
  • radialGradient() -: glm -
  • -
  • radians() -: glm -
  • -
  • reflect() -: glm -
  • -
  • refract() -: glm -
  • -
  • repeat() -: glm -
  • -
  • rgb2YCoCg() -: glm -
  • -
  • rgb2YCoCgR() -: glm -
  • -
  • rgbColor() -: glm -
  • -
  • rightHanded() -: glm -
  • -
  • roll() -: glm -
  • -
  • root_five() -: glm -
  • -
  • root_half_pi() -: glm -
  • -
  • root_ln_four() -: glm -
  • -
  • root_pi() -: glm -
  • -
  • root_three() -: glm -
  • -
  • root_two() -: glm -
  • -
  • root_two_pi() -: glm -
  • -
  • rotate() -: glm -
  • -
  • rotateNormalizedAxis() -: glm -
  • -
  • rotateX() -: glm -
  • -
  • rotateY() -: glm -
  • -
  • rotateZ() -: glm -
  • -
  • rotation() -: glm -
  • -
  • round() -: glm -
  • -
  • roundEven() -: glm -
  • -
  • row() -: glm -
  • -
  • rowMajor2() -: glm -
  • -
  • rowMajor3() -: glm -
  • -
  • rowMajor4() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x73.html b/3party/glm/doc/api/namespacemembers_0x73.html deleted file mode 100755 index 04d374e5e5..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x73.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- s -

    -
  • saturate() -: glm -
  • -
  • saturation() -: glm -
  • -
  • scale() -: glm -
  • -
  • scaleBias() -: glm -
  • -
  • sec() -: glm -
  • -
  • sech() -: glm -
  • -
  • shearX2D() -: glm -
  • -
  • shearX3D() -: glm -
  • -
  • shearY2D() -: glm -
  • -
  • shearY3D() -: glm -
  • -
  • shearZ3D() -: glm -
  • -
  • shortMix() -: glm -
  • -
  • sign() -: glm -
  • -
  • simplex() -: glm -
  • -
  • sin() -: glm -
  • -
  • sinh() -: glm -
  • -
  • sint -: glm -
  • -
  • size2 -: glm -
  • -
  • size2_t -: glm -
  • -
  • size3 -: glm -
  • -
  • size3_t -: glm -
  • -
  • size4 -: glm -
  • -
  • size4_t -: glm -
  • -
  • slerp() -: glm -
  • -
  • smoothstep() -: glm -
  • -
  • sphericalRand() -: glm -
  • -
  • sqrt() -: glm -
  • -
  • squad() -: glm -
  • -
  • step() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x74.html b/3party/glm/doc/api/namespacemembers_0x74.html deleted file mode 100755 index 9e9592c976..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x74.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- t -

    -
  • tan() -: glm -
  • -
  • tanh() -: glm -
  • -
  • third() -: glm -
  • -
  • to_string() -: glm -
  • -
  • toMat3() -: glm -
  • -
  • toMat4() -: glm -
  • -
  • toQuat() -: glm -
  • -
  • translate() -: glm -
  • -
  • triangleNormal() -: glm -
  • -
  • trunc() -: glm -
  • -
  • tweakedInfinitePerspective() -: glm -
  • -
  • two_over_pi() -: glm -
  • -
  • two_over_root_pi() -: glm -
  • -
  • two_thirds() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x75.html b/3party/glm/doc/api/namespacemembers_0x75.html deleted file mode 100755 index 43f6bea37d..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x75.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- u -

    -
  • u16 -: glm -
  • -
  • u16vec1 -: glm -
  • -
  • u16vec2 -: glm -
  • -
  • u16vec3 -: glm -
  • -
  • u16vec4 -: glm -
  • -
  • u32 -: glm -
  • -
  • u32vec1 -: glm -
  • -
  • u32vec2 -: glm -
  • -
  • u32vec3 -: glm -
  • -
  • u32vec4 -: glm -
  • -
  • u64 -: glm -
  • -
  • u64vec1 -: glm -
  • -
  • u64vec2 -: glm -
  • -
  • u64vec3 -: glm -
  • -
  • u64vec4 -: glm -
  • -
  • u8 -: glm -
  • -
  • u8vec1 -: glm -
  • -
  • u8vec2 -: glm -
  • -
  • u8vec3 -: glm -
  • -
  • u8vec4 -: glm -
  • -
  • uaddCarry() -: glm -
  • -
  • uint -: glm -
  • -
  • uint10_10_10_2_cast() -: glm -
  • -
  • uint16 -: glm -
  • -
  • uint16_t -: glm -
  • -
  • uint32 -: glm -
  • -
  • uint32_t -: glm -
  • -
  • uint64 -: glm -
  • -
  • uint64_t -: glm -
  • -
  • uint8 -: glm -
  • -
  • uint8_t -: glm -
  • -
  • uintBitsToFloat() -: glm -
  • -
  • umat2 -: glm -
  • -
  • umat2x2 -: glm -
  • -
  • umat2x3 -: glm -
  • -
  • umat2x4 -: glm -
  • -
  • umat3 -: glm -
  • -
  • umat3x2 -: glm -
  • -
  • umat3x3 -: glm -
  • -
  • umat3x4 -: glm -
  • -
  • umat4 -: glm -
  • -
  • umat4x2 -: glm -
  • -
  • umat4x3 -: glm -
  • -
  • umat4x4 -: glm -
  • -
  • umulExtended() -: glm -
  • -
  • unpackDouble2x32() -: glm -
  • -
  • unpackF2x11_1x10() -: glm -
  • -
  • unpackHalf1x16() -: glm -
  • -
  • unpackHalf2x16() -: glm -
  • -
  • unpackHalf4x16() -: glm -
  • -
  • unpackI3x10_1x2() -: glm -
  • -
  • unpackSnorm1x16() -: glm -
  • -
  • unpackSnorm1x8() -: glm -
  • -
  • unpackSnorm2x16() -: glm -
  • -
  • unpackSnorm2x8() -: glm -
  • -
  • unpackSnorm3x10_1x2() -: glm -
  • -
  • unpackSnorm4x16() -: glm -
  • -
  • unpackSnorm4x8() -: glm -
  • -
  • unpackU3x10_1x2() -: glm -
  • -
  • unpackUnorm1x16() -: glm -
  • -
  • unpackUnorm1x8() -: glm -
  • -
  • unpackUnorm2x16() -: glm -
  • -
  • unpackUnorm2x8() -: glm -
  • -
  • unpackUnorm3x10_1x2() -: glm -
  • -
  • unpackUnorm4x16() -: glm -
  • -
  • unpackUnorm4x8() -: glm -
  • -
  • unProject() -: glm -
  • -
  • usubBorrow() -: glm -
  • -
  • uvec1 -: glm -
  • -
  • uvec2 -: glm -
  • -
  • uvec3 -: glm -
  • -
  • uvec4 -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x76.html b/3party/glm/doc/api/namespacemembers_0x76.html deleted file mode 100755 index 2e22cb8ab3..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x76.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- v -

    -
  • value_ptr() -: glm -
  • -
  • vec1 -: glm -
  • -
  • vec2 -: glm -
  • -
  • vec3 -: glm -
  • -
  • vec4 -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x77.html b/3party/glm/doc/api/namespacemembers_0x77.html deleted file mode 100755 index a93c00b787..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x77.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- w -

    -
  • word -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x79.html b/3party/glm/doc/api/namespacemembers_0x79.html deleted file mode 100755 index dc3932fa47..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x79.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- y -

    -
  • yaw() -: glm -
  • -
  • yawPitchRoll() -: glm -
  • -
  • YCoCg2rgb() -: glm -
  • -
  • YCoCgR2rgb() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_0x7a.html b/3party/glm/doc/api/namespacemembers_0x7a.html deleted file mode 100755 index 7779046d3b..0000000000 --- a/3party/glm/doc/api/namespacemembers_0x7a.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- z -

    -
  • zero() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func.html b/3party/glm/doc/api/namespacemembers_func.html deleted file mode 100755 index 680070c762..0000000000 --- a/3party/glm/doc/api/namespacemembers_func.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- a -

    -
  • abs() -: glm -
  • -
  • acos() -: glm -
  • -
  • acosh() -: glm -
  • -
  • acot() -: glm -
  • -
  • acoth() -: glm -
  • -
  • acsc() -: glm -
  • -
  • acsch() -: glm -
  • -
  • affineInverse() -: glm -
  • -
  • all() -: glm -
  • -
  • angle() -: glm -
  • -
  • angleAxis() -: glm -
  • -
  • any() -: glm -
  • -
  • areCollinear() -: glm -
  • -
  • areOrthogonal() -: glm -
  • -
  • areOrthonormal() -: glm -
  • -
  • asec() -: glm -
  • -
  • asech() -: glm -
  • -
  • asin() -: glm -
  • -
  • asinh() -: glm -
  • -
  • associatedMax() -: glm -
  • -
  • associatedMin() -: glm -
  • -
  • atan() -: glm -
  • -
  • atan2() -: glm -
  • -
  • atanh() -: glm -
  • -
  • axis() -: glm -
  • -
  • axisAngle() -: glm -
  • -
  • axisAngleMatrix() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x62.html b/3party/glm/doc/api/namespacemembers_func_0x62.html deleted file mode 100755 index ae1b9df876..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x62.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- b -

    -
  • ballRand() -: glm -
  • -
  • bitCount() -: glm -
  • -
  • bitfieldExtract() -: glm -
  • -
  • bitfieldInsert() -: glm -
  • -
  • bitfieldInterleave() -: glm -
  • -
  • bitfieldReverse() -: glm -
  • -
  • bitRevert() -: glm -
  • -
  • bitRotateLeft() -: glm -
  • -
  • bitRotateRight() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x63.html b/3party/glm/doc/api/namespacemembers_func_0x63.html deleted file mode 100755 index 2e0084457e..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x63.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- c -

    -
  • catmullRom() -: glm -
  • -
  • ceil() -: glm -
  • -
  • circularRand() -: glm -
  • -
  • clamp() -: glm -
  • -
  • closestPointOnLine() -: glm -
  • -
  • colMajor2() -: glm -
  • -
  • colMajor3() -: glm -
  • -
  • colMajor4() -: glm -
  • -
  • column() -: glm -
  • -
  • compAdd() -: glm -
  • -
  • compMax() -: glm -
  • -
  • compMin() -: glm -
  • -
  • compMul() -: glm -
  • -
  • conjugate() -: glm -
  • -
  • cos() -: glm -
  • -
  • cosh() -: glm -
  • -
  • cot() -: glm -
  • -
  • coth() -: glm -
  • -
  • cross() -: glm -
  • -
  • csc() -: glm -
  • -
  • csch() -: glm -
  • -
  • cubic() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x64.html b/3party/glm/doc/api/namespacemembers_func_0x64.html deleted file mode 100755 index b949664c7e..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x64.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- d -

    -
  • degrees() -: glm -
  • -
  • diagonal2x2() -: glm -
  • -
  • diagonal2x3() -: glm -
  • -
  • diagonal2x4() -: glm -
  • -
  • diagonal3x2() -: glm -
  • -
  • diagonal3x3() -: glm -
  • -
  • diagonal3x4() -: glm -
  • -
  • diagonal4x2() -: glm -
  • -
  • diagonal4x3() -: glm -
  • -
  • diagonal4x4() -: glm -
  • -
  • diskRand() -: glm -
  • -
  • distance() -: glm -
  • -
  • distance2() -: glm -
  • -
  • dot() -: glm -
  • -
  • dualquat_cast() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x65.html b/3party/glm/doc/api/namespacemembers_func_0x65.html deleted file mode 100755 index e18175e209..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x65.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- e -

    -
  • e() -: glm -
  • -
  • epsilon() -: glm -
  • -
  • epsilonEqual() -: glm -
  • -
  • epsilonNotEqual() -: glm -
  • -
  • equal() -: glm -
  • -
  • euclidean() -: glm -
  • -
  • euler() -: glm -
  • -
  • eulerAngles() -: glm -
  • -
  • eulerAngleX() -: glm -
  • -
  • eulerAngleXY() -: glm -
  • -
  • eulerAngleXZ() -: glm -
  • -
  • eulerAngleY() -: glm -
  • -
  • eulerAngleYX() -: glm -
  • -
  • eulerAngleYXZ() -: glm -
  • -
  • eulerAngleYZ() -: glm -
  • -
  • eulerAngleZ() -: glm -
  • -
  • eulerAngleZX() -: glm -
  • -
  • eulerAngleZY() -: glm -
  • -
  • exp() -: glm -
  • -
  • exp2() -: glm -
  • -
  • extend() -: glm -
  • -
  • extractMatrixRotation() -: glm -
  • -
  • extractRealComponent() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x66.html b/3party/glm/doc/api/namespacemembers_func_0x66.html deleted file mode 100755 index 061a0aa16a..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x66.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- f -

    -
  • faceforward() -: glm -
  • -
  • factorial() -: glm -
  • -
  • fastAcos() -: glm -
  • -
  • fastAsin() -: glm -
  • -
  • fastAtan() -: glm -
  • -
  • fastCos() -: glm -
  • -
  • fastDistance() -: glm -
  • -
  • fastExp() -: glm -
  • -
  • fastExp2() -: glm -
  • -
  • fastInverseSqrt() -: glm -
  • -
  • fastLength() -: glm -
  • -
  • fastLn() -: glm -
  • -
  • fastLog() -: glm -
  • -
  • fastLog2() -: glm -
  • -
  • fastMix() -: glm -
  • -
  • fastNormalize() -: glm -
  • -
  • fastNormalizeDot() -: glm -
  • -
  • fastPow() -: glm -
  • -
  • fastSin() -: glm -
  • -
  • fastSqrt() -: glm -
  • -
  • fastTan() -: glm -
  • -
  • fillBitfieldWithOne() -: glm -
  • -
  • fillBitfieldWithZero() -: glm -
  • -
  • findLSB() -: glm -
  • -
  • findMSB() -: glm -
  • -
  • float_distance() -: glm -
  • -
  • floatBitsToInt() -: glm -
  • -
  • floatBitsToUint() -: glm -
  • -
  • floor() -: glm -
  • -
  • floor_log2() -: glm -
  • -
  • fma() -: glm -
  • -
  • fract() -: glm -
  • -
  • frexp() -: glm -
  • -
  • frustum() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x67.html b/3party/glm/doc/api/namespacemembers_func_0x67.html deleted file mode 100755 index de6a27c55e..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x67.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- g -

    -
  • gaussRand() -: glm -
  • -
  • golden_ratio() -: glm -
  • -
  • greaterThan() -: glm -
  • -
  • greaterThanEqual() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x68.html b/3party/glm/doc/api/namespacemembers_func_0x68.html deleted file mode 100755 index 0a27ea957e..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x68.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- h -

    -
  • half_pi() -: glm -
  • -
  • hermite() -: glm -
  • -
  • higherMultiple() -: glm -
  • -
  • highestBitValue() -: glm -
  • -
  • hsvColor() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x69.html b/3party/glm/doc/api/namespacemembers_func_0x69.html deleted file mode 100755 index 83a26b84a0..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x69.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- i -

    -
  • imulExtended() -: glm -
  • -
  • infinitePerspective() -: glm -
  • -
  • intBitsToFloat() -: glm -
  • -
  • intermediate() -: glm -
  • -
  • interpolate() -: glm -
  • -
  • intersectLineSphere() -: glm -
  • -
  • intersectLineTriangle() -: glm -
  • -
  • intersectRayPlane() -: glm -
  • -
  • intersectRaySphere() -: glm -
  • -
  • intersectRayTriangle() -: glm -
  • -
  • inverse() -: glm -
  • -
  • inversesqrt() -: glm -
  • -
  • inverseTranspose() -: glm -
  • -
  • isCompNull() -: glm -
  • -
  • isfinite() -: glm -
  • -
  • isIdentity() -: glm -
  • -
  • isinf() -: glm -
  • -
  • isnan() -: glm -
  • -
  • isNormalized() -: glm -
  • -
  • isNull() -: glm -
  • -
  • isOrthogonal() -: glm -
  • -
  • isPowerOfTwo() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x6c.html b/3party/glm/doc/api/namespacemembers_func_0x6c.html deleted file mode 100755 index fabaf69e44..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x6c.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- l -

    -
  • l1Norm() -: glm -
  • -
  • l2Norm() -: glm -
  • -
  • ldexp() -: glm -
  • -
  • leftHanded() -: glm -
  • -
  • length() -: glm -
  • -
  • length2() -: glm -
  • -
  • lerp() -: glm -
  • -
  • lessThan() -: glm -
  • -
  • lessThanEqual() -: glm -
  • -
  • linearGradient() -: glm -
  • -
  • linearRand() -: glm -
  • -
  • ln_ln_two() -: glm -
  • -
  • ln_ten() -: glm -
  • -
  • ln_two() -: glm -
  • -
  • log() -: glm -
  • -
  • log2() -: glm -
  • -
  • lookAt() -: glm -
  • -
  • lowerMultiple() -: glm -
  • -
  • luminosity() -: glm -
  • -
  • lxNorm() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x6d.html b/3party/glm/doc/api/namespacemembers_func_0x6d.html deleted file mode 100755 index 31f4fac320..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x6d.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- m -

    -
  • make_mat2() -: glm -
  • -
  • make_mat2x2() -: glm -
  • -
  • make_mat2x3() -: glm -
  • -
  • make_mat2x4() -: glm -
  • -
  • make_mat3() -: glm -
  • -
  • make_mat3x2() -: glm -
  • -
  • make_mat3x3() -: glm -
  • -
  • make_mat3x4() -: glm -
  • -
  • make_mat4() -: glm -
  • -
  • make_mat4x2() -: glm -
  • -
  • make_mat4x3() -: glm -
  • -
  • make_mat4x4() -: glm -
  • -
  • make_quat() -: glm -
  • -
  • make_vec2() -: glm -
  • -
  • make_vec3() -: glm -
  • -
  • make_vec4() -: glm -
  • -
  • mask() -: glm -
  • -
  • mat2x4_cast() -: glm -
  • -
  • mat3_cast() -: glm -
  • -
  • mat3x4_cast() -: glm -
  • -
  • mat4_cast() -: glm -
  • -
  • matrixCross3() -: glm -
  • -
  • matrixCross4() -: glm -
  • -
  • max() -: glm -
  • -
  • min() -: glm -
  • -
  • mirrorRepeat() -: glm -
  • -
  • mix() -: glm -
  • -
  • mixedProduct() -: glm -
  • -
  • mod() -: glm -
  • -
  • modf() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x6e.html b/3party/glm/doc/api/namespacemembers_func_0x6e.html deleted file mode 100755 index 5fd8f9a268..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x6e.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- n -

    -
  • next_float() -: glm -
  • -
  • nlz() -: glm -
  • -
  • noise1() -: glm -
  • -
  • noise2() -: glm -
  • -
  • noise3() -: glm -
  • -
  • noise4() -: glm -
  • -
  • normalize() -: glm -
  • -
  • normalizeDot() -: glm -
  • -
  • not_() -: glm -
  • -
  • notEqual() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x6f.html b/3party/glm/doc/api/namespacemembers_func_0x6f.html deleted file mode 100755 index b2f80e9374..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x6f.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- o -

    -
  • one() -: glm -
  • -
  • one_over_pi() -: glm -
  • -
  • one_over_root_two() -: glm -
  • -
  • orientate2() -: glm -
  • -
  • orientate3() -: glm -
  • -
  • orientate4() -: glm -
  • -
  • orientation() -: glm -
  • -
  • orientedAngle() -: glm -
  • -
  • ortho() -: glm -
  • -
  • orthonormalize() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x70.html b/3party/glm/doc/api/namespacemembers_func_0x70.html deleted file mode 100755 index 619d248003..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x70.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- p -

    -
  • packDouble2x32() -: glm -
  • -
  • packF2x11_1x10() -: glm -
  • -
  • packHalf1x16() -: glm -
  • -
  • packHalf2x16() -: glm -
  • -
  • packHalf4x16() -: glm -
  • -
  • packI3x10_1x2() -: glm -
  • -
  • packSnorm1x16() -: glm -
  • -
  • packSnorm1x8() -: glm -
  • -
  • packSnorm2x16() -: glm -
  • -
  • packSnorm2x8() -: glm -
  • -
  • packSnorm3x10_1x2() -: glm -
  • -
  • packSnorm4x16() -: glm -
  • -
  • packSnorm4x8() -: glm -
  • -
  • packU3x10_1x2() -: glm -
  • -
  • packUnorm1x16() -: glm -
  • -
  • packUnorm1x8() -: glm -
  • -
  • packUnorm2x16() -: glm -
  • -
  • packUnorm2x8() -: glm -
  • -
  • packUnorm3x10_1x2() -: glm -
  • -
  • packUnorm4x16() -: glm -
  • -
  • packUnorm4x8() -: glm -
  • -
  • perlin() -: glm -
  • -
  • perp() -: glm -
  • -
  • perspective() -: glm -
  • -
  • perspectiveFov() -: glm -
  • -
  • pi() -: glm -
  • -
  • pickMatrix() -: glm -
  • -
  • pitch() -: glm -
  • -
  • polar() -: glm -
  • -
  • pow() -: glm -
  • -
  • powerOfTwoAbove() -: glm -
  • -
  • powerOfTwoBelow() -: glm -
  • -
  • powerOfTwoNearest() -: glm -
  • -
  • prev_float() -: glm -
  • -
  • proj() -: glm -
  • -
  • proj2D() -: glm -
  • -
  • proj3D() -: glm -
  • -
  • project() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x71.html b/3party/glm/doc/api/namespacemembers_func_0x71.html deleted file mode 100755 index 8515701b04..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x71.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- q -

    -
  • quarter_pi() -: glm -
  • -
  • quat_cast() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x72.html b/3party/glm/doc/api/namespacemembers_func_0x72.html deleted file mode 100755 index d4509cd901..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x72.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- r -

    -
  • radialGradient() -: glm -
  • -
  • radians() -: glm -
  • -
  • reflect() -: glm -
  • -
  • refract() -: glm -
  • -
  • repeat() -: glm -
  • -
  • rgb2YCoCg() -: glm -
  • -
  • rgb2YCoCgR() -: glm -
  • -
  • rgbColor() -: glm -
  • -
  • rightHanded() -: glm -
  • -
  • roll() -: glm -
  • -
  • root_five() -: glm -
  • -
  • root_half_pi() -: glm -
  • -
  • root_ln_four() -: glm -
  • -
  • root_pi() -: glm -
  • -
  • root_three() -: glm -
  • -
  • root_two() -: glm -
  • -
  • root_two_pi() -: glm -
  • -
  • rotate() -: glm -
  • -
  • rotateNormalizedAxis() -: glm -
  • -
  • rotateX() -: glm -
  • -
  • rotateY() -: glm -
  • -
  • rotateZ() -: glm -
  • -
  • rotation() -: glm -
  • -
  • round() -: glm -
  • -
  • roundEven() -: glm -
  • -
  • row() -: glm -
  • -
  • rowMajor2() -: glm -
  • -
  • rowMajor3() -: glm -
  • -
  • rowMajor4() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x73.html b/3party/glm/doc/api/namespacemembers_func_0x73.html deleted file mode 100755 index 23081c323e..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x73.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- s -

    -
  • saturate() -: glm -
  • -
  • saturation() -: glm -
  • -
  • scale() -: glm -
  • -
  • scaleBias() -: glm -
  • -
  • sec() -: glm -
  • -
  • sech() -: glm -
  • -
  • shearX2D() -: glm -
  • -
  • shearX3D() -: glm -
  • -
  • shearY2D() -: glm -
  • -
  • shearY3D() -: glm -
  • -
  • shearZ3D() -: glm -
  • -
  • shortMix() -: glm -
  • -
  • sign() -: glm -
  • -
  • simplex() -: glm -
  • -
  • sin() -: glm -
  • -
  • sinh() -: glm -
  • -
  • slerp() -: glm -
  • -
  • smoothstep() -: glm -
  • -
  • sphericalRand() -: glm -
  • -
  • sqrt() -: glm -
  • -
  • squad() -: glm -
  • -
  • step() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x74.html b/3party/glm/doc/api/namespacemembers_func_0x74.html deleted file mode 100755 index 9c98b0bd96..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x74.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- t -

    -
  • tan() -: glm -
  • -
  • tanh() -: glm -
  • -
  • third() -: glm -
  • -
  • to_string() -: glm -
  • -
  • toMat3() -: glm -
  • -
  • toMat4() -: glm -
  • -
  • toQuat() -: glm -
  • -
  • translate() -: glm -
  • -
  • triangleNormal() -: glm -
  • -
  • trunc() -: glm -
  • -
  • tweakedInfinitePerspective() -: glm -
  • -
  • two_over_pi() -: glm -
  • -
  • two_over_root_pi() -: glm -
  • -
  • two_thirds() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x75.html b/3party/glm/doc/api/namespacemembers_func_0x75.html deleted file mode 100755 index a9d1677680..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x75.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- u -

    -
  • uaddCarry() -: glm -
  • -
  • uint10_10_10_2_cast() -: glm -
  • -
  • uintBitsToFloat() -: glm -
  • -
  • umulExtended() -: glm -
  • -
  • unpackDouble2x32() -: glm -
  • -
  • unpackF2x11_1x10() -: glm -
  • -
  • unpackHalf1x16() -: glm -
  • -
  • unpackHalf2x16() -: glm -
  • -
  • unpackHalf4x16() -: glm -
  • -
  • unpackI3x10_1x2() -: glm -
  • -
  • unpackSnorm1x16() -: glm -
  • -
  • unpackSnorm1x8() -: glm -
  • -
  • unpackSnorm2x16() -: glm -
  • -
  • unpackSnorm2x8() -: glm -
  • -
  • unpackSnorm3x10_1x2() -: glm -
  • -
  • unpackSnorm4x16() -: glm -
  • -
  • unpackSnorm4x8() -: glm -
  • -
  • unpackU3x10_1x2() -: glm -
  • -
  • unpackUnorm1x16() -: glm -
  • -
  • unpackUnorm1x8() -: glm -
  • -
  • unpackUnorm2x16() -: glm -
  • -
  • unpackUnorm2x8() -: glm -
  • -
  • unpackUnorm3x10_1x2() -: glm -
  • -
  • unpackUnorm4x16() -: glm -
  • -
  • unpackUnorm4x8() -: glm -
  • -
  • unProject() -: glm -
  • -
  • usubBorrow() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x76.html b/3party/glm/doc/api/namespacemembers_func_0x76.html deleted file mode 100755 index bb195a091f..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x76.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- v -

    -
  • value_ptr() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x79.html b/3party/glm/doc/api/namespacemembers_func_0x79.html deleted file mode 100755 index f1b60bc7e0..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x79.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- y -

    -
  • yaw() -: glm -
  • -
  • yawPitchRoll() -: glm -
  • -
  • YCoCg2rgb() -: glm -
  • -
  • YCoCgR2rgb() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_func_0x7a.html b/3party/glm/doc/api/namespacemembers_func_0x7a.html deleted file mode 100755 index 084040a0d8..0000000000 --- a/3party/glm/doc/api/namespacemembers_func_0x7a.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- z -

    -
  • zero() -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type.html b/3party/glm/doc/api/namespacemembers_type.html deleted file mode 100755 index 1ea6fb4408..0000000000 --- a/3party/glm/doc/api/namespacemembers_type.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- b -

    -
  • bool1 -: glm -
  • -
  • bool1x1 -: glm -
  • -
  • bool2 -: glm -
  • -
  • bool2x2 -: glm -
  • -
  • bool2x3 -: glm -
  • -
  • bool2x4 -: glm -
  • -
  • bool3 -: glm -
  • -
  • bool3x2 -: glm -
  • -
  • bool3x3 -: glm -
  • -
  • bool3x4 -: glm -
  • -
  • bool4 -: glm -
  • -
  • bool4x2 -: glm -
  • -
  • bool4x3 -: glm -
  • -
  • bool4x4 -: glm -
  • -
  • bvec1 -: glm -
  • -
  • bvec2 -: glm -
  • -
  • bvec3 -: glm -
  • -
  • bvec4 -: glm -
  • -
  • byte -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type_0x64.html b/3party/glm/doc/api/namespacemembers_type_0x64.html deleted file mode 100755 index 7eddbe8e4c..0000000000 --- a/3party/glm/doc/api/namespacemembers_type_0x64.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- d -

    -
  • ddualquat -: glm -
  • -
  • dmat2 -: glm -
  • -
  • dmat2x2 -: glm -
  • -
  • dmat2x3 -: glm -
  • -
  • dmat2x4 -: glm -
  • -
  • dmat3 -: glm -
  • -
  • dmat3x2 -: glm -
  • -
  • dmat3x3 -: glm -
  • -
  • dmat3x4 -: glm -
  • -
  • dmat4 -: glm -
  • -
  • dmat4x2 -: glm -
  • -
  • dmat4x3 -: glm -
  • -
  • dmat4x4 -: glm -
  • -
  • double1 -: glm -
  • -
  • double1x1 -: glm -
  • -
  • double2 -: glm -
  • -
  • double2x2 -: glm -
  • -
  • double2x3 -: glm -
  • -
  • double2x4 -: glm -
  • -
  • double3 -: glm -
  • -
  • double3x2 -: glm -
  • -
  • double3x3 -: glm -
  • -
  • double3x4 -: glm -
  • -
  • double4 -: glm -
  • -
  • double4x2 -: glm -
  • -
  • double4x3 -: glm -
  • -
  • double4x4 -: glm -
  • -
  • dquat -: glm -
  • -
  • dualquat -: glm -
  • -
  • dvec2 -: glm -
  • -
  • dvec3 -: glm -
  • -
  • dvec4 -: glm -
  • -
  • dword -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type_0x66.html b/3party/glm/doc/api/namespacemembers_type_0x66.html deleted file mode 100755 index 31cc8f8d5a..0000000000 --- a/3party/glm/doc/api/namespacemembers_type_0x66.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- f -

    -
  • f32 -: glm -
  • -
  • f32mat2 -: glm -
  • -
  • f32mat2x2 -: glm -
  • -
  • f32mat2x3 -: glm -
  • -
  • f32mat2x4 -: glm -
  • -
  • f32mat3 -: glm -
  • -
  • f32mat3x2 -: glm -
  • -
  • f32mat3x3 -: glm -
  • -
  • f32mat3x4 -: glm -
  • -
  • f32mat4 -: glm -
  • -
  • f32mat4x2 -: glm -
  • -
  • f32mat4x3 -: glm -
  • -
  • f32mat4x4 -: glm -
  • -
  • f32quat -: glm -
  • -
  • f32vec1 -: glm -
  • -
  • f32vec2 -: glm -
  • -
  • f32vec3 -: glm -
  • -
  • f32vec4 -: glm -
  • -
  • f64 -: glm -
  • -
  • f64mat2 -: glm -
  • -
  • f64mat2x2 -: glm -
  • -
  • f64mat2x3 -: glm -
  • -
  • f64mat2x4 -: glm -
  • -
  • f64mat3 -: glm -
  • -
  • f64mat3x2 -: glm -
  • -
  • f64mat3x3 -: glm -
  • -
  • f64mat3x4 -: glm -
  • -
  • f64mat4 -: glm -
  • -
  • f64mat4x2 -: glm -
  • -
  • f64mat4x3 -: glm -
  • -
  • f64mat4x4 -: glm -
  • -
  • f64quat -: glm -
  • -
  • f64vec1 -: glm -
  • -
  • f64vec2 -: glm -
  • -
  • f64vec3 -: glm -
  • -
  • f64vec4 -: glm -
  • -
  • fdualquat -: glm -
  • -
  • float1 -: glm -
  • -
  • float1x1 -: glm -
  • -
  • float2 -: glm -
  • -
  • float2x2 -: glm -
  • -
  • float2x3 -: glm -
  • -
  • float2x4 -: glm -
  • -
  • float3 -: glm -
  • -
  • float32 -: glm -
  • -
  • float32_t -: glm -
  • -
  • float3x2 -: glm -
  • -
  • float3x3 -: glm -
  • -
  • float3x4 -: glm -
  • -
  • float4 -: glm -
  • -
  • float4x2 -: glm -
  • -
  • float4x3 -: glm -
  • -
  • float4x4 -: glm -
  • -
  • float64 -: glm -
  • -
  • float64_t -: glm -
  • -
  • fmat2 -: glm -
  • -
  • fmat2x2 -: glm -
  • -
  • fmat2x3 -: glm -
  • -
  • fmat2x4 -: glm -
  • -
  • fmat3 -: glm -
  • -
  • fmat3x2 -: glm -
  • -
  • fmat3x3 -: glm -
  • -
  • fmat3x4 -: glm -
  • -
  • fmat4 -: glm -
  • -
  • fmat4x2 -: glm -
  • -
  • fmat4x3 -: glm -
  • -
  • fmat4x4 -: glm -
  • -
  • fquat -: glm -
  • -
  • fvec1 -: glm -
  • -
  • fvec2 -: glm -
  • -
  • fvec3 -: glm -
  • -
  • fvec4 -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type_0x68.html b/3party/glm/doc/api/namespacemembers_type_0x68.html deleted file mode 100755 index fe6c6d1375..0000000000 --- a/3party/glm/doc/api/namespacemembers_type_0x68.html +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- h -

    -
  • highp_bvec1 -: glm -
  • -
  • highp_bvec2 -: glm -
  • -
  • highp_bvec3 -: glm -
  • -
  • highp_bvec4 -: glm -
  • -
  • highp_ddualquat -: glm -
  • -
  • highp_dmat2 -: glm -
  • -
  • highp_dmat2x2 -: glm -
  • -
  • highp_dmat2x3 -: glm -
  • -
  • highp_dmat2x4 -: glm -
  • -
  • highp_dmat3 -: glm -
  • -
  • highp_dmat3x2 -: glm -
  • -
  • highp_dmat3x3 -: glm -
  • -
  • highp_dmat3x4 -: glm -
  • -
  • highp_dmat4 -: glm -
  • -
  • highp_dmat4x2 -: glm -
  • -
  • highp_dmat4x3 -: glm -
  • -
  • highp_dmat4x4 -: glm -
  • -
  • highp_dquat -: glm -
  • -
  • highp_dualquat -: glm -
  • -
  • highp_dvec2 -: glm -
  • -
  • highp_dvec3 -: glm -
  • -
  • highp_dvec4 -: glm -
  • -
  • highp_f32 -: glm -
  • -
  • highp_f32mat2 -: glm -
  • -
  • highp_f32mat2x2 -: glm -
  • -
  • highp_f32mat2x3 -: glm -
  • -
  • highp_f32mat2x4 -: glm -
  • -
  • highp_f32mat3 -: glm -
  • -
  • highp_f32mat3x2 -: glm -
  • -
  • highp_f32mat3x3 -: glm -
  • -
  • highp_f32mat3x4 -: glm -
  • -
  • highp_f32mat4 -: glm -
  • -
  • highp_f32mat4x2 -: glm -
  • -
  • highp_f32mat4x3 -: glm -
  • -
  • highp_f32mat4x4 -: glm -
  • -
  • highp_f32quat -: glm -
  • -
  • highp_f32vec1 -: glm -
  • -
  • highp_f32vec2 -: glm -
  • -
  • highp_f32vec3 -: glm -
  • -
  • highp_f32vec4 -: glm -
  • -
  • highp_f64 -: glm -
  • -
  • highp_f64mat2 -: glm -
  • -
  • highp_f64mat2x2 -: glm -
  • -
  • highp_f64mat2x3 -: glm -
  • -
  • highp_f64mat2x4 -: glm -
  • -
  • highp_f64mat3 -: glm -
  • -
  • highp_f64mat3x2 -: glm -
  • -
  • highp_f64mat3x3 -: glm -
  • -
  • highp_f64mat3x4 -: glm -
  • -
  • highp_f64mat4 -: glm -
  • -
  • highp_f64mat4x2 -: glm -
  • -
  • highp_f64mat4x3 -: glm -
  • -
  • highp_f64mat4x4 -: glm -
  • -
  • highp_f64quat -: glm -
  • -
  • highp_f64vec1 -: glm -
  • -
  • highp_f64vec2 -: glm -
  • -
  • highp_f64vec3 -: glm -
  • -
  • highp_f64vec4 -: glm -
  • -
  • highp_fdualquat -: glm -
  • -
  • highp_float -: glm -
  • -
  • highp_float32 -: glm -
  • -
  • highp_float32_t -: glm -
  • -
  • highp_float64 -: glm -
  • -
  • highp_float64_t -: glm -
  • -
  • highp_fmat2 -: glm -
  • -
  • highp_fmat2x2 -: glm -
  • -
  • highp_fmat2x3 -: glm -
  • -
  • highp_fmat2x4 -: glm -
  • -
  • highp_fmat3 -: glm -
  • -
  • highp_fmat3x2 -: glm -
  • -
  • highp_fmat3x3 -: glm -
  • -
  • highp_fmat3x4 -: glm -
  • -
  • highp_fmat4 -: glm -
  • -
  • highp_fmat4x2 -: glm -
  • -
  • highp_fmat4x3 -: glm -
  • -
  • highp_fmat4x4 -: glm -
  • -
  • highp_fquat -: glm -
  • -
  • highp_fvec1 -: glm -
  • -
  • highp_fvec2 -: glm -
  • -
  • highp_fvec3 -: glm -
  • -
  • highp_fvec4 -: glm -
  • -
  • highp_i16 -: glm -
  • -
  • highp_i16vec1 -: glm -
  • -
  • highp_i16vec2 -: glm -
  • -
  • highp_i16vec3 -: glm -
  • -
  • highp_i16vec4 -: glm -
  • -
  • highp_i32 -: glm -
  • -
  • highp_i32vec1 -: glm -
  • -
  • highp_i32vec2 -: glm -
  • -
  • highp_i32vec3 -: glm -
  • -
  • highp_i32vec4 -: glm -
  • -
  • highp_i64 -: glm -
  • -
  • highp_i64vec1 -: glm -
  • -
  • highp_i64vec2 -: glm -
  • -
  • highp_i64vec3 -: glm -
  • -
  • highp_i64vec4 -: glm -
  • -
  • highp_i8 -: glm -
  • -
  • highp_i8vec1 -: glm -
  • -
  • highp_i8vec2 -: glm -
  • -
  • highp_i8vec3 -: glm -
  • -
  • highp_i8vec4 -: glm -
  • -
  • highp_imat2 -: glm -
  • -
  • highp_imat2x2 -: glm -
  • -
  • highp_imat2x3 -: glm -
  • -
  • highp_imat2x4 -: glm -
  • -
  • highp_imat3 -: glm -
  • -
  • highp_imat3x2 -: glm -
  • -
  • highp_imat3x3 -: glm -
  • -
  • highp_imat3x4 -: glm -
  • -
  • highp_imat4 -: glm -
  • -
  • highp_imat4x2 -: glm -
  • -
  • highp_imat4x3 -: glm -
  • -
  • highp_imat4x4 -: glm -
  • -
  • highp_int -: glm -
  • -
  • highp_int16 -: glm -
  • -
  • highp_int16_t -: glm -
  • -
  • highp_int32 -: glm -
  • -
  • highp_int32_t -: glm -
  • -
  • highp_int64 -: glm -
  • -
  • highp_int64_t -: glm -
  • -
  • highp_int8 -: glm -
  • -
  • highp_int8_t -: glm -
  • -
  • highp_ivec1 -: glm -
  • -
  • highp_ivec2 -: glm -
  • -
  • highp_ivec3 -: glm -
  • -
  • highp_ivec4 -: glm -
  • -
  • highp_mat2 -: glm -
  • -
  • highp_mat2x2 -: glm -
  • -
  • highp_mat2x3 -: glm -
  • -
  • highp_mat2x4 -: glm -
  • -
  • highp_mat3 -: glm -
  • -
  • highp_mat3x2 -: glm -
  • -
  • highp_mat3x3 -: glm -
  • -
  • highp_mat3x4 -: glm -
  • -
  • highp_mat4 -: glm -
  • -
  • highp_mat4x2 -: glm -
  • -
  • highp_mat4x3 -: glm -
  • -
  • highp_mat4x4 -: glm -
  • -
  • highp_quat -: glm -
  • -
  • highp_u16 -: glm -
  • -
  • highp_u16vec1 -: glm -
  • -
  • highp_u16vec2 -: glm -
  • -
  • highp_u16vec3 -: glm -
  • -
  • highp_u16vec4 -: glm -
  • -
  • highp_u32 -: glm -
  • -
  • highp_u32vec1 -: glm -
  • -
  • highp_u32vec2 -: glm -
  • -
  • highp_u32vec3 -: glm -
  • -
  • highp_u32vec4 -: glm -
  • -
  • highp_u64 -: glm -
  • -
  • highp_u64vec1 -: glm -
  • -
  • highp_u64vec2 -: glm -
  • -
  • highp_u64vec3 -: glm -
  • -
  • highp_u64vec4 -: glm -
  • -
  • highp_u8 -: glm -
  • -
  • highp_u8vec1 -: glm -
  • -
  • highp_u8vec2 -: glm -
  • -
  • highp_u8vec3 -: glm -
  • -
  • highp_u8vec4 -: glm -
  • -
  • highp_uint -: glm -
  • -
  • highp_uint16 -: glm -
  • -
  • highp_uint16_t -: glm -
  • -
  • highp_uint32 -: glm -
  • -
  • highp_uint32_t -: glm -
  • -
  • highp_uint64 -: glm -
  • -
  • highp_uint64_t -: glm -
  • -
  • highp_uint8 -: glm -
  • -
  • highp_uint8_t -: glm -
  • -
  • highp_umat2 -: glm -
  • -
  • highp_umat2x2 -: glm -
  • -
  • highp_umat2x3 -: glm -
  • -
  • highp_umat2x4 -: glm -
  • -
  • highp_umat3 -: glm -
  • -
  • highp_umat3x2 -: glm -
  • -
  • highp_umat3x3 -: glm -
  • -
  • highp_umat3x4 -: glm -
  • -
  • highp_umat4 -: glm -
  • -
  • highp_umat4x2 -: glm -
  • -
  • highp_umat4x3 -: glm -
  • -
  • highp_umat4x4 -: glm -
  • -
  • highp_uvec1 -: glm -
  • -
  • highp_uvec2 -: glm -
  • -
  • highp_uvec3 -: glm -
  • -
  • highp_uvec4 -: glm -
  • -
  • highp_vec1 -: glm -
  • -
  • highp_vec2 -: glm -
  • -
  • highp_vec3 -: glm -
  • -
  • highp_vec4 -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type_0x69.html b/3party/glm/doc/api/namespacemembers_type_0x69.html deleted file mode 100755 index fedd19b742..0000000000 --- a/3party/glm/doc/api/namespacemembers_type_0x69.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- i -

    -
  • i16 -: glm -
  • -
  • i16vec1 -: glm -
  • -
  • i16vec2 -: glm -
  • -
  • i16vec3 -: glm -
  • -
  • i16vec4 -: glm -
  • -
  • i32 -: glm -
  • -
  • i32vec1 -: glm -
  • -
  • i32vec2 -: glm -
  • -
  • i32vec3 -: glm -
  • -
  • i32vec4 -: glm -
  • -
  • i64 -: glm -
  • -
  • i64vec1 -: glm -
  • -
  • i64vec2 -: glm -
  • -
  • i64vec3 -: glm -
  • -
  • i64vec4 -: glm -
  • -
  • i8 -: glm -
  • -
  • i8vec1 -: glm -
  • -
  • i8vec2 -: glm -
  • -
  • i8vec3 -: glm -
  • -
  • i8vec4 -: glm -
  • -
  • imat2 -: glm -
  • -
  • imat2x2 -: glm -
  • -
  • imat2x3 -: glm -
  • -
  • imat2x4 -: glm -
  • -
  • imat3 -: glm -
  • -
  • imat3x2 -: glm -
  • -
  • imat3x3 -: glm -
  • -
  • imat3x4 -: glm -
  • -
  • imat4 -: glm -
  • -
  • imat4x2 -: glm -
  • -
  • imat4x3 -: glm -
  • -
  • imat4x4 -: glm -
  • -
  • int1 -: glm -
  • -
  • int16 -: glm -
  • -
  • int16_t -: glm -
  • -
  • int1x1 -: glm -
  • -
  • int2 -: glm -
  • -
  • int2x2 -: glm -
  • -
  • int2x3 -: glm -
  • -
  • int2x4 -: glm -
  • -
  • int3 -: glm -
  • -
  • int32 -: glm -
  • -
  • int32_t -: glm -
  • -
  • int3x2 -: glm -
  • -
  • int3x3 -: glm -
  • -
  • int3x4 -: glm -
  • -
  • int4 -: glm -
  • -
  • int4x2 -: glm -
  • -
  • int4x3 -: glm -
  • -
  • int4x4 -: glm -
  • -
  • int64 -: glm -
  • -
  • int64_t -: glm -
  • -
  • int8 -: glm -
  • -
  • int8_t -: glm -
  • -
  • ivec1 -: glm -
  • -
  • ivec2 -: glm -
  • -
  • ivec3 -: glm -
  • -
  • ivec4 -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type_0x6c.html b/3party/glm/doc/api/namespacemembers_type_0x6c.html deleted file mode 100755 index 659a4e0176..0000000000 --- a/3party/glm/doc/api/namespacemembers_type_0x6c.html +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- l -

    -
  • lowp_bvec1 -: glm -
  • -
  • lowp_bvec2 -: glm -
  • -
  • lowp_bvec3 -: glm -
  • -
  • lowp_bvec4 -: glm -
  • -
  • lowp_ddualquat -: glm -
  • -
  • lowp_dmat2 -: glm -
  • -
  • lowp_dmat2x2 -: glm -
  • -
  • lowp_dmat2x3 -: glm -
  • -
  • lowp_dmat2x4 -: glm -
  • -
  • lowp_dmat3 -: glm -
  • -
  • lowp_dmat3x2 -: glm -
  • -
  • lowp_dmat3x3 -: glm -
  • -
  • lowp_dmat3x4 -: glm -
  • -
  • lowp_dmat4 -: glm -
  • -
  • lowp_dmat4x2 -: glm -
  • -
  • lowp_dmat4x3 -: glm -
  • -
  • lowp_dmat4x4 -: glm -
  • -
  • lowp_dquat -: glm -
  • -
  • lowp_dualquat -: glm -
  • -
  • lowp_dvec2 -: glm -
  • -
  • lowp_dvec3 -: glm -
  • -
  • lowp_dvec4 -: glm -
  • -
  • lowp_f32 -: glm -
  • -
  • lowp_f32mat2 -: glm -
  • -
  • lowp_f32mat2x2 -: glm -
  • -
  • lowp_f32mat2x3 -: glm -
  • -
  • lowp_f32mat2x4 -: glm -
  • -
  • lowp_f32mat3 -: glm -
  • -
  • lowp_f32mat3x2 -: glm -
  • -
  • lowp_f32mat3x3 -: glm -
  • -
  • lowp_f32mat3x4 -: glm -
  • -
  • lowp_f32mat4 -: glm -
  • -
  • lowp_f32mat4x2 -: glm -
  • -
  • lowp_f32mat4x3 -: glm -
  • -
  • lowp_f32mat4x4 -: glm -
  • -
  • lowp_f32quat -: glm -
  • -
  • lowp_f32vec1 -: glm -
  • -
  • lowp_f32vec2 -: glm -
  • -
  • lowp_f32vec3 -: glm -
  • -
  • lowp_f32vec4 -: glm -
  • -
  • lowp_f64 -: glm -
  • -
  • lowp_f64mat2 -: glm -
  • -
  • lowp_f64mat2x2 -: glm -
  • -
  • lowp_f64mat2x3 -: glm -
  • -
  • lowp_f64mat2x4 -: glm -
  • -
  • lowp_f64mat3 -: glm -
  • -
  • lowp_f64mat3x2 -: glm -
  • -
  • lowp_f64mat3x3 -: glm -
  • -
  • lowp_f64mat3x4 -: glm -
  • -
  • lowp_f64mat4 -: glm -
  • -
  • lowp_f64mat4x2 -: glm -
  • -
  • lowp_f64mat4x3 -: glm -
  • -
  • lowp_f64mat4x4 -: glm -
  • -
  • lowp_f64quat -: glm -
  • -
  • lowp_f64vec1 -: glm -
  • -
  • lowp_f64vec2 -: glm -
  • -
  • lowp_f64vec3 -: glm -
  • -
  • lowp_f64vec4 -: glm -
  • -
  • lowp_fdualquat -: glm -
  • -
  • lowp_float -: glm -
  • -
  • lowp_float32 -: glm -
  • -
  • lowp_float32_t -: glm -
  • -
  • lowp_float64 -: glm -
  • -
  • lowp_float64_t -: glm -
  • -
  • lowp_fmat2 -: glm -
  • -
  • lowp_fmat2x2 -: glm -
  • -
  • lowp_fmat2x3 -: glm -
  • -
  • lowp_fmat2x4 -: glm -
  • -
  • lowp_fmat3 -: glm -
  • -
  • lowp_fmat3x2 -: glm -
  • -
  • lowp_fmat3x3 -: glm -
  • -
  • lowp_fmat3x4 -: glm -
  • -
  • lowp_fmat4 -: glm -
  • -
  • lowp_fmat4x2 -: glm -
  • -
  • lowp_fmat4x3 -: glm -
  • -
  • lowp_fmat4x4 -: glm -
  • -
  • lowp_fquat -: glm -
  • -
  • lowp_fvec1 -: glm -
  • -
  • lowp_fvec2 -: glm -
  • -
  • lowp_fvec3 -: glm -
  • -
  • lowp_fvec4 -: glm -
  • -
  • lowp_i16 -: glm -
  • -
  • lowp_i16vec1 -: glm -
  • -
  • lowp_i16vec2 -: glm -
  • -
  • lowp_i16vec3 -: glm -
  • -
  • lowp_i16vec4 -: glm -
  • -
  • lowp_i32 -: glm -
  • -
  • lowp_i32vec1 -: glm -
  • -
  • lowp_i32vec2 -: glm -
  • -
  • lowp_i32vec3 -: glm -
  • -
  • lowp_i32vec4 -: glm -
  • -
  • lowp_i64 -: glm -
  • -
  • lowp_i64vec1 -: glm -
  • -
  • lowp_i64vec2 -: glm -
  • -
  • lowp_i64vec3 -: glm -
  • -
  • lowp_i64vec4 -: glm -
  • -
  • lowp_i8 -: glm -
  • -
  • lowp_i8vec1 -: glm -
  • -
  • lowp_i8vec2 -: glm -
  • -
  • lowp_i8vec3 -: glm -
  • -
  • lowp_i8vec4 -: glm -
  • -
  • lowp_imat2 -: glm -
  • -
  • lowp_imat2x2 -: glm -
  • -
  • lowp_imat2x3 -: glm -
  • -
  • lowp_imat2x4 -: glm -
  • -
  • lowp_imat3 -: glm -
  • -
  • lowp_imat3x2 -: glm -
  • -
  • lowp_imat3x3 -: glm -
  • -
  • lowp_imat3x4 -: glm -
  • -
  • lowp_imat4 -: glm -
  • -
  • lowp_imat4x2 -: glm -
  • -
  • lowp_imat4x3 -: glm -
  • -
  • lowp_imat4x4 -: glm -
  • -
  • lowp_int -: glm -
  • -
  • lowp_int16 -: glm -
  • -
  • lowp_int16_t -: glm -
  • -
  • lowp_int32 -: glm -
  • -
  • lowp_int32_t -: glm -
  • -
  • lowp_int64 -: glm -
  • -
  • lowp_int64_t -: glm -
  • -
  • lowp_int8 -: glm -
  • -
  • lowp_int8_t -: glm -
  • -
  • lowp_ivec1 -: glm -
  • -
  • lowp_ivec2 -: glm -
  • -
  • lowp_ivec3 -: glm -
  • -
  • lowp_ivec4 -: glm -
  • -
  • lowp_mat2 -: glm -
  • -
  • lowp_mat2x2 -: glm -
  • -
  • lowp_mat2x3 -: glm -
  • -
  • lowp_mat2x4 -: glm -
  • -
  • lowp_mat3 -: glm -
  • -
  • lowp_mat3x2 -: glm -
  • -
  • lowp_mat3x3 -: glm -
  • -
  • lowp_mat3x4 -: glm -
  • -
  • lowp_mat4 -: glm -
  • -
  • lowp_mat4x2 -: glm -
  • -
  • lowp_mat4x3 -: glm -
  • -
  • lowp_mat4x4 -: glm -
  • -
  • lowp_quat -: glm -
  • -
  • lowp_u16 -: glm -
  • -
  • lowp_u16vec1 -: glm -
  • -
  • lowp_u16vec2 -: glm -
  • -
  • lowp_u16vec3 -: glm -
  • -
  • lowp_u16vec4 -: glm -
  • -
  • lowp_u32 -: glm -
  • -
  • lowp_u32vec1 -: glm -
  • -
  • lowp_u32vec2 -: glm -
  • -
  • lowp_u32vec3 -: glm -
  • -
  • lowp_u32vec4 -: glm -
  • -
  • lowp_u64 -: glm -
  • -
  • lowp_u64vec1 -: glm -
  • -
  • lowp_u64vec2 -: glm -
  • -
  • lowp_u64vec3 -: glm -
  • -
  • lowp_u64vec4 -: glm -
  • -
  • lowp_u8 -: glm -
  • -
  • lowp_u8vec1 -: glm -
  • -
  • lowp_u8vec2 -: glm -
  • -
  • lowp_u8vec3 -: glm -
  • -
  • lowp_u8vec4 -: glm -
  • -
  • lowp_uint -: glm -
  • -
  • lowp_uint16 -: glm -
  • -
  • lowp_uint16_t -: glm -
  • -
  • lowp_uint32 -: glm -
  • -
  • lowp_uint32_t -: glm -
  • -
  • lowp_uint64 -: glm -
  • -
  • lowp_uint64_t -: glm -
  • -
  • lowp_uint8 -: glm -
  • -
  • lowp_uint8_t -: glm -
  • -
  • lowp_umat2 -: glm -
  • -
  • lowp_umat2x2 -: glm -
  • -
  • lowp_umat2x3 -: glm -
  • -
  • lowp_umat2x4 -: glm -
  • -
  • lowp_umat3 -: glm -
  • -
  • lowp_umat3x2 -: glm -
  • -
  • lowp_umat3x3 -: glm -
  • -
  • lowp_umat3x4 -: glm -
  • -
  • lowp_umat4 -: glm -
  • -
  • lowp_umat4x2 -: glm -
  • -
  • lowp_umat4x3 -: glm -
  • -
  • lowp_umat4x4 -: glm -
  • -
  • lowp_uvec1 -: glm -
  • -
  • lowp_uvec2 -: glm -
  • -
  • lowp_uvec3 -: glm -
  • -
  • lowp_uvec4 -: glm -
  • -
  • lowp_vec1 -: glm -
  • -
  • lowp_vec2 -: glm -
  • -
  • lowp_vec3 -: glm -
  • -
  • lowp_vec4 -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type_0x6d.html b/3party/glm/doc/api/namespacemembers_type_0x6d.html deleted file mode 100755 index 4c0e3f8b7d..0000000000 --- a/3party/glm/doc/api/namespacemembers_type_0x6d.html +++ /dev/null @@ -1,682 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- m -

    -
  • mat2 -: glm -
  • -
  • mat2x2 -: glm -
  • -
  • mat2x3 -: glm -
  • -
  • mat2x4 -: glm -
  • -
  • mat3 -: glm -
  • -
  • mat3x2 -: glm -
  • -
  • mat3x3 -: glm -
  • -
  • mat3x4 -: glm -
  • -
  • mat4 -: glm -
  • -
  • mat4x2 -: glm -
  • -
  • mat4x3 -: glm -
  • -
  • mat4x4 -: glm -
  • -
  • mediump_bvec1 -: glm -
  • -
  • mediump_bvec2 -: glm -
  • -
  • mediump_bvec3 -: glm -
  • -
  • mediump_bvec4 -: glm -
  • -
  • mediump_ddualquat -: glm -
  • -
  • mediump_dmat2 -: glm -
  • -
  • mediump_dmat2x2 -: glm -
  • -
  • mediump_dmat2x3 -: glm -
  • -
  • mediump_dmat2x4 -: glm -
  • -
  • mediump_dmat3 -: glm -
  • -
  • mediump_dmat3x2 -: glm -
  • -
  • mediump_dmat3x3 -: glm -
  • -
  • mediump_dmat3x4 -: glm -
  • -
  • mediump_dmat4 -: glm -
  • -
  • mediump_dmat4x2 -: glm -
  • -
  • mediump_dmat4x3 -: glm -
  • -
  • mediump_dmat4x4 -: glm -
  • -
  • mediump_dquat -: glm -
  • -
  • mediump_dualquat -: glm -
  • -
  • mediump_dvec2 -: glm -
  • -
  • mediump_dvec3 -: glm -
  • -
  • mediump_dvec4 -: glm -
  • -
  • mediump_f32 -: glm -
  • -
  • mediump_f32mat2 -: glm -
  • -
  • mediump_f32mat2x2 -: glm -
  • -
  • mediump_f32mat2x3 -: glm -
  • -
  • mediump_f32mat2x4 -: glm -
  • -
  • mediump_f32mat3 -: glm -
  • -
  • mediump_f32mat3x2 -: glm -
  • -
  • mediump_f32mat3x3 -: glm -
  • -
  • mediump_f32mat3x4 -: glm -
  • -
  • mediump_f32mat4 -: glm -
  • -
  • mediump_f32mat4x2 -: glm -
  • -
  • mediump_f32mat4x3 -: glm -
  • -
  • mediump_f32mat4x4 -: glm -
  • -
  • mediump_f32quat -: glm -
  • -
  • mediump_f32vec1 -: glm -
  • -
  • mediump_f32vec2 -: glm -
  • -
  • mediump_f32vec3 -: glm -
  • -
  • mediump_f32vec4 -: glm -
  • -
  • mediump_f64 -: glm -
  • -
  • mediump_f64mat2 -: glm -
  • -
  • mediump_f64mat2x2 -: glm -
  • -
  • mediump_f64mat2x3 -: glm -
  • -
  • mediump_f64mat2x4 -: glm -
  • -
  • mediump_f64mat3 -: glm -
  • -
  • mediump_f64mat3x2 -: glm -
  • -
  • mediump_f64mat3x3 -: glm -
  • -
  • mediump_f64mat3x4 -: glm -
  • -
  • mediump_f64mat4 -: glm -
  • -
  • mediump_f64mat4x2 -: glm -
  • -
  • mediump_f64mat4x3 -: glm -
  • -
  • mediump_f64mat4x4 -: glm -
  • -
  • mediump_f64quat -: glm -
  • -
  • mediump_f64vec1 -: glm -
  • -
  • mediump_f64vec2 -: glm -
  • -
  • mediump_f64vec3 -: glm -
  • -
  • mediump_f64vec4 -: glm -
  • -
  • mediump_fdualquat -: glm -
  • -
  • mediump_float -: glm -
  • -
  • mediump_float32 -: glm -
  • -
  • mediump_float32_t -: glm -
  • -
  • mediump_float64 -: glm -
  • -
  • mediump_float64_t -: glm -
  • -
  • mediump_fmat2 -: glm -
  • -
  • mediump_fmat2x2 -: glm -
  • -
  • mediump_fmat2x3 -: glm -
  • -
  • mediump_fmat2x4 -: glm -
  • -
  • mediump_fmat3 -: glm -
  • -
  • mediump_fmat3x2 -: glm -
  • -
  • mediump_fmat3x3 -: glm -
  • -
  • mediump_fmat3x4 -: glm -
  • -
  • mediump_fmat4 -: glm -
  • -
  • mediump_fmat4x2 -: glm -
  • -
  • mediump_fmat4x3 -: glm -
  • -
  • mediump_fmat4x4 -: glm -
  • -
  • mediump_fquat -: glm -
  • -
  • mediump_fvec1 -: glm -
  • -
  • mediump_fvec2 -: glm -
  • -
  • mediump_fvec3 -: glm -
  • -
  • mediump_fvec4 -: glm -
  • -
  • mediump_i16 -: glm -
  • -
  • mediump_i16vec1 -: glm -
  • -
  • mediump_i16vec2 -: glm -
  • -
  • mediump_i16vec3 -: glm -
  • -
  • mediump_i16vec4 -: glm -
  • -
  • mediump_i32 -: glm -
  • -
  • mediump_i32vec1 -: glm -
  • -
  • mediump_i32vec2 -: glm -
  • -
  • mediump_i32vec3 -: glm -
  • -
  • mediump_i32vec4 -: glm -
  • -
  • mediump_i64 -: glm -
  • -
  • mediump_i64vec1 -: glm -
  • -
  • mediump_i64vec2 -: glm -
  • -
  • mediump_i64vec3 -: glm -
  • -
  • mediump_i64vec4 -: glm -
  • -
  • mediump_i8 -: glm -
  • -
  • mediump_i8vec1 -: glm -
  • -
  • mediump_i8vec2 -: glm -
  • -
  • mediump_i8vec3 -: glm -
  • -
  • mediump_i8vec4 -: glm -
  • -
  • mediump_imat2 -: glm -
  • -
  • mediump_imat2x2 -: glm -
  • -
  • mediump_imat2x3 -: glm -
  • -
  • mediump_imat2x4 -: glm -
  • -
  • mediump_imat3 -: glm -
  • -
  • mediump_imat3x2 -: glm -
  • -
  • mediump_imat3x3 -: glm -
  • -
  • mediump_imat3x4 -: glm -
  • -
  • mediump_imat4 -: glm -
  • -
  • mediump_imat4x2 -: glm -
  • -
  • mediump_imat4x3 -: glm -
  • -
  • mediump_imat4x4 -: glm -
  • -
  • mediump_int -: glm -
  • -
  • mediump_int16 -: glm -
  • -
  • mediump_int16_t -: glm -
  • -
  • mediump_int32 -: glm -
  • -
  • mediump_int32_t -: glm -
  • -
  • mediump_int64 -: glm -
  • -
  • mediump_int64_t -: glm -
  • -
  • mediump_int8 -: glm -
  • -
  • mediump_int8_t -: glm -
  • -
  • mediump_ivec1 -: glm -
  • -
  • mediump_ivec2 -: glm -
  • -
  • mediump_ivec3 -: glm -
  • -
  • mediump_ivec4 -: glm -
  • -
  • mediump_mat2 -: glm -
  • -
  • mediump_mat2x2 -: glm -
  • -
  • mediump_mat2x3 -: glm -
  • -
  • mediump_mat2x4 -: glm -
  • -
  • mediump_mat3 -: glm -
  • -
  • mediump_mat3x2 -: glm -
  • -
  • mediump_mat3x3 -: glm -
  • -
  • mediump_mat3x4 -: glm -
  • -
  • mediump_mat4 -: glm -
  • -
  • mediump_mat4x2 -: glm -
  • -
  • mediump_mat4x3 -: glm -
  • -
  • mediump_mat4x4 -: glm -
  • -
  • mediump_quat -: glm -
  • -
  • mediump_u16 -: glm -
  • -
  • mediump_u16vec1 -: glm -
  • -
  • mediump_u16vec2 -: glm -
  • -
  • mediump_u16vec3 -: glm -
  • -
  • mediump_u16vec4 -: glm -
  • -
  • mediump_u32 -: glm -
  • -
  • mediump_u32vec1 -: glm -
  • -
  • mediump_u32vec2 -: glm -
  • -
  • mediump_u32vec3 -: glm -
  • -
  • mediump_u32vec4 -: glm -
  • -
  • mediump_u64 -: glm -
  • -
  • mediump_u64vec1 -: glm -
  • -
  • mediump_u64vec2 -: glm -
  • -
  • mediump_u64vec3 -: glm -
  • -
  • mediump_u64vec4 -: glm -
  • -
  • mediump_u8 -: glm -
  • -
  • mediump_u8vec1 -: glm -
  • -
  • mediump_u8vec2 -: glm -
  • -
  • mediump_u8vec3 -: glm -
  • -
  • mediump_u8vec4 -: glm -
  • -
  • mediump_uint -: glm -
  • -
  • mediump_uint16 -: glm -
  • -
  • mediump_uint16_t -: glm -
  • -
  • mediump_uint32 -: glm -
  • -
  • mediump_uint32_t -: glm -
  • -
  • mediump_uint64 -: glm -
  • -
  • mediump_uint64_t -: glm -
  • -
  • mediump_uint8 -: glm -
  • -
  • mediump_uint8_t -: glm -
  • -
  • mediump_umat2 -: glm -
  • -
  • mediump_umat2x2 -: glm -
  • -
  • mediump_umat2x3 -: glm -
  • -
  • mediump_umat2x4 -: glm -
  • -
  • mediump_umat3 -: glm -
  • -
  • mediump_umat3x2 -: glm -
  • -
  • mediump_umat3x3 -: glm -
  • -
  • mediump_umat3x4 -: glm -
  • -
  • mediump_umat4 -: glm -
  • -
  • mediump_umat4x2 -: glm -
  • -
  • mediump_umat4x3 -: glm -
  • -
  • mediump_umat4x4 -: glm -
  • -
  • mediump_uvec1 -: glm -
  • -
  • mediump_uvec2 -: glm -
  • -
  • mediump_uvec3 -: glm -
  • -
  • mediump_uvec4 -: glm -
  • -
  • mediump_vec1 -: glm -
  • -
  • mediump_vec2 -: glm -
  • -
  • mediump_vec3 -: glm -
  • -
  • mediump_vec4 -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type_0x71.html b/3party/glm/doc/api/namespacemembers_type_0x71.html deleted file mode 100755 index 43a34e8496..0000000000 --- a/3party/glm/doc/api/namespacemembers_type_0x71.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- q -

    -
  • quat -: glm -
  • -
  • qword -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type_0x73.html b/3party/glm/doc/api/namespacemembers_type_0x73.html deleted file mode 100755 index 188b7248df..0000000000 --- a/3party/glm/doc/api/namespacemembers_type_0x73.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- s -

    -
  • sint -: glm -
  • -
  • size2 -: glm -
  • -
  • size2_t -: glm -
  • -
  • size3 -: glm -
  • -
  • size3_t -: glm -
  • -
  • size4 -: glm -
  • -
  • size4_t -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type_0x75.html b/3party/glm/doc/api/namespacemembers_type_0x75.html deleted file mode 100755 index 9bb5d7ead0..0000000000 --- a/3party/glm/doc/api/namespacemembers_type_0x75.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- u -

    -
  • u16 -: glm -
  • -
  • u16vec1 -: glm -
  • -
  • u16vec2 -: glm -
  • -
  • u16vec3 -: glm -
  • -
  • u16vec4 -: glm -
  • -
  • u32 -: glm -
  • -
  • u32vec1 -: glm -
  • -
  • u32vec2 -: glm -
  • -
  • u32vec3 -: glm -
  • -
  • u32vec4 -: glm -
  • -
  • u64 -: glm -
  • -
  • u64vec1 -: glm -
  • -
  • u64vec2 -: glm -
  • -
  • u64vec3 -: glm -
  • -
  • u64vec4 -: glm -
  • -
  • u8 -: glm -
  • -
  • u8vec1 -: glm -
  • -
  • u8vec2 -: glm -
  • -
  • u8vec3 -: glm -
  • -
  • u8vec4 -: glm -
  • -
  • uint -: glm -
  • -
  • uint16 -: glm -
  • -
  • uint16_t -: glm -
  • -
  • uint32 -: glm -
  • -
  • uint32_t -: glm -
  • -
  • uint64 -: glm -
  • -
  • uint64_t -: glm -
  • -
  • uint8 -: glm -
  • -
  • uint8_t -: glm -
  • -
  • umat2 -: glm -
  • -
  • umat2x2 -: glm -
  • -
  • umat2x3 -: glm -
  • -
  • umat2x4 -: glm -
  • -
  • umat3 -: glm -
  • -
  • umat3x2 -: glm -
  • -
  • umat3x3 -: glm -
  • -
  • umat3x4 -: glm -
  • -
  • umat4 -: glm -
  • -
  • umat4x2 -: glm -
  • -
  • umat4x3 -: glm -
  • -
  • umat4x4 -: glm -
  • -
  • uvec1 -: glm -
  • -
  • uvec2 -: glm -
  • -
  • uvec3 -: glm -
  • -
  • uvec4 -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type_0x76.html b/3party/glm/doc/api/namespacemembers_type_0x76.html deleted file mode 100755 index 5b4d15f165..0000000000 --- a/3party/glm/doc/api/namespacemembers_type_0x76.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- v -

    -
  • vec1 -: glm -
  • -
  • vec2 -: glm -
  • -
  • vec3 -: glm -
  • -
  • vec4 -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespacemembers_type_0x77.html b/3party/glm/doc/api/namespacemembers_type_0x77.html deleted file mode 100755 index c3d11953d6..0000000000 --- a/3party/glm/doc/api/namespacemembers_type_0x77.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -GLM: Namespace Members - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - - - -
-
-  - -

- w -

    -
  • word -: glm -
  • -
-
- - - - diff --git a/3party/glm/doc/api/namespaces.html b/3party/glm/doc/api/namespaces.html deleted file mode 100755 index 79a5cccfd5..0000000000 --- a/3party/glm/doc/api/namespaces.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - -GLM: Namespace List - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - - -
-
-
-
Namespace List
-
-
-
Here is a list of all documented namespaces with brief descriptions:
- - -
\NglmOpenGL Mathematics (glm.g-truc.net)
-
-
- - - - diff --git a/3party/glm/doc/api/nav_f.png b/3party/glm/doc/api/nav_f.png deleted file mode 100755 index 72a58a529ed3a9ed6aa0c51a79cf207e026deee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U diff --git a/3party/glm/doc/api/nav_g.png b/3party/glm/doc/api/nav_g.png deleted file mode 100755 index 2093a237a94f6c83e19ec6e5fd42f7ddabdafa81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM - - - - - -GLM: Related Pages - - - - - - -
-
- - - - - - -
-
GLM -  0.9.5 -
-
-
- - - -
-
-
-
Related Pages
-
-
-
Here is a list of all related documentation pages:
-
- - - - diff --git a/3party/glm/doc/api/sync_off.png b/3party/glm/doc/api/sync_off.png deleted file mode 100755 index 3b443fc62892114406e3d399421b2a881b897acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* diff --git a/3party/glm/doc/api/sync_on.png b/3party/glm/doc/api/sync_on.png deleted file mode 100755 index e08320fb64e6fa33b573005ed6d8fe294e19db76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 diff --git a/3party/glm/doc/api/tab_a.png b/3party/glm/doc/api/tab_a.png deleted file mode 100755 index 3b725c41c5a527a3a3e40097077d0e206a681247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 diff --git a/3party/glm/doc/api/tab_b.png b/3party/glm/doc/api/tab_b.png deleted file mode 100755 index e2b4a8638cb3496a016eaed9e16ffc12846dea18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ diff --git a/3party/glm/doc/api/tabs.css b/3party/glm/doc/api/tabs.css deleted file mode 100755 index 636277d9e9..0000000000 --- a/3party/glm/doc/api/tabs.css +++ /dev/null @@ -1,79 +0,0 @@ -.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/3party/glm/doc/glm.docx b/3party/glm/doc/glm.docx deleted file mode 100755 index de9d1eaa9ac9e0ea698975c5ec58855cec6b608e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1091062 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�bT$v&-$SJf zcv`#0Ry@N`1W{48T9A(gx55$GF;0^N6yP~l8|QQCaCRPNJcx*6L%5!H-0-2znD*q9 z-+}?~i?32b5MQ%q0#w~6k}nTfE;j)W+qWVYE!paAh!oT{v~KA<<43G&Cvy|o`BmG0 zdJw_t3J~&?cLmqIqo3XZsfxcKOI;#puT zeH955d-V6=4guSU_uWkCye!)J%eCe{-6?zy0uk9lV@Cy0A#r=!~kq50aU)H z5fRk2tmv;M_>ftaSr<^Vax9U(2;xoVE8*?k^($vjqg+8RRH~K7p8j(}W2^5UkA5%n zh>)d{%Cu4F!aw{XPq5y%diJ4oC9ntgz?n+wj z_T8P9Q`yT=Uss=%7>28q8kMKnqO9l##XG89qS3^nF1nU7eD2J3JX~1xAx_R*;!muE zcO(mxCAy*?kBpewL7`49`#vW`Nf$|W4`849)a&j+&y&YfzsyH8=L<2VdzoMvbH6!9 z9~x5if>yd97Z{dC2Oa5;2KMy7tAalhbk$5CJ2lJ{Leku)*V-%y6j1a*o#>1k*E1_q z2lU*kvTwZm+sYHXwrpR1PC0@5P5liC?>{J!js#p zoifi`J3h&>%yT!RBx>( z4RgQV8r;3pFu(1j>jkfxK*Sg|KkE@=Si8;`c9-(3<_6V|oZ-&H*7mZG_RyG?n#d0I zNPFlI66|oUTF~x-Ek1gMm*?1O{>R}}^j4RoeG9JC-(M9$+8hs5#E;dgZJ(7_*Vco- zbwdzeuZaf9+}_@O4GunKjjl#loKhkj9O1PapngC@K$jWHMLoqtCWDTHv?Y=#y$%`5LT^##3ou~>Ap zzc>eK|E*H=Jn>+o9%(j4E%SRknmyz}u(#tIu)Je(2tB(%T`fF;W_%I;D&8{gVR;`P z$k6?B3_7}$QLM%P;GV@%g!@Ng8lT?5)!a}3QJIy0$>@A6#kb=GTmRW_zA}aur^wZS z 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

Vh~C5p`m$jyPtk(ix~}6 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

Lc%$sC9CuvrH?)=8gX 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

Tr#G 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-~2nh(L6y0oXfrL5hRJzm5~@^Ft10J z<}Zfc6j-$O#Mr?@{7;UxhG&deI5@ZOA2(W3=d;|w_^IO46~Fd$8&v)20R07doU$w` z?8FBqwRNpsUg@qiM#(R_LVBKgtW|5zh~6t(Zwc8Jl5!FlA{p4dGJmPBlA{-2nxxHP zXh%~20EXa`U)7?tu^XnC;YZMBy^G;@!#H%sHyVohmw|ZC-He`qd)H_CHU7hzg3l%Q ziA&l#L`l1pY)DD$p!MTC*QIJ_z&{5eeXRZ_zO&@2H||lrN$zW|t^yvxRh+p~zWtYF zyX({b28t4zO&&?$zuBiy@f4G4nxt|)wYh0zcQ{!9IodN_2glFb;^KdY@pw<+KAiSn zW{>RCNTUHj7$I@|>y`MK`$}uxJ>6w$$4k?)K(~YC1bd$K<+}W4-V*7BE_-)1=EpIG zHSBPysJ-8R)i0gM_BMBCp6fA7tV++TL>1&>TX!V$SG*~2X<%L}$dtn<+ni*Ir+;(0 z?aYJ|nn<-|h52;YDpFq&lQ(-tU3PxRx_Tw z)@|hTwn!MNjS1GWnKGTuvOQU6LLqqQkPtJ{yUz-1DL7T1 zufIy{h8hs}S&u#UH8fudn4tuz$Uc>@AU2Q=2sN>!taDlnW2I;7t>vp@01gFtnYJ1+ zqsq{=n~3gwxDmKLdsVq~8?zQ=$MvnN zje6Q3Wo!&{io(^ret}NKz#L~h*MUy0N|St%(ALU3?q|)QFqo1@UU60}^g$<7I2~&a z@5krQBnm6W_MANX?%aGCX=VUahx$2 z0@HL8P)}iDZPrY{K^x;h_?1E0`U!Xw-ld4)g zg;!*N=jmSK7NZg*a@#4KxES)(vvc1y^2dt2dM#%HHW>$;SJod1qkj~5KTW>2C&-!= z1jd;sj)eBF(fBhP97C;5Et-C(-tbLz%T}B2nPSg;g<4pN?S);^H$I&OZfVl1yTNa5 zK1Ul!$^83On+q@O$mHIti5bS`2Rxrnq}Kj}qfaZyVId;wWFw!z8vCwZ=jbt9yPkjJ zn=6Q0?CN5Pq`_rgTORb!g^&$CO-2!qDZ;o1o_m_y@rI7j-pDldH!gX39R1&H{{TwO z@a?(NEiWaV({r7p9T(_(n%a%|&tnZz(Xr0>s>(LLDC)mu+)3k{pXh6W@db=Ap;U;) z2v$_*EuT-Nclyqkb#Xh~E0A2^D-J+DmCnA6aJq`y#j;kDBg`xE$DeNX(N-5ej*Pk1 z=O3bY5(`+D?SH#`mqkI-K7zPEjeicWb!LVOC?k`8;>0N)U%7A6zK+xUF%^_M-2I~B zB^WKn@BXz?@n?oxP0}a2g+%V^#o|>A%>JKB;gvnlLj#PJEJBi3erMSw}mvz zy+-2%+k@ZbQ`j2(+W5KR>3ntZw^_TolkF;HAq(;b4mhuS9gC%bP>oK%*Wi9znQ;to z^(m^)M*jfeihc$7duyvnXl`Cb7Xxs@^Yr?P_01>2Rzlb{^lJAOxtrdZ8YtQ@UqH^@51Er0r&K;TJVOXy3A`FAZ1yB3~=8=RT!w*t&YF#I!!-uoOrta-E$m9w|OCV5lBYEgPwmX=k&R6yiusl4XZSe+o^d@ zFhKOKli~)yrCM3Z_IZ@c&N;zv{=H-TGS;EettDXFrn@`e>DX73h@%?vbgyftsq^@l z`&-8Lzf%)a25sU|>_O@)mDHj(vPkEEdRL)%s@62ScSQtA^9*t;hVj4_T6XMnU(c1W z6)>2o(UaM<{!IKw6G~Jo%AB`Nq92Bz6%$JF47M7;SuL(tVcpK*T+i(lXAg#!$4=4Z z-)kXjw2Ytid%6nd{5zyvc&ElI9g$)qV=RyT#2rm&S?Jdv7Ct7&4Zi6i4YwztjXVDU zpIZ8SCLh^r-}5!4JI7vzZOEF)SXtaLMT!-ZZ=r5Yc76--RMr3`y~L;oAyvo(ip==) zW&M@oh*=OUQroI2QGxRD(z*RA`I~8o4RD^P6~iVIjav+B`ePaSK;qc&--f_p%=2-n-9; z{{SLBMsu3;@=olx{{X7KqX8~>bEBcVy-OCz6-Ms7bQP+S1XUJlXBTdpMo0CDuLN)vKv7*7#(b5eV#{2Afhk>E2grFnk2s5SlLG|WjS z@~!V5_?X_^vI0s*af;-YP3~J6=ku<*cdI8+?bFclt5oNAE@`%A?%@#zOCA8PQkTKs zVEAotv&LD95->UGR6YXyJ%1Ex>olvFqdDYvuc2=KA47klOKeaDDS`FHb>ZoIOUe2p zY$hGomp4P=NNr@2?_v*_906X-@L%Bn0NM&_J|SI^L^sA5V8UU%awXnb*OEu$mMjkf|j4)x87_H|*)b02H(q|Oh+ znv-gmHpqdp%n^V!>K_$aIXpXJwxkaz1vxz{jZXz9hAm~585G`$Ld2b$-nz{L!!v6V zK%OqTjW>^xN%?RpDCKd69=*El`hF+UVWA2bO0$#SL`5F62Y|j7-CkcfihIN{#C!Cw z4Dij_pIQ=3#hsfwy=$xeq5Nn4wcU6Wzde5{>AWwdZqw8-?TY98S88C?8z10R)5Az6U$X zo0l~;xyOp9%XuT!yf5K#sMx1{!1?c1+!i_0=g|u)g^?Gpz(uW zq~!Q&ba1eQmZ=_7t0$s7wp~BUI4Q!8YMtA8EAn;gT~51c<;Zp~TIMw?W-Wy4>0K3S zC_5mzm2s)c#|lXNdeum5r@o(ihCJ5BouhrOf0z;nG}{IS4r{{Ab2?ab zomp7}=4GFScZW;9LZ=u#E9x(XzA@iyiz6O`89i&|%Pm^hOt=o7Sof~4K=|Dbk+*Ds z0oyg`<=kzR;c2dF$j1d+6PMTawAuA!+K9MAwBtUN&uaIiXY@7ZJ{J9;VAUB>rO9k$ zS50@~fqwvam|?5#@_r`5W{~E?%`|@d!(3-hbmI!L)PAF@1a41G)dXH7SPn_)T(^k) zLH0RI9AN&H&t3S$43%+`dsn#eD(C35^N39;DITwH<6wuGI6n1TTKI;k0o^Z8$C~lW z--troV90uOtQ~9OI~WUZVtAao$rkPBdVj}$364XygTAQ#c1OWJkVHs z)?bYLc`eX?B(cv<_2b?%p7T(V*~69mdRNcpIis^ae>mcbysj~N7Q9{Y9q-w~F~K}@ zn&5Bl+UeP)Y@F22B=bnx#~$4(wZ*%Rk++JUSy( z1#w?Ng`ug%R~FY(q0u}&zR_}{82swKz2UvqtTqwvUC)QKu(qRk;~gr$iLDVLU_j0* z+jQ3<;Nr17*FJ9epP^z0ECB3l=Pw&r{hv{M0Y_uj}>eP8L|A0efCj4O%e4JaGa?h zO!!M)+N<+dqG%fGfD14@SI*uT@q(f*Tx9wh?zBG~ZpI%!O8cxozYwWGp66%c1ppk5 zdUIL{;w9QJ!n~7C@ri5&B<8gu@mU=kkF9n4CV3U;yPd|ftE|v5C$FV>PsCfT>n43G zXHoHKSdLqdO7q_v_^BpG%X;_gSmGj-S>@M-mZy#US+@*j@6-}2=f50A7GsR{^sjXI zkF5!oOmq0xh4|KSG_8aA*W{d2%VvIkoW*L+Xp9az4)r3Cqb-B|X^D`(KVNzj_4XC; zNcqIc7lJT5REdH)2Lhrz;}|t0PqeS79cUReXN=_Y>ry0`C!U6&R>;d94>aX*^JlFt zP%lF+!-IqLtJbr6pQU6&DOKYFu3JubV46+?PR!bZa6P%JF-|jCP~36P(yc`%2qS@9 z^M%dhElqo883#RkR*VvD_2#kdCMOuidJ59EkZs`CB}kh^nlMSZc?1k}^{X)OeS6?l zC?x*?^;NiB0oyglG;1A8N( zA;|{^y+wC)j--Qu(zK08$4iw_b81`D?~d)Pc{R0bcv(j|t~_cB47gLzt!l%q1wdmt ztSVKEb-6ChSnYHRpEhuc1D5oz_u<8~*S;Wv1G$oEf@7!yIW@+7Akv#x(=WA4Ov@#( zF>C`kV~iimHQanSzn4hVR`4(HqnQ;s#tC3KuMZtw5}ah-h{xHso%THg`6+7z@t9a(OIhuk*p9SwLNitVL3bIkV{XI^>d z73OC3?@|<_@jU{C+R)*(>Dyn{N_mCt(X)fzuEGMSj@^3j6b`jUAg~f6$t3l!NceZ~ z#^Tpb8osW9TN#En;DP<)n)*dJWq4K1(S7VyYB^|k9uC`W;j0NX#zS{!Y$D#rlwP>5 zN5_64{{V!aQ$?~y5hw2AMHymA{Yf`Ef7M6wlD?Q7XwtqA+}Y{>0AQSuL)2T;C84L|m)O0;RP|_0C(1MXB#RTMm+KM@S zIyZ86Z>g`hQ`csE6XK6IPSs>t_bCUVtoZLkwl^P}-oAOI)%(jeag+lDcI#cf&Nbt62^08lSn}cvA*r={pEe>%#yi(Ow|`=r1e$!huy8>? z{c7^F8dsqtRT*AGZf5EM{{ZV%E4$7PTj+C7o=hPt)Ydkucwz;I;(aU2$(w~nms8QL z9%x*)(+7~`<273BZqLon*0Ep209@@1Gt#MiUoye|&e(L)ZE-Lw{{Xb!*)ftA6`gZ_(l_4cIrlZ=)513{Yn9E|(H7RG=P_-`K9!|(AZrjI z#_V?OT&2y)kDbQ@nyD7MAeU@Te!jKqQg!187)wGNl(#3F!Vj!pWc|$KjPTn$qG$)kB0RWE13@@XQg$TKZq^kxJO9>NT(wl9M{rt&TTBRx~Sii z^gA-l##wG6HKFtKN7->C7Lb!|8yQH+X$WRNhiaD6f9)7mqmZf~A=!9dyo}eJ{0I1_ zVdBLacZjDyYYY3b4m|93HR|%)!!5s*ib9?l6}F)I*Y9{dRV-~N)uis3`yLA&OB+d5 zrtX=_c=Bt1EiG*wcY*^2IotKDq|sHa0JV!Kha{ipTe`NL1Z>}8gUdp4>;MGky+Ne3 zR#mpOcXR@ki9eLE3Q!Ld+?}~E>^Vgpu5!3 zqr_r0@cKDGI@PnDy!J zjx-G4=B*@;JU;$i=9}SyR z*Dd0b7>1h?1_X{+4#0Y6y$da&h_yNmt)VoEAU3w!kz@P)9vju za8)xd(T`F<>({+{CxZMwx>CUzepSH9UO)qZT{f$rN|zR`u_9(*4o*lIH~@B|P1Dla zT$KhWg#gON5 zPh;{7VH1A=?|SC4#B)@0K3 zjV9{KW)qA);BmEwdiGC({{RqeJ}CHJ-g!(S_8;BP5dIb&!0UtST%0eM)SWkl#JkEj zN%utX)^#ed`n73ZOK&y*006Bw#7#p()M1YPS5}=dy)wbaL7aE`(!RTScK{Z*rJ@{! z4YZH`y=v=T7=1ExEvkpNkbKcF`IPq{`gg25?H)~-E4hmtbA|)(uc)fh>V1t`ut_Mh zCs&qxxLDrp3{T6J&T5{P(?fKtX(4CNKzJWo)v)m8-R;AyXc` z#8&%scpanc%yxnJ)~(jBZ=vZjYP#F0f+Lkf)@B{6%6xC}hgR{Xp&)`*v9Uku;Edr^ zeiiv`8{?`}#nx8mZKdjdNi{5WdDeYddsNim_*vn3wCf4tn_1O3xseV;3H{K0>$3fx zG-!0c3*KsypY*G?`#d~y7r7PTzh*agXL)CB*(Wvh&%%2MpW#-X@v?`tk&(T5=Dj{` zd6z{00I$W9h>N8jRB+$4CWddUp}K^8_GjiD$TjBLLxrDdINUNT-F!;~cjjp4RcNII z5ndtUtrlMjYOfyCR(PqpU zk^&pJu3yErjLPM+pIld2rvS-_cK~8kYl}K>sI^8{*}^Q*}mc<&1Y&FOp=a=n)NXH?o3(7 zNS;*0VDNg5^&HY=h*QY@Ye!bnC4xb_BR{QYnG~hG=(W7bGPrD?E|5%b6T4b9lqaM?6vJP%R{$5 zmBwoJGf62_M)c`ic&S}88PBcE-73s#7wWB?6N6jcDZ7uu+7K4bpt!~bL!;>O*uc|V zDN;un6~%b##764zqgHLHz!i-MH5*%5ehAK0J=+}quY7KyM6&9e}CZXK%w#J(Uq7zg*LJR7PBZUHAFIpei)*~aoJr5M6TqfM#H_C+%g`%dhh zxvpd4N5nbxK>|R=KeMLZ7>;XF=4QNwBDc=xt8#o2eNN2DD()`1Cmk!AjyknzI&zcc z>^W7mV@>Rj8@Q3~=Pxnb#GI2|Kf~QW{V`;~>*-I|J{VnT7f!H(z#fLQ{3ij^-)y64 zUt08GS``}QdlObsnzT=6@ciL4q$G@$u2;s&By!7+zO`dY)l6m#(Tz`QzKRU<;^sa(Qa8A?6=DnCy_ah~-^Ah)D zGgh<`WtW~SnZ44C^6)Y0Yph1|zKTXZJ?)`yIBATBm90DiT~-rQq3B-i6v&N`-JiIS7|V)QzqtUBvgm4-Lq z{{T9Hbpi=99!*td+{9-+u~qJ5+nz~1a4U{9mewtKonM2s-?M87&mjs8d-sIAXKN;( z8c!nb$F6JTOKaAF%OjB8b6eU!j4rJiK$X8b_wr2gzYj`MqZK5`=9Ffq2WEX4;z{7t zVSS7_=qr-`%yxEHf?03+KAu4wa=QYi0 zQ$3yM?iYjK74?|>`Fj;AGEV)D+T3R~O6zkZ{56i@cvZ*Ktx(i{48=O1-KhthV!C^M zNth3xp7^ahOVY!Z?cTmdrauu;-LvIuaSkI9E6JW{-?PLro!&}=?6s4v{0K_}x#C70 za#p>{*HlyiNd$drw!LW;?V~hJ_#U<7)x=j)ZVt@nj%QUp51!=sJ85zVOLX1eiq6!2 z5B~sV4ff=WbAmcorRtXrqiTWh3hv}py;<$GOFhv57>g!vR9!aqE#? zSb8^iXBA9qo7888{4?a0zz6WJMDXUCAywW7TF=q+u?i_+wz?}(&<-e;caxWPn(19UXS6eWUwDMzZLfxb#0S5WgT@r??Le=n79mi zu7(|F%wN6Qyr;t&sZosPx@dJ~*}*62Ur468ZgWBc=KOqm9S2I zO>gR2x5{zWyyM~yq*@oxJ#$_bZ;JMG+egXf_JnjeKN)zK&%EyS;=I>ixbx-D;aWZ| z)>7S~k}k0NiUCz__=uwQVNXB=Mitv~6xM2RO;&n#8xb&j9gPt*$<7lg)BYCee0g zstd*_Q)` zIR13kInEDSul9kDmyFUq$IHp;F<43#4q?-?bU3I>V4hD(SDU8ne}zKCb;U%G+qka7 zZb|1pwG(`#Qjtb_qy9_pDh$=-s?qrw;q*7eS8Hx;C8H8@0w-HH$&GoN$zrSp0%8Cyw378l$tkx zw+V1^4mrkZ+xu|3S=hvlNv@B&sjAh9HFRApWJUm5r-1^J*dDlPT8Tcb@ zGQk;^{iTz6>PF%LKZSN*4x`fM(jmIk}te$ZbHHJwAn zKigg{kt{UZMf)zBZhzKJbIXy~R!V$$(Eb7VY3#fc3~j31b8~j!7jx)61zmL*V&hu2 z%Vf1}{{WYpIVs&mEs+kH`!s3a2(-wxe~Y)VNqHM9eU35;uYP@NlK9v0!%v>tNIV`& zD+~gCtA+8$#eGZScB3r1h1|Pb~`vJtqk9m&mgRm0cJU$?F9$E19`-{w~= zZ)94s@rI$UYH`}ZAzwMMk<{1G-wA#KdDd3^A~_GB8$e>jX5fc;OFtL zygnaz?@Wio7V7SZN{Z*jQ>8)Oq>^8V-QCWI!-_O(0d7dbj0{!AxC~Bn&1b>l3k$~m z#EJRU$kHp1^)9*WGg#57PJaZGF>#jd6?H^!D44oeE30d>Sjcy=#dcRQI!DUncgHo& z>$+Or7CT5d>?^5LjL6k99sEn?gOqoGVmB`OZ#E-;yxZ5U1 zI{Q>OIOxZr-zSNd=}dR(8BcRwLHk5}Gqu+A$tJcyO9FTquIddzWs7=~pK8a~uKwL= zBochU9YavvgyZuL7gA@d{l;0VgA^ zEY2n)9Qs$6jjIZ5>8OKWcR>s=L!QK;w-egVNKso+kD4? z>N8y2*M9x@vp*iG^1$%PCx!Xckk3ugJYN}nlvP&KgDV`j+Yq>)>I3}{~ zqJ2{QoRgEyb{aLB*uaJ!+lS zr7Uh*GE|N#Ym3k#AaoT@Xa4}&Q%Crb6dHesB#P4eXdBr4vL9cqet$(L_MD`}^K;U*v`u>J!`g}zk>h1K zRtE%E)nr-rDOx zti^J&`7v9$aGAggI+OLU5cpsFTI!x0(axLVkoVRyKI1Er(kJ-WVJD2V&k|S(w5z|g zHRJAO2apFiVcQk@-c`gnT;3{lW$$%Qbbhy!=TtKYsZ*A{x}N4W81;J?Z)|WC(4erZ zJm+tixnrDiPJgX^5&r-MLj9_L;cxs!i^6^px(}gvc0wg&Ia{gwo;ro;^{<;8if!&7;4FUnQE?1RyVrE2_DjM`n=TgY+tcvKOdRGxXROro>kpOkxZUq4Et zPufN5d}6CQQ|G4a*Hh_V1^(0){yk_dwVgg_uG;|Y!9snjr_}sK98b_I<2-YU@Ne1j z#c%vxgoZv}Ja(^R)uP`!5IP^qjDHbhXhB92SM)t)#CXn2U46r!SY^qCl3S8$j3{rf z6<8mfHx>S~m+8&l3DlxJ(H2Z<}uwv%~V!nm=Ao33b>McHY89HIIa`K_6rIzV7(1`4y|^n1`lywZ{v+f4Z%<0UY1qQ zDOl1nvBpml++MP-Hj|9kPonriE+YNn^&ETF4w8afuKjafk>Sg2)`M`##eR#0Ue2A^ zqWPP-%v|^#Rx|RBl|xVPkCA#xCOiFW(d4xlA;vzn2lh;2ZOx9On&hcjIkZ*m!@&AT zNs!}_*1a=M(|pTO^5mZN#OSP+Q*K-X?Ojc`iPqgedfPzjMHdL&$=L*+w=7TL#+F01 zKT3+{!w&KM$&fmF3e@oTjV!Mv0%;dH#w)e3wX)Tq%pO@i@N3<`(xHh-)0%9{+o<(C zS6A?Kvc6pb{3@DwJIZXy9y9G;=X2nArul-ex4mZG_!$uVtDb!;x~>9nSBtr%aaZbj zJQ@nb*}>z1$2GBM;R$ck?(I{I*Lz{$IDFj6hVP2%G@k^d$~>h2S1k-3N|N`s30Jbv z@^tu59O!pPy^mfxQa`}R+n0qv?r~n@7l+`}qxsY^9es^r_{&;@L(t}yK#PES_peQ1 zX(eeRkK21mSotURhK}FCwk-{zRdc`q@+;>pQsw5jW|OJzd)K4>(B3^hCGlkJj9NI! z1D-QpUp)SFq}Q2A`&r7OT6FX~FLiTE!y06|#;F`oDQ0#8zSsB(;Uw@^grRvCY>b)d zgZS6apR(7(hVd4@w=*L&QR5tSudJ`_(@n5gYW$b#b53nN8P0hB09o^q zhVD;qQC?knrhT^Loxd)5uCvDXY+U(l-1V$IF6>LdA2&?bEgCVz*0hndaT0A^lnt8L zt`TueX><3u;qE?K4{#H&JI@`)IrFX8R~k}j>8=P z0Q%|{z+g@~^sJh>p>Fc)%ZC}@bmqAK02S)_&JP(sjc@B$1IQ$vgSC0ri*-idfX4%{ zHRj@F?50$y)vpHXExhrZ`d2flPG_HLbCZhe{1>AWZl}2v<%dq1 ziY8Tkq^x%S4AjKB>`M6~BE8r*0s!rYjRIKcdGvY@QFA6ARTQ1k&4`8v6)u}8g6T^hl>56kwK$Mq^)+3N$HH~~ zRoK@uG?Ti}_K$|TiIOzjK?AjSHvsNlxM7;{&xTs&*@EtFa6XmoS~NpZvPSF&HLV)9 zrr`P?If|s?P%MEtAB9r!4yd-U5x8;cdRC?Q8g;WX5C$vCJbU8;*G(EWdBGX4oX>MV zV@KWH=!Xbfa<03n3GUgL^*m;>E@uzNTBO>apD)OMw6olVUQZ^!H;pHIz1h0H!1C-F z^y^gaC*3DrzV!_E-eYYCzh6p>NCq%Pb;6%6<1EJ}4>_rR*Rg?K4nHcU@^#z#Ql?v+ z_3!Ic;+R_H;i zb+`>FE5{klXu;yNyO5u}N#mOHl+;>R0iUnoT^EF+S?-s4B7D(#(|@{j_N>0AC6u(K9QtjbO}`c}=Ig}hIc+Sopo`aK+7TD0SJ zt+hDiPnT1ZeG2tZn4=^fa68s~wpYt0*9-yTy=oI^kO2F7Ru;diY1(qL&dHVat{G9U zQd%<96Y6+>kMw((RI`i`+OoVSsYyJ7Dc7FW(0o?-lVK|~ak^yZir}=*7u!L09yjEB z;*>I+dd9}K8+|VS05jRZVX+aKog=mJ2As24mLun1&afebO1%2hFZ_KB*2D=0aoE)@ zGgdIY)cj(q4jc|Ucdj?ZUOfpDZGUmibV|Hnjw-ms zmgb+0d~mB1pD<&+cyGk-h=pO02K(H4nxDsi5cVsDd>)nJ9z5}DUP$|7+}Yz5^Es|$ zqMA(k{B|wPGXuxIE|UJ`)G;|HIIc=K9$5i7=bF)$*{7Ft5=lM#RQ7sPFWwo)LthV8 zqo~}O^M1y4Wv3Gs4==z?;t)&sy?r79$gmxd-qy+xT|qsRS{|;=QajZ)O$Zw@0^lQ(0Ck&U@$9 zy9;Uj#oVN08LuPowya}h2TPEHDk@IHM2DJS%5>kt}D&_cQ*Lk zKjU4Nv#A}whI&_@_{Qi;8*v=wyo}v@toW?$rkXsH#ulD*j7K=F$>8()RdkT&)cOivH<7zI z_OBW#92%At{{X`@^?opZnf0paAiyQK%}M5r0Hulass!#>5_6U#gHBm?_2R0DM>skB zX~IAbPJWcuqb@7wuQc>*k%QEBs);GvfO_=LdYU;yAO5{fwI1cjW!sK9=~peTPW&7I zO=d?X+-Er^tVM7$f=M6BqFR=Xm@cw9^gg`R`&*0<39Ku7jCCVDMr!moAay3WCahdd z*ls`^=NaS*w;bWu3xl6(#kRT!1h;I}>uLUASoPzIo7bMz@-xB*9X$Mq`DPye>g8VsNPYJtu^H!bKCQ%nnHkba(S#8)Egf2Ve)_dbjOFcwv&cVQDl;w*Cz?tqT*5r0o(6v!g|3EvU?`SAz|~h`r{?cl#tW#fd|!907X?7i z<5}ioA^Cwgq*wb)g;xi4b-obrf?jQDfF$~kwfD7ZQ^H4@N6stAI2aYdEZz~1GFlInx2fbZXzgyGxc9Ep z_Hpnk{6hG_qiOeLgnwvRnRaA4r_4b;x(e-eFN1$*wI z^`-s4z<-U`QcU047b?4m2jvf*=DpYA{{ZbbrFa`bI!}XLY;A}sB+(4ZJ9;4P^{7jB-wUlj~nOjl@F<$qYZlukU%i?7vs?>S^s=MaY(xvA^-x+DfTa~p^=;6wg&qH3T;+;K)l_WMS=TDGf8${M`M!Aa!p=UQjH}#)t%(}y~*UXR8lGUe^<)#cr|MLzNA9Jr#{^)rqVnC z6}kYCDE1tR)BeGSPmh??F&>mLioLTY~V{f zuc@xbME#;?v1Jz$7FUt<#O{obim;$37eJ1>KCrUED5uS97KK$%3xw7#j1jSS)50 z+LdQ-ywOQL(eyr~Z9GF6@`wld*9GF=2}!5SB#BNBanlvd=^qiLw!w->W*-H=$0M_TE_XLYGso-!9**XoSjD9Ze=Qvw}t?5Va!_Nc|*+HONBCnlH1dJ|h8 zHqA%}o+^ii-bqf~tXLkHuX;53W}ilLzQU?T7;2OIY$GJ(!OFGONYnQU37m6Vbbl)mpf1><07~Z z7WmEVuBElp+vHq;eQVFerG;uwS#)3KU$nZhbH~0iSeNXYb^yn2gjXE}@N#_4ef{bg zYr&U zg9kiwR3Wn87Jd8ItA&TLij&-zX3VR{z{YUC{c4QTdF&QGK=l=4U5TN8N{>i^q?i^2 z^XdGn)`g=EaOp@%y$v8Ik^Jkb6dkTsn;kZuLoZRBW{pDN zuLFR6>V>AEwm$y#9nPcX$aC9@=k_hiz`(Wk$VR9Yt1~vq!6G9~6bH%r_Si$prBb z+n1FFzNPqC{z=C5Ayq>Zmn+if{S4D55kU}}XaRn5dYts*wQ6a1 z!zM6{rM_%-TJZ0MpR^v6@ncA_y0p0wd6;QN?g{?suU67E6Llg8!C@m7B%it~?`Y07 zqNNvmpP(*U(dL7?XHxfU9at6l4naRR097#x>k`4aFp^>U`B zd^T&v3Uhc|H$|+!$n%CTcRI9;&g^na9I@uRZ-*WWo5mW;OtFX4w3OdF5%RNj0Dd)x z;9m!79ysw7b{Yk_GfKoXgnsVbf4tT81Repf_*d|n>eoy=*&!xL58jdS$v=H~5u!bsrPoNCr1ba5rZIwR331oM$-en%VJO!d+HYeuhTQI(4k4 z0Vcw>LGXgpA=;smG;v*Sc9J zAa2ca9~ZP^{{Ra5>G{NN7~p%?1|Bx5u5AXck~|jjP%s7vAB7Q*H);S#>-f|Xwr^N^ zb*tKH8AfyNE9hnJMD;1k$8Yd+!f)cA71`Sa2j>Lw*c_bx74$!hE&!EcfGkNG?FzjJ z9C2JP?C0TAqv(yRU5&Hc4=NFi5WVZK*B^79`+8T4n90VAU0%N<&BatzCuPv)^&#?{ zj=Wbls5kmS$spHHsb>U?VAnIN0wm|2bBg&|YSXhhW~^6^T%W0{NcaOd%~XhR4+93R zMA;s>t!9ZXTDA$u#%ohgmyepV?N@Vik6P8UUUuTRD+igerM5;N?^flP%mE*trD9k| zgWk6E#UV*NufJ;Yr$SYoqDyvqlsrW~$e02;b+0b*t>JfIG0l2UicVr;I%Cqjv&5v$ zb+q*r^m%q)>>6WE`wj4s^DjUko@>;!1q%|AM<%?l!v6rdyBGxX!LLcsH6iwJBqKPl zdaT_z*wQOgPguASg)y8ED>M6Kk%QKqtKNxN?K}?kjXlF75}v$qUq4c_oSRImbvg|` z^viIeFn1j1HQHPFVKsXIX2>VLYl!elHO0toHu{?Mtu{jquna-S>0Z8FhFFLDi*H4NYkjnh`1HE?P@Kmr> zeWg7Pd9HMNhMVHwGTjW4as~;lD7E#G0cTPNy?C~{;q11Jku@S@_16!+bb!}28B9D1@0|0Yd{{Rm@6yN+yx|91nor~7JGs1rhEj}JzB>JiICPU6g zHR$rV!qG*}rk#&?{hWRtCxm<{9Il`{EW9wdVq<+yhRu)Na*g&HI z3fZvuh`uO*v@A9^LMcwPBWh^oNlEBrc&afWY=Mzn)uekaxZ~2g-F_hPmhNkv5fr%r zz{O4u@vU;@WQi{AT38O>PQI0es6x;`%m?FL)|+ORu&=4^MQ8Yr!mNO>UBbQGW);mT z#OcG=w&xO9mglZ1u6<5w)&89&oBYZ`=aEz%LLZ*rrFgQuU76^qDJ=*!a$4PhKT7kD z8N};35rfaQdQ8AdxFaXtu`jeFy^)Q;B%Xq}>d|wOk_}Hc(=;}?yB=cjPI`5(Qt(cc zmbO2?0CCqH1ys{~GM4gh+5iT%1pZWEBE}br)^Kr;nEAO{kqkE>bRtw9hdtbOjaY1IRsbF=U0v$$@CR^(yF;w-xWkO$j-xn z)mOpVDb%I;u)&Xdez?u9$+R4db{qp;4}dh|WPnUJ5#JT_*>)-wAGEgH9&JR^NOSlt z3zTI9q|lr!nYdNk_vIystWocJDT zE%hbXNC4;QUqXC7y#q`FW*H*9qr+YeXT8hDzz=HlJ92bQEC|$w0~ODUtL&FD>T+Td zo}`}>JW`exjIf*xab63qYR`Fo>{}&|72142)a2ABWoA5A1$AcaCL>Z$YWQ4MC+jua zmdMFLy-DqEgjpp0Dh)$c$ikk!^&05fh0y}u7X#N7X2-x6w=#n$BR;*VVTV$8+yBSurm7!#YKvzb3KP^3 zQnc$5lHZ@bZ0dS^Fz03f?d@24io~sjI0KPW{g+w2Y|J0=Kv8Q$egM^*O9f zM^lO%=NxzIilDl=o=@GLo|V%ajnv(mEF^Ar(CUkUw2ry03ojL$E{}{?4Q;77@5mI( ztzJcTBO@K_pAnFBi@9$DeUDes{wv&BFjSY1bIo?%68OdTnb94xdJb#mxcpJ&J{bQ1 z_3Kkc@#9$C#^kO842;$^aM-LIm$Po&k3PNzOJse82EF$EH*_SH#dr_x74bs*!!gKh z{KLWRUbpZo#(IB=G`QAj7kM2s)}#HQz8h&8_K4)F2VhQdU#ekpSk}YFy*GAo;TOD_ z@P@DPTKiVIXSk7uNh{83T{p(pPC#i~1J|0$_?_W)@Q;aQw}%@y61c33SCiKO930ne z2B`EuM$6?0MM@{A=^ib10805iI@eXAc(f=`SaH(4cTJv1z}`s}(CJ#Alm=S83V78W z&!xlWv4xY+_dOTI=%GgQT~3eU&@e+{yfZ}c0R(PtKT7GWd{yP+55_Cgr%;&FOl*`{9kfevkMr+8E#>|WN$KzG+JZk4~-<(9Jn@eIe2=5^^@*0tjnIUC6*-ngF-Ym(hD+mp`~&4|q%v^Xl`B{icg z__N0?aU+fSCpE{-a`$qUW15<4cb(hK8>&lPJZ%Jwn)$l*=UM7ZBRa29wpOA{ZyDyc zY;^U0hd7(xFI5jll+tl`Om~^*9_Bvx{jt{S`Y-ze+k(7`+@$XHr zK;$ZnHyEyiNYio#Fb}7puTq64eGhsNRF%ZD(nE}aj@7AY;oakeBGD57N0<*X*E@2ev9l*Nkh2I3qRDOBL*unahdCLf5&! zsp?_WjNqSo;(Sf21r5pi({;}kc_856l1d^{Noddb)|lU%O(a1 z$MvUg!+)RBpz}5iu^0!ZT6dj=$^0{3b&MO(u(Du`kSX4GLDP@Ut1R4tdJ)!-JC08P zboHuHCgp=Z0o}l*6LY$&iG6s->q;E3&Or4P_9(cMU}O=4QpDSaLB~D&)ezq>E7!eB zukvzw`&6+eURij^J!)9y>5S(-l|f}W?@}b)yVOXvBTgHfHUZ|YL3UVUIUh>Kj^iMA zs}Njm=uh}oQbSTVt?o!8ZymbxSFNuyFitzx6}{Q@=R8&0dGpgX&nQ^cO2+-Y&>R-Y z6=o}tc_-f_bgXDDf5NRtag*(ee8#0oxXyq2^+FjpFUynZnwe(7`Gs=MC36FU}cOcD!Bmnt!X@C9o(t07&Gvy z21zEqY4|{c1ssxntLvYJ{tu79OAfQ+D{nIPRo!W9PF+&phaKRq~*c#=$ zEvQT43#XFt@Y1$@G4!kcD~C<9v)?N&P;eOi<6ez?HzgQQ!|0Jz;VSpg@kNtS@yCqJ zMdh0AcMF_gMl;Y?r)ysgpzwEtT1m+BV_dNZzCG$s1ipjeYnQz$vC97dGsw-jlm5u< zTvx|0iZXbj+{2|yEH-eDwZY*b z%_v4H-CyWnruDPi`uqwS&bKC^Gc=CJ2aalrT$MRf_r3bn8_iG4ZM<-52=!pnfP3_> zsHcXsY?g;RR^6RGmote0&OM2)vrg4SaSt@-(DlV|`hKE`5G3-WIH_mxFa!wL0&C8% zg>~JmT6Q~?)?il7<*P5PD@VH7@_K+xd7^6XET1cLoPk=JRrIPsX5e+MN||bkz0DN) zj>gBwO&$8i>_KCpB#7w=Sv(1e*A##ah6&m1VYUIvnv{nee;z#g|0U zwz9KDyLw^vEId?n1Fq-?d>hdTyIJdv7Rb z)2Oc`(!M!G;z+kmFgf?F3x60aq+#+KoM)wcUMKrbaa8L~q`D<<$8z5+dLD;+@c>!n zEV2L?7#vp{;x885UEC8hou;duYCC{A2S24}YSSx%4{%4lVMdIcm$YsAyOAwPv|H;^MyJdq9+}O0F9fEpjQNjV@TbQczYoe1 z?-Hj2lh9YFXg?k_ty4>Lcd;Z3oE|IXHP=Mba@DOB@mR-}{x?3SG?3|ywmjn?;}zwi_3vh9m9lf|l4+XrY}{J2wEaa)m^sP!s)aW+>Pg+c zqtP49APJ7OgRhYbmIoD}W+gf7I_9x8yPeOpR=8+;UEhI9QJ(Bd@(y z(k$`|F&%0ha&NM$6gA&3-cOYcXs*nieo$ojPC+>w(pX3#jBM+S)@{wtpKv#vkpSET9k!9|GCx1FTU<5ACbv2Y3GQzK&3?kdH- z@QL?iAFXoAp02?qW2d&9TgUSrf}*w67V}XNZu|YS*08U9KuTgG*WR7sBzw(q9kOt9 znz}SOUoovZS3NJo9t8g1m~I(S$>O`;3wRbQD^?7nksXiG)4V{+v9J2FU`jyaI zX+F#cBOD$DdXzCLotid|jVH0o>OLHX?#5#xsbUU2tIqsUqou98w;9KNr`T6r;|~^{ zGS$?!+Vj0fTYXyOE5B3gT)5oEGlPw_H>o&s-5EC;wAKV4K;o+GrF63PBPZi~1s{LXuCiFNeZgrYosn{M(WO(buE?{L=By<%<3-?>) z@(;>-)t?Y(jj7pXFb~$Zir;QeJ}@YVG8;5co7{DkMY zudO~Af5Abuj|kaDzADqBz1zuX-)lG5HS%YLw4bwF6CeSX+PfqwVF2--wd==;v6)ou zhMt|CsP!~*7;j-~W5)7QTTJ=qT!S;U;bh{IMBO|~FS5OZJwRqmCbN-nWtBmAV zs(5!@DWOC|V`vr0M!(hJQeKSk#WFLXXiZh z{A#6|nWq6yIsEDRq?ouo^**&@L9;iytSJ^w=280BOjj*4uKxgm_DAg5;nQjGz7Lmc zOY;$3W&Vk{lEa#@@QT6>58?fU65~4te=6Czia7>Uit=&Ex!bZwBbKKRccE`2;Pw40 zo$>dBzqPz4eQW?8WJE6=`&Xjgc_}Fe93QP=_}$XeMrMeBdg8e$Q}>f9GHm#I`o--v zX(63hIljjZj?qQY(J`1{mDm?EPwm zma`9t^|%rko5_oWQg8tJS8ZHX;dFXVue<7c_km$Dz^w}TaTNtn9tRbBRJP9ISE=f0 zo)nM!KTH`I`Faj9PSx+wMtQF*9Z_>yPoc!MW)14*Gq`{Sb6WIc<^+DV&|X~mjNk%m z4_5iqk>0$i(z@qe2PdhBgsA`w)`hBWA2)iTHxgiT>?@}5j*z!3Jnvjqa)hc`M|MlJ zM6ItjXYxCi_=e>4%SA}3IGOOwJsqefM3dT%oxy3~Cs?A;4&zZMl0>lEt2PD?L zyt^aF{c8gCTS&XXI9%1ZwUt;ikPa(MJ{d-7G!iNJuICU*jQtIHrlx$!-G}CDwDD%5 zjT4n_qa0TWd2l?lx2}4c`bu=;7=n7(wV_+&?(hCJ)aj_ozdvE#usl4WRAg{#qlRUQ z4#Pc#d06LYw9dH1kTXn3&UvWr;3~QH$4-?ci-wa7dj6GS^%rRMuOkZ%YmMolUqbN_ z(Wctx`?)fEjMtCqH_WfW;;(4htb-d#!9DBD#AWiRxuqulWkw63=~||^+JHIg zed{V23eEHJp7mcuneSJedK$lVrcJXUPpx_0!P3&&2E?)znl3#!tkT713O#tmFP_%z zwp@(xNG5eIG7nnye}Vcc!Ka5HE=F)GD)?0D zDa)WnqjrhhYH^RTjE-^5a`%c0f_jtIx;=7iAm+V;maed|P&xD8>WNBOaB@ik&I?om8sY+Ma!K8roLN8jtNjsmD&4sr5u{ z%)}qZrBPwEcxpXEr3U5FpfwlsY!dko;_qHg<& z-3y)&(u|ji(hPnT+-mpinqW(Qy*`zdrRl8zU4V4z1}fB#u@qd63F5wUh$|(8lI~2d zu8I6PEU}UHj^`u2dN+mwGJ~Gn{cFx9ygpd_8s}~*?T?7BEbUK}O7}cR z(VWtPZ0$T};`Gt2{{VKtkUeR?3_NUgTl`#bN#oMIi(2so&bO8|4lF*% z(Yo+@k81k76=s(|LOGg}aXoVVILBVvy?8R8_ z#yu*fs?e%#+nHL{q&6J3eNTGgd{5#t2|Ee(t!;Y$0Lt7+1x0FdhJ=D9GBv(`6>jM)may>mwbX2t% znnqfquG8V(oj5fm)s|F}J9^amG$+dBRoj&L4%~72S0pR*JG0iI6)nyuUAHlv(HtK5 zu6FlWo&)ln)NWbIMScT$Ry)T-1|Ry95w{BzWN4S1egHe8sGMMV@X zop$q{D&!n}(~KUXq+J+}LZ3la;L=L%$mcyhXmya~T{bPP?2(Ks5#F?*)+9hM#~sa7 zioub-RRoH)4wl6J@L*C{k20f*aa)tFu_LJqpXW(6%+rDaVee0h)gt7Ke@eBn58daU z^{pzL?5J0Bdzmd}@)NjbiL^r??VnoPio?z7I&`foO(=1YGt#{}G?e!}{0w6)&LV9H zrcT_C z_jt#xTN+VQ)0(?wq!}9|eiam`w(NQo<88?_SXrFp9Dge7v`EQR+&cSotnE8XE4Miv z&2+jZns_+m_OEvdhHay1&qIGfv(DZAh92nW`+d{wIm)wYqGde@kEuf#vRZLiZk>+}5A5U}mpo<=7%<+{0R#9k-f#0Ecy zdgJwdY{{H4B%fNPsB4CIV2#dwYd_91IWPS3YvOU4gsbS8@)+#F*KI}USy{`s&B^al z8H%aT`882x0DV7NaFb~n#%s&m@~>jRlzV6SQ@r1ooaU<}$8ZB9>)wyF42%)S6s%S6 zxo}I_c=V?%o5y3`s-%Y}ImxGqcBm_kIO|fz?1}us6!Yy%8xq{)k8bq}$TN~Uanhcy z0pRi2W{U!MEGzA9r0m6xuq24NXa;> z*0&paoM*mkBHClld)2rl!RH@Z%26~-+=Amc$5HE6VYvkL9M&{rw2k36`3CF(W*B z)K7JlAY&)j(yKkjM_z~5twhu0oR9@qvK7lOauoBE+v`zzqE1Q0R+i)dbB}6)uELyf zD`?ZXeAYfm{fKq#9&d>nhlGA2#S7>@II(Rqb0YH$qb(Dwe+dV8&#o)0m-Z>2;kE7h z_?BUEvC6{QMdV8sepWt&jA!39;(rJ9sWopOY0=v&w7zID1Rplwaxw3mSLpYJ+9`FN z8GL&I49cr4a*vgc-{SV~_*dQMd4*gaA{6P$(VmaW-{-O7b3J0Z>T@5lPwZc$_(xT^ z@rT4X7F*~cSJUhzA1rFXkt>7r>+M_KJJsUxPl}}bBYEnQZD|MHB!3F~3g~_(c>d1& zRJv_G>gFq3h?d#y(Crrrna4d;Wbs^PjvD&(N~jVw0YZVmuaC^L`gQRUrw4Sp_x``D zb;U-~a`HQE9?f*kILN02E=*tg$(a;Wg}aXQ6dW_25JyrS)(RjBLek>%Ru!^t}k za(Y)&@W0^JspBm+O>W_1i%PR4nn_Lr?fwx|{5kN}{{Y3FAr@jXh^?7qJtJP{>t2EJ z2gQ4IYkvp$4g9+sP!@Mn_sH$Dag)twYr599Gh~zL^s7JFgfC8ppB0WVg+E%pcr8$SK8&}bIV5Jfdr`U&RD0JsVPIqBI(pYl zqrc0C8T~8E#o4=~NXEx0<10zg8KT_X>yfqdt?qL$WjV>OWxDXvJIt1oD>5ZjJo=3N8+BZ9Z zF?Q!Q<>nZAc$r--4Jx$uJ#R$uD$W$M5PrNG+c#o#%93&`#XQ{4;&zU7OPb=K5d#io6F`m6K z+OlAf!Ej3wGHKJvvh`zx6M$HXt95$Ic?eJyWG6Z6UWF=FR*KxwVdmA&gY5)C^Pbg- zbjC^e@A}omxbvY40|uAdpcR~kNv{;4A}~lf{wkU@`EJSfQfmDTG`kkie$6+r z+&Rs5)_nzQ5`*&ne_E?NnUkJs-0C4-NaHIStH7xbH#xxE|7E7aGfd_U2{OdRJYrFpiGY-7Aq-Fkg1(tIVT z8#D(wHRt1J%O!1%Xv)W>+IWeyy*#XJM;OPgUW3HVJ(nypMt-%z!Fu|K`o2fKOQ~uN zVQ5ZB{A-3)+#_UZRoz(?z9DL#YMW?oy=#qogKs85Iqg&H8o%0ZSg{|CW9k~13P{KU z+KOpGgWOfpH&=Ul|{$}S70KNVk9c3B>t7gMXgOFV-1nst|Zb;7F#=;j%$KgCY|KV zt5MW8meoin zAm=`n+<0?R^K=B-PXm!$XUjI8ayk7?Zg@^#Ge;}Q3(~cc=cgz>v0{{MW{%H6yEjn* zxSvYle`#G$%F`mZQ`CcxO6hzleX`@`ZZlqW`$lT1ajT-nauio?O^tKIx({^H`EU9e zdp~;Tk6xzv$;JV$li@a!+K-GZ&~#@Vy(^!dV8G-awdp^zCWv(}8$|4ZmM@s*zKz|b zA45qcvGp_>qgvTpLm2>~0rldp+v;;VbCbv8S@Oh^$^wJH#|NcfvqX$=2lKBx7d0x4 zoN~Uc8G7EN){I$+$9#HMAMpppqx&(Czaf7b?)B|8Z*9+%Msd=-U*gv5ydkPlyg)(PMUrE zCvL{w>x!&y8ip-57pcg(xwJlOk{L^p<-S2Z1vL0_^6^MWh{)o-r1(CmrfA8r=hZ&d!xhu0O0|G5fSwDk0-t41^_`$}@V7K}|d$2S;J8OY%C+Pe=A>vHN5V&LvA(zy>0 z_)V0rn%K>C){AeVMVBKgJ$hC&Rw7TDPeC}ObN>JkK!O);hPVUb!lP?2dTUBP2zHj2qZ5TS09N^7Vb=2u~eS7UBhhenVbdxKhjP&%ZXVjU=-Pbie zjn|lYVt=K25uBpE;{BcVM^mFsxN*lFJ!@iXf{=rrqPguR=q@_((zRM~G(cxL?OYjz zqa~rHsTb^S_7GH)S07Rm4oTzmthn4NVGnMiqH@Mk5Rs48y!DSM-Z*(kVUo`qK@L>30Fitt~18 z8;!u?v8y{P4M`=r*mz3Notz(P^bH$HOOzgJgU&hTxgQ1<+?fL%1$t(SXd{SlIRm|V zcq&n;9ZVZ?ososC_yW*KvcG@f>}#6%qj6*5PYtlPD6$pk4i0O(@rxKV=8;GNM-}q_ z0LEV$OM8Cs@5n+y=dEW`1x^*M2(4DyIhU=~Vv!XRfV% zpP9{wr0%5?&GlvbPN5>>q3CPXeiSH!NeVb1SD$M-L)q(c6;?5p&T+x7LHKbd+XczT zKb3lzmHW2NdV0v!*B|9P_2;E?t8QnQV>zyuT8nb<7X;NkD@yYv$r%~17810Moe4DC zFD@UDaz}d6jFlue=T<(*B0xHE-lAX>^VYi6Vq~?@iecuAHzytHiuiP1hJ-XMShH;bkjO5y}&+5Mq@`ocJ`i`~3c!R?eX;U%Uc2~Vw81*Qy+>^(( zV)&=QKWdEbT#nyL^sD9Sy*_$pT^v=99Mi1wL2;AETIqC4MJ|Dq@y0!A+K+|bO}NSo z0(({6Cry#rcB#u8SIlBLsp$7TN^(=w=`?L8?Ga-c+%fd5e;l{=TgDfv^YpIwMAHR^ zoE~fsmmK%6EcmtJ0WJHiWZ-f2ubR%I%}y|Tu~fB|NZBI@fQZcu?6y zJeKRuJJ+B1b4-y?N3_H^-atxZOV*SNgP zTE~c+RJ|peARN=6*CV$~Asf2apH1Tgwj>D#0F)XjkW=X9Xf+pI){vW*7+MJ*EPJcT-qjdRjJIZj^<5$ zA&dq&CaOP*5nBz(?_4kT`^(C)&tA21!b5g*k(%C|CsS5%$z1C0bzyTE&OokvUR9Dd z1Yq^8D@chzPyYa_s%sEsK2gt1*J`0;9J+3KkBkGNG8~X|&2SfbTio3pp@}DtYW5vp zLl^Qhf2-J$b3DurNvMM6v8#H$&^%n{42>IXwE;MjoStuFm=@ z&gR{i1YqZZT2^s<_&Le#SoRVK_|M8u713#Nd8((^@%$_3u(edJW8T7Ic{eP_WE^n4 zYF6<0oqp-!wRGJ(B|sVV&o#fN=z+i;yVt!#4C^E6aJZz==hFB`dy}*D#Z7PFFDwkM zd)KE&;UK^jT;{G@csW_VWaRn^?5CA$dmf6adFGwrwp?XS2U2UI(lic0+tRx$Zv_px z^6^@B9t~t8+9%bv}0) zicmX?{{R+^r*oc_%J`GTVG+K5wZ`B0^X~_KhplsZ=Z(D7Y(9NXdRK#u&SImv^Z1N+ zW?u1kigzn1Z^t#}dhWE>bC3zZsXRmCR-CX``g2%5Yd=$vYx6wcAN8r(Y<%T>L#rzj z`G-E#PMflfjJJ*n7RmQrua(xgWEel=BO@A}iDmx3D{^HSq* zZtSza9`x}1btmh^R5M_nK>cZa-f{ka8g?lce85QOtvk*6jtx>t4hGV3>r+E6?D8AG z{{X6&C~u)`NKd9aRH*xq_2bg1i4R}KrAaf;)Jh?1mctAj=AM!eJAaK@yYFe>grO2h^0&3;7`+oL)vTHGA=dkVXQ$s#SIUebc zV7U2m4;5l5_#FtYc|fyHJB)BR^x~|?caFV>8LXJ6IqCV;gt^+CPdsC_VJc-snquRC za&Rg`cb|X8vcA|sj;cj#*;NWN>DhU6zbuZl`iGypBcfx^r+3oafJ=; zYNVF~9dn+Q8M*-Se>&DQ%DTC!`yc+p*8cziJU+fK_{S1HyE=cO+qf9D@1Jw;Tb~y` zCMD*r1lEzNNp3z_G4<{E)@O>pY3)PeSB+w|yd<-a-9o>0K=!D9Ab4rDUk{mJ09>z8 zQW{qK74{{XS!R&qc( zwJJ?s$)ssZROEEu3?~*kVEb?c5y-B;SMf!)9*TDF!GFI?zJ-hJ8KbqKhPu6yd0r!s+q4p@eghpL1TG0~zf!lQNunP9N+62o*p4Bl1OTlQb?Ok%&ek0f_60 zy>)4_P7XaQv(j`&@h8Km;NRu2?FEL*H)l1u+ z*%|FziVjSfYG>=Jq>{MBWy5>rwh7}kdr+HjAo4lIW8B7aTPHnu?_RwK-Zo}!v|75k zDutuu_Qge`{6u{!<7}>1wN;MeZbXMU9+ivYy&>H<+YBFS>!pXMRr@-tMs!lCb;{A~ z9v}Fj9r~ye4DsH&-5*jq+^Uu!yPhyB<=+i!H#XOz6OhBFHSC`ad~c{hi1hW_a&QX~ z$rZtf;mTg#F>5=;-IMBl6XB29==ifq`$ng%Tj}yADvilC#Q49%cU}we zK#F^Z{I z&2qd23^lO#a!%jy=h9{v3?&>rsQgC-VP=nhUPZ~1GFu=z$9P}i1u3r8@WUxk{0;{=)xvx<85lzVKis=ZJbtK<1=Hwde09@LsQ9;)Vrrg=C~Xlm9ZKKS1pW=DxR4Th>U@ZRgF^P zVi35js<%1W6Jmz3d=U;$8REIULsD#<9DY4&O>a^xO71=RtXsRC%sce2Ukit_S4OE5 zNqRGdCp|gsRiu;6al4v}CD`}J=~gYH`=#-L?Oul}f+@S`Exoxd&py?o1Yj@BFlxMG z4ei?%YAy2cgFi~=sV2#4`jhGM13uH+y?6c)vlot`hJCAx(EK+o)#9-P*QNM3OFDTB zjLqTX*piQHi=6q8G*Y^S&AW8e90=tU{-g_O9jk~>j`_@j2O+O~(lmYpzDIqU^`&4si`fU2+M zTUvQV;05Q@S5l;}c4N$Z{{T1a%x-4SmB;(Fo#H>)wXAJe`Cp}dO>gCus^(EI(LX{3~>}Mk4oV5{{Zx>5xC&v)}+vN zbD?TV#g8W#&2ZAL;dt3K)F%ej(Wl}c4ILF2AUir|wrURwT!^hCMm-I6TFult_JGnv zL2PqeZ->YeOt>9-V!G!^LZnjJm~%U7Xz6;Gw!Cs1pwAtv%>F5AV^Y>+W7~@Du8D%` zP^YIoYs`FIarT``QZv?!s)sDxzpX#v%8Pb6=~H}zaj$y)lJqeglHIZ7ab6V?32s6+ zOxM!?0JG+o{gL5ikwF{RHT2S-F1?k=o`Sgk zz57=lXIayv+;{%~Gk2pp>%Sb_G~1F!i)d2Ghzx{j6Q3*(rrd3r>%JzvkRvfpUGV;RUI zv9*gS65W_&V>Rp4p#6huxSz$L)HlSXwojFYMvXP&jiPq_W^Mo)j~ zP`Am~BC&-R%gZS?hL=)ZZ(Ea7e8^8+<28vn!6!Xx{m?kV{c4Qy~#L3-Q zzI3rN5W}|>m#X-8IohWurYotkj1*JGDtW8~pb!ZDmGu-k#OqeOh@5p$lxsn1h8 z7AMsKY$4sx<5x8N+&IYNy=Cc|T(>d?1F5dNO4654h#Q;(j{U2<4>=`p_HJ&-(9rB8 z1QZ8pHPppmmv;MZ7aV$5Gil<8Eu|5cT-Qlssf(z`m(w1V>|wJGRb=j5u>Q&2n4Tc; zbTUT8lw-AV_m>v>1+pEsx#9>XHVmmy0a>~h&*(zS5WW|{3Ozr0h&X|uYb~h4rys>qEiq(^XpVK z?JG<0TQO4}SJSbd?+D8TOx8NX- zjw9{I6_er{OARElq)GDh;=HHff9({y-mKBjATgHdp0(_D`lgkx!Mf&1&f)7*n9C0+ zsZvQv`4L*A9KUvP^Z16{2~Ys%rFrkf>EugU9?Rzc0PEMQ>z*FcW|#dESVML@vs{;s z{0@gqc7TJp9zm{byAM`sN^NbWiPEP-=V@={j#e`6%|`mPfE+eE*0#5y8*M?*V1U@p zI#zwwkX19Ze}!QjEZbs@%=^7!XE@0ng+m{ax?$58KXQii?$sd8Mc2~b;;k|3~%Ksffjq3t*Acm zz<>Ixt-h+PzbP2U=TWuUmOugOYo_-SnIsx;xqR{}bD*J9xC+qIBVQzEl4^UL06_0f zR!dVwz0Owh%v-Sv4_+#ik$|T-806NzyC94bq-MEoS5^pw1CHjritg7dn!$g3BFIc~ zI%Bm_7dzjsJ!?LD@idwB=~BU$UGJkq(OWXtg7#!r80b2wGbM>NG?03dQG zB$gakqN0(zsM#W}MoH>^wIW5wy+;dfIpEaF-<3O$n?fn!+&IVM-m1JmHb@**_kG7C zf;xRFw5NF_AO5vRF^sh-nDBm3FnwtjAP>v*=BF#S=zVFfK7_9|H@O>?=7{8;f~v}; zc^K!9TG4gtMt$nE(U$l2^rwENwEfm+$~?e4!q&uam6*Q^T`>-XsTOt z)TdEceVY(Yd;8Z_;paP7dB+_4S21lC!SdrCmA#=|1b$CbUHB|lEYi87t;*5g=urpT zkOxZbG#xo)*mxs72WsJT3!rx7j@93IX7x@waC%qh*=1!Uk9P%%XzFym4JV9zpks>H zweZ4_HZDdg9TMdTQ<0Nh9-DHw8NsivqsY=eiWs!fUdO`V@>aGi{2~Wc_N%rMMnKuf z_U~HO_mQCI8R=cI05~8FR}JF5Q8qqE z9cpnEBN!fid{vXw^RE|bK3427=xfQmYvOOShEUk&u4}vag{-7u@J2v58REP@$GXSb zWniuJug)|4!P1N6XUJw4*Q!ramFJ5ZR&BCpC)Tp>b*V16$vOQhgoB^!N(R%G&3=7X z8CJK%&k9v#KZtWmTa(|8d(wlB4rzpAsK@oEbUd2nNQ>Q)D`l~aRC~_ufBkgqbl?&E z=}O^4Dm#X5)4#ttRYek8w+J6M4Hjk9tu! zCpoH&{ecJZrH)43&N!;&xL=`mDTaPy)}FIx?t$)Vl0O{dij^eD0Flz7)+v`(V~@R( zJt}0l1L%4hpppeV9y5-$Ja3WDN=*$HQf#sBp1G;xlaEaG%~44S7~tcrO0R_DJXAQ9 zW{ZMASe*0NREaJ zq``7{&U4bTlnPGfq<4615^{O#(xzL_n>pb1C#_{A$UOJ$QVXyNAmHY+bo!KyAGHDB zk?1;7OLojMzp1SM0JZMwd*Y9@h8Yd@?NjWu8F8+QG5MQ0sEy`1-Hh}#RL%}^dC%f$ zjW{FPpCYij7sb(T4?KQ!hU5XxOCI>^RD}3%T1L1V#xd`jN}pkBUN>I+gO7Rz)_(0! zX~Oh8`wD2dAbgp{Qh@H($Dw!|!Fpx9qG)1|&Icv(3m?X%@t(U5kX={jPftT%IOv}l zHGc_s&NRQBp3X+wvpwt8_5El55({|eg_*>QoF97eF|@HbSVh&6eA`>MV?V6&G^Dh# z<6pD~kEXi1jtgDNvdR?W+}Eaj4$|GcItk|rJ*&dLGhcaLE47aq{pdW8diodOgP-_E zGmMR#oY%RCrm(qvCk4IEOjo{=FZh!d1ZSPYuccM+{{W6{?BZo?2VMs?L*hQD6^JBm z2N(vp_^&rN1PbtQZb`bf+!9fWM|PewO;=Srz}p^4Z%WAVj{q}4%)W_Epa^$ji`zU3 z%7$SDu0{cFzV(rDESk;mw$smFyx-jw>B_IPT(MT}$xc`1G4*wuT)7b0g0b``+O_mQ zgpp4YwCJRs2|Z10rjHMY;7~EZ=RHk1{BCWd*#QG@6%Q3rdz6-d<R%jxV_{>X>wY2dW#WqnEmq>nz$tlTY-QB8dI8hczF+u5@k#t0 z@e;;+hC>CzeV#(=oq@OvJu#owzd`&J;t%a_1Xy|5lqv`|gPiT)=i3#!pVd;MD6Z?y z`~AS`StV@`&YQ9)%b*7bsIK?nL?&Me%*9)5S40Dj4nR1sRQ<_)czWLJJEID6kOWDKD8q(b|n7wKpV5~f%m%tK;+iANXrpIGq*!qIWvZy z=WsYRPVQ{`VwQY`?N;=E1#2E8)|SIZu%1h&0hln@B2&?%W5SO7^XLt26&NQeJ0-cD zj7y`*-N5v!7XxlfbL=bF_1}gb5%_PTz}`K+z0@@zrJB;xPc3dwrhf7u{`UmemUz>| zE87i2+efA82mCWJWFJB$v52HpDSVQ zfyOJcc!dl^DL1-r`us?PlD&^OJ_nat)~(^vRhDasLMcv9C#`zb_kkw;p7dEK_=l(q ztJzTfk~Hgs$lYFx`z?GGgF?~g@jt{Zku)mJ1afh+Z#h2vSBL)4UlAMPkB#oHE*Q1C zF-Vs@06+az)AfmB=Ndg0@A~d<8qGV!k~hTX@lN3&+GHGKxvxg}AMvheG`qbYSRQZ6 zRd=2Mubu3!KeJ~I6AlmNYq;=EqxOwv37CY=6^}}cehx6FE?v4EPaRUUZ6Yrq)x-%uG1wD?Vmx zm&xa!TE>dwKVI2DtwL{;AGb|YYyeglg~=g zwTXjqk@)qZbeiZEXH^EgSw`RGRD4O|pX~c$OAqQQy_97A;Bj2n#OWRzCMleeipP_! zijLs-TJxP0WEd)Iaw z3g;Cj%_Apct<&$rZFFH)wVgxlP=)04isv*-?T!S880lK_+^mC)W9vkq=}D#3*-M#f zT(Z>G(#N>!K9z&4c!2ral;i17)bF;$LLB`KU`-6Sl5?CMD@-;TH*%2X-pKT?0(g|& zX)hFx8;n%iEV$OC0OxnDV)!#eYYS4!bCFsaUBH7@JHI-3g~=!`-;sr^OX8On(a7ic zf#$rQUzM6>E7Y9Vr~FE~@@!Xs@e1;NT5!&J9)i6LB_C%thaI&I6@Jry7<}@;abHS! zKV2Rg@az#_Wt4GWK72j07uxJ2t{T02TD>qu6ky|E{OM+uWlD^>G;YiFB3|+6_8u&S z@x6yV>eSvLiO_j&Fg^PHYsoFOhX8!tD&qKo)B*|TuQl^<#o{Sw(tm)RG|}E``u_lz zr!WuHb@i_g@s6kVomq}|bDHV3?-M&gvPR(g_O1s0=v-YE2ad)98bs*9&`2C z&ePo?my%ECT~c^$H7z{w0VA5?G|P?G2-wCkUEY(di)&T$Ij+1lIH*c8S`jC!I8PM# zNvvIpDag%o(y3R&^&P9)bqHY9;w0do=U#Q<-wl11V$i1t(!AVm1>oA0b&LE9g;d>{ z$?l1?i8Gwmu5r>}a;jmq`wR_*fq9+k&ZH{4e=mSijNER`J8M!8A9p?Km z=8@=OaLIe}4;lEyBXb-K3!a_ph4FWa8q-ck6~PAkGw`M zBr!xm$6OlHoMm0z{D)qzHi+hR?NHs_yT3U-`_)SeLwjPcbg>AA&zXJb#pIv~@m*K!aD;F`BN8;Csxb^a{yz|l0&7-4|= zX1MoZGG%!+^A$Oq+@xuwmC+2OGYkxNt2#`ZCjj@V+c3j;`tw#TP70LusGhN~;>mCG zZ#XO5)r)OfXe3D^au^JZaZ>6~i>oC$IRiavv@q_CR!l1nhOkaEj;NW%quD+a{9lP+ zj?-Lhl5iZ?qU##mFJ>OimC=V7HS-0W=H32Nz&Wo#_vZ2Ic@0^9jP&VR9ysv{w1K?73F5rw`thd(oRZx2 zuOB?jr%p&%QVOZ<6w6w9?#Xp~0^;(xkY(b0y0XPjYMNu{f%9Zu$-?-t0C$iqJkZPjm}B zgoE6*Wcb6!E8-pK@{&OH=Dgd(7c92{32ZeUE4(@!;$`F$+r4^!fQbL`sX!o#6J{u?+A}7;7T_1AoZ@p;a|l~Iig6fOks%t z=DVK}cmqlJgQYXt1Y+Gl{{R~EDB)v^sHH!Mna2MB3p^{re;2j=V^@rV;df*28uq{V zOs_7yIFa1B3|Em{?}z>s!Qoq{+ZwS15P*V51=Q z=NPVAS9Vju$JEzcCR}VR9w2ybN_EeA-_xe^2IG#k$ynMmI4(N#*P7@wc}mKt*#jc0 zo0Z&|tGy1U&g8@uNjW{c)9!T+4l~DpTBTz#GqG-i)0&^`EpZ7go(}+bu4m6_XtOZJ?nkMtJzvA^=Q64cD8TowNJ=<~XhNE7 zU9N3pL> zXOQk(vG?kFuCwEiQ2hS@ciy-^7WnIEZy6d^A{O1Tz{eeHi}5Fp46JrOdGxP4 zAD_iW*F5}2HvLN;Iq`n-;5Qw)uQAm%1AB1HGmPe}>l(b5k{(VEC*HGJJCDY{Jjdgu zi>U9h;nbU(yAa^^Jt-Frnp_e&#s{ZrHk=R$=e>FBQx>cNfMQAdP_L8EQTozncCJ>(G1CwTj$uZg}W9=}H@LB=b>k&M-wd zv5X8KVM9Vhh5nQ@yFtkYqVq}V*ZEUShk$XD-irccjW+HZ8S6>s^N>IK^%F<~cBtL( zPrpj56LMiMZ+bk?7d>-T(q3`v@79#Q!OjjpI(8k)5l_d;fBN+@TyP2FJ@ZrqoObmU zD!3h1q#00l6m!-=$cNZ<~=>;qXTsj!!&P@XwA(a?8=bJf3Q8;~z?+ z9KSI9y40U&^rYfDmc_|q!Qk;vTZ|8H=TwBGk+_W0mR`P{saP&vTb?p|b`;}q2nQqR zD?jZx&JIcK>rY9^B(^#0OOUi(7bFa+JX5~g$31F^eaZFrrCEMoeu9@EUd7XQo);sw zeQ8b34mW>=P-~0~o`0Pwn1ja|>qDj&Fa4`|13dbXLr$lYR8r$>b>R1;HwP!4DjhK= zt;^!%7Rdhq^;1R0ayr!&pNzILO*`!!bMtrNlZ}Sm_ARXVAd+*Aw4!m2L2rE36`1;t zdUH<~EQ5lib>^d#gzj;ECGbP*dfmEPE*QTD918Xi4d_Qs&~0P7Aj==hK7zSO9rUZv zS#v6J_|~t5{6}*py#=tvW zq%#)oeXG$v2j8psRab7@Mh$e|6+8$3012mpq=Mza{_2jn?Of-B{5swe(AGXd#y#u1 z8w;cVGEoNwqwrJJf77^>FHqr56SCYMa8heX-0S?=CLlU z9{8629PkHv@~Pr^^m-t=mWMffE;TEUCc#f1dAbD@?K(f~2N=fguMLy;I>wgRT4(;MgqmyV<5&DIJTxFhL~a9@(#- z%rhJ|HdN{1YF?st>t>pFSKFdDjR{Ljo`dl##`0OM<@9M3w{~IYvzu;A59O80lhELi zUPJK8M7sE0Xx8zwOEk|UvM?c@Mq*f>T-Rx<>fhNmcQ=<04f&4Ur1E5pvXuam8}O=s z4tzaveenMPNxbnS%C}m~kAFBo0>m8TAjeED1$nsG)v1P*Tl-PBZl-FRr|}2uPmNnYhGAK@2= zw1CZZ4El}CD!TzVj5_jMo~@JHfs9o@i2nc)H6IOldRNfnjbxSf%HRw~{?W(YJ-w@& z@n6N;q2eXBvdX8h|W@?aYbdiz&V@gu?m!8*KlvD^v#$W}sq z3GG~r=Pi!jwf0ma8!lap<+-KcZ2thlW2Tklnb)OyX0hR?yz%Y5=AZzyvQkGJu_uqq zn&JKr*++Ndi*L0qQXpi{bs%-GOV%%q&CG)g26DXcYs1Z}N;s6Ezb&845-og0@g4rX z;M?dTzIg2+hia^A^Ed$X{U9_i+ziwbJ-s z#O-gY#~J(Og06WEE62VAU(YU;cAJ|JsQ`oRT_?al8=Y&!SGs1m8%i|r(nl|G&m8`B z`R-$t+E|9Rj=y=`8S3nBF32>>1~TX0OxQWtBulpWj=s^v@N%Jv5zk1K61Y#Px-DB+d6iLo;h7K~7@Ef|!%l@X(!5_@sM<4e znwoZFelmEnFB152N3bVu!oYf0h+6A1z~jp&9`)+pC(#nlIgOEX1hKKkdK&TYp=3Ga zfU)&Bs%ItvdL$s2vz{wY!u~srSxdi8#=Lt{)jrdH>`6S)2Z&^} zKPw!4YuJtsq+q#TqS7bRx+jgGoCV%F?OisX;wyQ8%K=|0X&(}0w~%Ge9rMz<%@^Y1 zNq}6B#+|A|<3QRzkUl22g*ahckHoJP!6l=D;PJ@Cd6nnH*OuE0A?fSIa~kK4E-&(o z#EzYM*DTzo?F0#Oy^LQUNV95e@nZ~0HO{(p2cK%v)MhtR9r@{+sLPTuka63+dXyI= z6h&=xA-0ptke1^oiqeYkym>uqI!O7+1p4zPfF>4XWldmAW05!mT}~x_L8=y!|V!zPx#4K5G+>D<|RH0@F=t!280jJjQ8B=aXJm zWclS4^A(Askb{J))~e6TRXb?5oyRy8rmV5SoP)-BuNteih!QY-V{jsYg5#&9a#2WG zvU#m<7~UCXV41<ZY==Dbr5$syI%cxHCxE?##ZWY~X zL)ysAxRr(pKb>_R0i8+Oa87uxYUbRMPc^;ZRPtEyf=?COR?>nZDaD?lpperhFf;32 zOrV=^Agb>Im!iOWW(j&KKB9zYg)^}9$3o_-u2l30Kyslnl~nP_Xey$vBYrL81}E0#$#(yo2K+D~k znP{_~dQ^8F4DwW%kg4hHE4hm95^w+=vr@IBR}tlT80}tX_LW$_cy^1?9&i1XC9%V) z;;lsombo8V>@V~*IV!(}V>X7~aa9Lydy46XHC9G$He^;18Q5dexAgY=3T4RjH4V0w zwx}7`rDJ%f#VMu4!5f@*uS*GnQhw5^I_Oc?nUnax#$wLhlsL{mI`f;W$#wlpCoBo+ z=~7KB-XXr+*(y#kT|S55IP|MVp5$S+@C|#klB+8{k#%cb@}rdTGp>6Pd4s_2EB6Z+Q_by}Ki&AmOu_TVw&-k`oAI8&VZ zQt2eFLl31xbie5bcTCqZR+}95L+zNe47Yx#t!n9$HN2`*h7H=X;ExC!oR0N>Pt2eG zy3Vpq8E?7oKMlNj4cCX&Zn5XYFvrwY`;Q((WGfVdn(@yIYmcGbJ}T7)qL@}ECxKWpz-9nroc5{o{VMuv zMR_518+pOW6+M-M%`iZ%l5zB}3mZ~$nw*{6JJgh-ktc?x!+dA2N#gx{2uU%9z~?y?^;te2>Xclk@kq_-q9V|= znfy(w8Kwk>IT_?vc-|FT3nk!S01p)}g0#3aixqhQ3;^xkrSV6IQEb>poDtX1*A8Vl z)@zj2!9?e8b;QugJC#W4Yd6FmC|!2Mh}$O>%=o8Nd+Wv#mMd2LH=<9d#pS9n4bbC? z@4-^`5l&BY7Sm@wJWDl|+X$S1IIYb)#OT=lIfz6V_0$X#>KKGhibUwNb> zI))`rQC@{w5wdA&R8+5YXML`1CsRh=6y+Eyy?`G<*PkKcvOY4Br$?a$ulaoylV1bO(_7RV^ApRWW)}8H`9S72xr&;g2U8AQaj73gZvpZPqJUQWHy@Z@_ zMr%qv8XIqyYOx23qXxPCiDEfriC;O#ja@GIdSWm6Sh(Mv@4GODj@ z9j2$JM+`;f0GxcHxx0-qWR;o5dCq$Z<8{y40tu#HG0PFq3cca)8$Pz10a#! z)^kx`B4JJRHMM;s$%L~20}PB;D|KnK9B%bFu7gnVK@71sOn2>A`ktzi?jVZ#I)2w` zhg~Mt=3{;1wQ%eo@p^axN6-BehErR#XMDbDE9# z`+)oAreC$CC!$Z|1EM4Q0KAEh(QZNoSj{{THH4_xApymH4U^Ay_b z7i?B@+~@G=NX$WapEfYGjas z&U$fGv$(g{ig?KBnk*MBq?lZub5B{bk;PLI93KASoU(ksFK#&RO2snr%r_rWDSY5P zG3(Z<35XohdARz2Iyp*P7L2>U!xbV-2V9=O^{Q(pBcH7(a#ttokx!JXm&Cap$Lme= zFnQ;iswd!(a8Ddl)@{S^spSMrWFff8&wSI&pe{$!tE|01>qxSL)A`Y0*s!wTfN{y8 z-zV4%eQFhMdgng0;MllZG{$R~sy=Wc=6_ zW+mRFf_nCfh;uy-YML|CwLN%U>BH=&k};1;%(u}czg)8X zqpv;cu7R6~#y(&G)J< z>TfTbjIC>5&0Q;hUW1RidTyz#OC*f3yCit|f}Tz*SHTKo(UoIDrgO%4&P{U{sT11D z(YcOf&PeBPK9$z^XlzSS^8l&<^;-P)PuM6p^lR`oPS$9#;-3e9Y3a9?f<=jEkIQF8 z$-(PW_?qGLj|@Q%hoNaCiV*}TdvVm`=~nNgm+dl{8A8T0>ATQY-@B#&Yt zmA4<1AI83s!c{89oSmU3^S^UfQAH^|dY(^XGJHL;m-}Ao<51Q$0;w}ImJD;1h9GzV z5=lP4O6WX6tDg#ZDr=2aHAxyG%!$!S9W&h5Rqs~H*PL(WdY4bUyXD4f0vR;U}NlhuYx$_+M_nNem z-9v9PM9f&QQ-S!`qj+B7rtp2VdaN=esGC=K!BP(g^sh_RZ}d-xIszNjw~F4~KX)4d zS;+23a%;>i{wy!VU25@C6owdpWWf2G>t6hGAMI*WlqoeB?IW6Y+_~ew3+b1h1=O`o zPBSIi!V)(A;T^?zG_9BCr>%V*Y2okqSXvFvl?;O1MQ%)t$EhcSUKQi74X1~^Wj>jw zv5{kNiceBaeGXMqo|WF;)y(%-I^TjC6D_6wp>(?!Xo)urXV$m%3;6WrGv78LfNx@J zWs2y26tl8;&Psjo2jpW;t41ha>L-!uFBSBnVCGQ~I1zrYf*xr^~D$M-%x zzm6EmOGpmb&>REqYnRouX>^B;Zj=JUa5W^O=E&+gdsj~#iulvQ%jIFN?RdwnePlT> z5QJc@4Zq-$*FO84OY@9#_|!MH;lVAOj+J)i&Fp7rs_bAZv;Kx!uu^g z(Mp?y^JZ`EgUL1K-?b-;EyvjWJ>iy7X<&nRQ^7u!@ziR((;HI{9i=aO$}#@{HgwyT z7c{;U{AV6L&@Q|^;$|P|5i&-k@O?j8^W8UBo59{7xYG6fhK0(bx9MDMhM_)-eI3r8 z#U+e}1aNE6wNrpUFMRm6**^`gGAcq({FINSG9{{YEf`7#uo_V}0Lj-JBo z>UJ!ScX_Hn=Dd4Wwl-Rw#8R%-M_@)h>$~`Ctw^eD^$=3#)Z+{=NUC2Lv;%3XM|%R{ zZda4owR7Mf)bUcGEv2{h=v7a838RdN0K<&&-lu`~$@BCkpaP}>tw{i)u4+kGIIbu?nZ0egzV9Uuc69ZT)Z>=IYNUeQJN6OU8Q{7WY5mfOhn z^{ksqe>Ui2sXP-_wabw#t;bW-+MnTzUq4Ynj`iwO_bHsx-0$?|I(C2%41A-X!k~&= zFelQVsojXJkrejlH9%ah(awAEUPdW7)ND|#oco@Y!00z1Mkk1+^QLT^VyHr-H#w>GXY*zGy?LnZ*Z1Q9ax>Pws%w@B8lyte z>8-HJd94-IJoM|q>}sqQK5Fm|anh_?=%j*2bK1D7I6YYx*2PQdH)jVGi*^d0_%*+M zV9^7-WL90(k!9o4HPb?A5Yd|Hyc7CX*Mt{rsxi)c_pG?#JIKKt=DL3eXzeA;WGOg3 z1!-QYrwg!-r>6K*O*avtQO90Ct#&$oni0bcXVVpn;cHWG3Wf)Pis<3HSVzox^z^J~ zRp)%y7cWC!PsDM6-KyN$fVYD@1Mgh*$B0rK08V@2sA?MAw<<(A$5D>8*zpM~T+Y_q zzpnVu+XI)zeQN?Qh~;Me`4}}vRMRfC1}Em{*0aCi1G$ruNv5pbZCk+;$8EYa=r|SP=6Gr1;IRrit;HEA zJ2Me3%N&EpUU;nyKJcj>#brD%Z6?`42h-B8SpM@E9M{WLim|+1+0$wEzuGb9pzlt; z(&Ds;?gKuilT5o^J{*J2Irpp&9r*1mZAn)Ekl6^*MY&sFU**&jOpQ>r(iKP;IPmPfXVT0E7H4%*wNjR@%_%q;zWLB95 z;sMF&Uq+znHA)+qIVdZgXN9z}q4;}lK5{#DuQ~XWtjKQ6akmGK4SJu7f@Cjm8}R0FzPAFPU&b zqRRqLe@aWV**cZZPg;bRFi%umvxty4bL(1GfFj@kJ?lEnusQnHjASHWj=k%Swx(}F zz;b{N+3Q<6Cci$OxP{Ie)Mqt_svSv8@!FOfr$#Dx z2g^lc8;%`%SD*M+&6J5|8?tgwdh|^%#1`7^uh{%df>@h?TbvrLs(e0e7x%huC9{9K zj^A4M>EjkAJc(LezstHbjPEP58!4r{Wl%_u6+Ql#Zlc2w0TkOv%t^E^4`2^k(Y3V7 zi7&WSJOXRF7;12jD_4D62U1gIe-8W@k5zFc$OTEsuIo(rdu5^9WmN%DfyH9m_}O&i z3lZ9@#aF!elP$yShjVj`*KB2np%rDRoLWxo*SwTj#>G?x>5lcEq-k<%*N8Tftl8<- zrP7{FZ53u5dUvlv@MnaQ*I@vw5uBgvSyozJ=Tg4Nwc&3IC7rS=#HSzZ^IcY(Y_@TJ zcTW*xc>l+V#NW~ zwGGa4fcn&r zGB$DZ5%><3g*e87NxxFLlou*4NCw0DjMYnt0s=n@yRj4i21)&DPp~5>X||3!S8Q># zqOEf|%_L$$YbErUh;GU12lcL_K=6RFfJ=A>u6t3YPYsFaqqa|4ui~E>6|`vW$yLW( z*Pn~VduX)doS4_el;@RyTir+Ht3~=c2=mTt%1948di`c`}iWdO+Q2!P!td8R5YkOqw0@==u5O1JH-%P3 z>5sy)bw2?4jr*WSemSp58adz4f&A$u($+Z1b?5n3l<{s`65^hRk!MDKyxa@T1zQUumcbC_fKc-Z+K|7CgG=L3>nZal+ErTdb+NPD+Y0(%pJIr>ym44n&svqBlPh5V01wiXF5aS~WaQ*@>qBP% z41Gm0r*gYRobJItT4{?Pd$8j*J0{lSA6kvMA1`6~RUtH2nNI~r=TJW*w>>Ju0gQF1 zz&_uVQe+jvWUr@B!k9-rfj-&AO8j*LnvMBx0Oqw!2;614>(-Sr zPZ-Bqap7~4YBG82hCaRO)}Z5JL&}ZVCQV+bq6H$$)GM7#y^!V4n2RZG;+LS&>B>2quPrMaO025-j6Vr{5#W0+v}P) zZDYHz%8#3n&ZNjOL&DRF{x!El=|1q<0w*&UqY=dx|q%LG||?0 zR#63rX7sFWdSi8VPaS)96*augYiqH%0CcJ{F8GhR=hnV|2&3(9Er_+QB-g8_X@~pr zb>_3}wefDCD`a|l)m?i30DQ$0KPbl)&s|+eB|AqWzH8XRQ|FYb^=5BHsn^Y{3)I^w zEuKFL=C#WlhIq*5B-D1givTzE?^a&*CWI?vIP|Yd%1co#PB&Fzx!u?4Sl4WJ4z=29 zo)o>+EoQmXEoG7jkIx_&P<=D&?Oa}`YuCIJ;KQfSrCe%CE)r*5(1VZ{{h~TonCMpj z0BqK*7W{+^!K6{sIP3Y>w`fW&rbvJcszF8CabKU|AqllAiQS0wkJ~~>;zA1=Cr{+*VBLniR ze-vug-U0CA%XhYIMsy5A9wHrp9gS;<#7*KG-A3AXeGJl4ioWc^__^^Vw9C>ZaU{$- zk_OTA=qt)KkJ=&+4nomsL1(%v_w$ug{x#-*9X=@B-)mD_#W|8!C(Mx_Ab+!7YX-E* zf=T4^Nw2BPcuiKOt77$&)vxQPkrSyEBhkD?Uaa`TmJwBTkRe) zSXlo6u85DNd3BbiWo~ja+}Evs%nC1lA;%d3hmypQIUe=v<8YCqhm;bsw#3R;S37?b z-P~zfjB8^%KqTT!9Bu=(a(2EIH~#<>W4XR)=7@g%!km@IKz-}5`0XXVj-ef;iH=E^ z=VCZG{{R}P@R!1FG+UiVQ5zcQ?%ezxqP|u&o(l^pH*5R9dlk8uzB|`En{2ju>GZD` z*L4$rs7)axjPB>ijIe`&kp zEY^@leo>bCSB)%2X;oug+3ntr7@-;f+Eh-}YOKFwR1n#ksPU88+NT=zSOwUs)bXk#TyXIJSDug>i4=Ng>qq zrAY6i7@9HsW545D9xKzA#6A+Zf^7Mae9P;RUPIw85L|d?Q(3Ipm4-4q5njb%tHrBW zM|WyLNr72Z9)`YGGQ!UXRx*qCR^DD;;rB4h( zHRHFTtuGE~<5<;F3=_L2@~#T_muDvQDls$G$YX)e^RC0gma7(;m>s`beyQNUuy|Np zs*^O6Y#8b}t-B2c?6g=VyIrPH!uR97c=fRh6AyLibEnxjUgsa;==|xTjX5l9tMI*` zu+x+d4h3Z1=|5`MBP=*xK9#vMi#tLFaH6>}bG#!-1eJ}J9kXz}gIs^jSSW9KuAS>IPR)x$0TVvGss=inUp7m-XWJ8jARx*{^W|Y@1g)2Es zH*1a#aCxiVHPngH@K0=YsuHi2axv36&1U$sP~8DsoOH!?(D$8>(4}tBNFbujMo@KNEKQIC+~4mYL}s= zb0^_dVY*k~_4YO8H05@PoK@~=TSd6@+rO@sIe8CH&aLT#FM-Lf>1h(TIty1=?Z$fJr=?ti^v1k@jbxb$ zCRhRsllx+C&ZIjNDOb!e_AlPrXvRT=8tAf zsiy9ZqsKlJM9bOa_u{#WXBPR~a7V3m(fGAB8w|;S*ygvrHE5faFBD9N~^IoCh{Q)%lbtjB<&pE0-8SwYmZIqE( zI@YGTb%PV>UUXqRT=iNWeBU#%#(ZM&ShBQ{B47{Q_pc7Wxof#tu{k8>x{rxoB5hMt zagtOV3gxZs&BK7XB>UIVU}&mP<{MYh8omzFKG%MRVe*1ISI|BNSoG~VHsE}|oY#%` zcGLSkRkB5QULElxExUP*fzV>ToUWqhZS^?ueG6X`^{ueT0}eZi@kn{hsYS`KD9AXA7Xn^XrH?uPJQWa z2Grw`{Hy2Nyp3#Cx}O-vdeyBy=gx}^c>=TK4AOkRjs;xPV%k8(RY;`~!CjW(%3QBC zJ@k8(PBKSK3T%*t+R8e00;iF~+kD(tBYLK4_8DMFah&7%R*HP9lhppTodfO02|r%d zZVQda3`RP2=~&fGyO_6f^_Engc_*^>+<#Yt5MiJ-vLjpKf@YScTtHYIPccBUVD2a{m}%0>DIVwR^^k77Nv4`Gc0sZ zDs0Hu0=jJv#Sv*x`7?n$U)*k$%v@YG%%{u928iMeK4X*X>shrX)ZDDsVQ98HYgE$w zK>MxF*{AFY7&RoH3^lz~ztJOCi`7nRl(J=rhRz7*it2nl@hec!BPnA$6(ayQBD-nk z)2Hs$PD{Gq{J$Z4(N;xmOW`J^ry*;!3>WVK&M7qi01K_UDUm=Un%&U6ZFN4NTU2uC zIm2YvTX*p6>lPkP9p>TOPbum}~cDNgHuKwb=NpQZo~bn&Yp~HcJug z4Rm3v!{TO*+~xI2OW-a+JwN?br{TRc`9rbnf2CA{(B0}RNZ=mzwH4B7(Bd))_4gH& zXYHov9ofj8-PyZi1U4uP;1UO=UANaGBN3E^hFvYmSK-lM$nMch#B6BHQaDeGE8 z4N`Kv<78(lZM{+5c%Q}kc8#5~2_!uL=DFeHAMM7*z$5)laI;A+s{q_UBfmfINj&xR zt=$htbGIAGuVV{G*-x95SQQyP8#*M46M|y^o_VC5;g9a1EPm+6CZcrv0uB3_^TPG~ z>wm&JGwK^y#5b|zk<;m3l<|w1McG{H!(k;-R!qW<&8Nf8p#kky($PZlr!~{~hd@g- zEcoNSVF}SXk%3s(rz&>2t|FAM^5u|_TPlN<8K`cstWGM=+RzRPkH?y!eRzN#ob#ID zo90I|VsxNpVjY1{xUiBtT}b3iN*;SImLL`+oakv=XX6*@tD-?jXUGEPm`y5qkn!Og_}6VWa^$H zWQhF0BJtj?WL8*-$>WZd#R%D3KY5SoTAH2H-N-p( zp2nd2Ka_DNe)X*v$rm}0o0DytJ{i-7;UuSX9)6Y5MPU&+ARP7;%4vF{+t20o1HE;c z9naes4mx77{?w;SPNu%mMHICwEaz`Q(-oBQY|iX|h_2%Q08NHCPUXo1HOuO7ubM~) zt$I|ddsWP9er;KtP?7$4q2mMrjD0G9D`@95g?KsXS8yqq$zzUwl-3)0$33d!$DA6C z;>w@%nqZ2pAFuMN?l9*W$MUO=xF0vxtI9Cl2l&vPhS^;F&GU5ksNFh(ag$RNEZOHY z#!Pk2MH`vOf=IE#ewAKCIUv>78@h9j)eNx`q@V|$2t75P20GRnHiv#sj>NVJ8KyL$xH$(L)Ne0d2f58sL%ArEa~?WVgLA>E%O|Hwa>`iu z8LH(e6PM$I%>d)@J-gIiVb3O z<#I?o*F4fKuF=^Px>eb3KW* z%*eF)FG-LOyiF{A9y|X4dJa$JUXf+sq_BV!hg^KDyo2ji^-m0}V4MMt=e2!K8ZmHO zuI4Q}yPkV};q8$RFRy=k$h^~KiH}~H;MaY3rw42=%-+MA&($=fhTV&R4_xOp-wZUR z9%~oLB(Bzk7TzYto2J>%Y>>fi9u_>4xRa9XPf}_R5_oe*)=Z}Q1&UdQRnvhVwgphU zhwXRku)ZT)u1`6uI-CM%;srt|QMl(hKK1G1XBt>&xc*1g#uTMS3fD~@bK@_E^5}9O zuuPXoL2M^g9`&dDH)xj=d{4HXYYFZxVObVNOb;lPz+;j#gY~Y%N`+;S_a@Ne0h_Pa z6z_w64LV=MtG2tinlzF#HL|Y@I}Cykr%-+C$o|oVS~Z~7(U;Fgd05N}g65=;Rnt;C z9d_B-cVU5S_s6|`E%4{VzwneaQ@lX#1GWGa^E|f^#jK)BI@|3bLpCrE_}9}v4*Xs` zG4RIXSteN;2rwiEsUsP$ipuFubd^bMf7AXL^Xkc@t+~T|bMY3D;CtK6V^~zVyomju zPqof`*#{el^j@{`m&YHEs@9h=T}>pqq=c6M?N~|mHSGQ}ORtDtB-J$uE>%om+uBI~ z05V4Bt9~EOxxWki0`RwnZXWkhwEo=HB|F;Y{0Vj+_7kA`^{)CD>>diIx5TF@bc){n z-$W%IRk`uC_2=4IrMQ(tIVUXqll^M8az{dYSKmGn@NS!De)4F#9-S4;$8$_A(6ZoQ zV3Ae+ApXf-5%`UEm;NM4;JQESUeWx${=^P5?_TtLL%`Fhp;nxtyXgM_1^sy%EDyET zGSv8H*65>yoOAhC&|k6L>{iXJU){wXY+?B%{vyZtf0b=~N&SQL=yVzGJ{8S>HRNP% zisoUl*W8}<55nIC&G7Hxo7(H~n6EExS>;^v0OKD_3hTx34hu8EN~RK5cS_qee&{P< zDq-!VmXSe`oZw0*yL#UPy=J8h3{t_!p28y#TEkJQ$H3#e4VdThN8G zwGD;H9+gV(QZf<&BE0vCt5w=N8Y*hmX3v5OY3%Se7`He-%CGop0SCmC#6bWBz#LaC zrD`8#)FYF3833PZ?=<^N_=ei@EaBrSNcFEL8oiT~e`+ixXk8 zq|0p}lHV%8rA;=v8&2k#1oYrrht=Fx6 z4F<6a_tegEsGj#d-^5=8G>uv}mqmEmHsx6eBzqd=^q&o1_#aVdA2V3Ya7aIN`qu~H ze~7xThUH(dT}kDG$}?md^)Cv1Nwx8cDqRJF3P+ zWy6}Sug=@ch4Ts?sHdkMrnxO!!Q)_gq$)QqKmV0zazf8gm7P0+4XX1W8a z`M2_O#&{K{Zoz;g1NE;~tvwW$hdgC%4=&YonIS*D2cK>$C3N>Qe4_xK-D}nSL*eM} zA}p#m0mX6iXy)4EYc6UdUDH-(>eCyc!eapSuD4CNF`(c2*FS4&Ayp_bT6Whv7Y*Ce zysTWEV0s#wt>2q&LEzUJtsFCL$6wC6acOa=F55WW{{Rju8NM4`-6n4&iU7yC&1Hq1 zJU_(jHFmT)Yk9cm1B@S0SFGTY_Ek$%EXT0zS}pMH?VoISa5&B@r_!`LZwqN?&xtN3 z92)7ZiH9q2cL(NY+x$45T^;T&U1N0{f;W2QR{YxCv~R)9dIb0F_8Cmh$K~jISCi_} zm(-n_X$UcH(7Z6w|Y1U0P=3 zr+-Su7w;1jf^l2kSD6tEGoCY8x`m(<-M^Lx>*-f4WY`C-Q)DNO=e1jkGO+?P$2E-gRy472 z-+b6K>upHEaIBx7t!2#2atZDE(^h5;$vNrtti6h8j;CvLez#hGVs`YbJ50@Wj=Z|6Fqn|3WH$S#Y`!~7mrST(n#0sIwuBP> zYq-;5{?Gtpa?)yE8WVy}G3n`C*q&DTplK*r^EpJ2u??R}BAJzmIU}ufdcTImOu>e6 zT%N6TED7X~>rR9nZ7fwPE>BW>?-I3~2W#!yTn~$UR`zh)e1eGCCxP!+ z`hBBb$-S%T@Yr=u3Cm=3&Zo0nvE0z`{*d=~0i^yT*1d1Qo*#}FQP=^~sICh^jctf0 z12x#_-YZpANJ;b*{;e!j{q2qlwL7!WRy0^~z*QN|dB?@i6bn0NL~e0_0p_|3{{R$y zn@?i>NbBidCGi);?W^i8pyXtaTJN43G}456{zh@rQ=7fHYpbSaIp(zdIj6MJ2F7rB z{{R}wvy9wK0_P^Z2g4d4m29k60CzQYoukT&S`oN(jaQM!ty;CaYinlQO-ntHGGyb^ zil?l|Ep3lD;~i;XCgXWr&P$n`?~65KH25Tp4sliVNdc4-(z3OywwC3y&JG1GmwNFw z&~_#yD2oT6{OKf^N$dD_tSBdWMh@;h>t{;0X?lZ`UQJ3$maM0> zku9}>mAYhOiqo{x84+0Vj+H*2VqAa+UX|2ox=@}RI2r5GysSsfbpZ5$*4$m$PjP^%fGV^u5Mq2`5r_3i0XTgq9u@9j~o zt2ycT)}582K@e#{C%#2#IYubOM&$Z!xt)Q22Yl7Z>@CV+nCI(Mn)Kj^Mi-!|VkN*b zo=L7LDK~qKNk+{U?d9?#32(SBw|bk-CmAP`)~cg`-jzI3{HKb-OIwOg?6VY@9W$P$ zq{)|{Jt`=t1GhD9*@1Fcb6oP!5+$^Sm<$3(Lsr#%v&cO9)b?|RTqI=k&lKtGj zb6j$hlhqGif?I1VYa#=Z0U74K&)~<4E%iMk?ADpyJ2iNOULBFse$Jh%s`yE%%i+%x zp&;!%A52!5I5XwG?*l5Hht^Ny#fr+G#-$*U|!@t#LouYGZd$W90!je77@u*%Ul zYB1Q%)vion;Nt^>T>Hf)r8o(e`d0LsHO8$V5v~-TNv%B}K}`*V%m!5QPbRW>sK-`g z&95-e2>d*j?UT+zqo>ll>mLbPX;uVEVu{pz$2^+kbx(+mV{hf@Df5ovxStVt$63{# zg39C`*)-vdtylPPGnHhTwx^+L8itt##>k4XQ^_W`^iLmYI$fv=V&9H{*UlP>YR>G^ z%FCL5mG-kB7f#H-?{iTM6sev{0B}04dXDv0XY$*E2(N0axsptrRas)E&m&|05~&fh+N^(WnWFi*;<=Wb7aMXr zRoEMP05gi@oj$1LYm}bq<)+RL9kW>%gsJDB@vVh`dR1%tRCPHS?VQ({S#C!ukru9P z&&`fFtsOtdX4QZME0Icy5C?q%W+*` zxcfz+IO;ts$b2OWTV1K`o|WmAvNzc9t<+bog2BVtJMLl5)U3*vmmAoEN#~$FD<<;O zIhFD4S~8W~a(WJ`NeyKe{S8SHg~jl#I!76BGGWJxc4zL$vbWrCGgJEr{@Q zR8E@L4YYzt>t1#(xwT3KN>)}YSWhIkSsZiCcKQyimJtO%f7dn5N23@b-M~FZtz57q z&CYT;t?6Y@_^JvKTQjD-*QC1nPH;L^2Xf~lBif@am(OmMF2XT^jw`Vx9TCwNWH96{ zG^Ty3Vy77x=eab-L!K$@H{6Mr1DcKc{GGpAv}5Py&JV9jW5bb#AB8mZ3*4h7KtI;2 zxEs1wgqHd3*PL~zS`R_>9jWds+@r9u$;iiAM~j}B#aw8%ld0z;@${(VOp&*Y)tMs4KyYb-10(P= zS|&?nDIm)6)c&;-+A%*U>+4%dU`ZTjwM@D}X5n-A^{o<2m*jJjX{A%<&rH=Tn`T_+ zJGviw>?PBHZpR!}Mx&;d&dxryXtS2M1seyYL7Z{<^U}4htT{a6HJvOQSnoOZs*H$A z%xGW+cqI0xBW~pM6&tT0p8c^(az;VNG!*-iZs<=L?hQ4Z1M_2#N=%>P#t7!4b{Ok} zPQ(srLC$&4tuV>y-?cT)M;Jbw(@dCilgXxp#~F8w@-as8IXKNkPdNmWLgRVqgZk4$ zEG)+Wjy>u{m@(%hima`U0mdmq0cO!`7Z053e<8CL(V) z@)XCH=HnmZOlded$Kgow1sP&T(w{Dx4&#K}<$9V^G2pLLRs7Bla!0SNC~h;sz~F;b z%1dRXkdQOY1;8AdgMS|{KC}`uoMax9I1|lsadXGZigZ$Q&UyWQl~^7?>-baDm44lN zQslOREiBkLkPv$cnR4SJ1L|t36O4>hfRWr%ErDK`N zPRVYJ4-wu723V3$wOa5sv6;+-9iZpZvUPirbsz_?@~*GJ%9hq^B-{iQ;o`3v50x6n zvDtW6#RtNg#B-I7PytgDfK`F@6_@dsT(*`4x$w>sE2Hznj2IiZ9-#YIBdz$E+fj2K zNX`Z*((G?-8y`Yn9i%Hwdz>15i%KO zXK7K02#28cHCJ6(;PS=1gf7j*k$^uRYOUdIT`qMAqPTJzMfp`n-l_b5W#p}%H~jIB zl=E6jN~Iccme)RmFOsQ6N3llV#0&kPu|X(ugXfS8DE1%YU5|!*OAUqnyxvKcZP*0$ z=Df};Q#|RMfQ`HAYpBr#l3pv!&44m9>t0Sb4?(-ddikAlR!_|xMvdS*kJ=C83DIsQ zyR^}?xLW%1^4x-Al<^u8eqK2wdsnjftHeXYpA2Epw04^2Y2;WQ;pD)Vw?W+Xtlx%r z7QPSoaK}$XOU-iUbf7LV8jZR4Cz_~rX4d>vOGLg!ik5{}A9(lA(>37Z@zm)-VJNFc z3twAZ>U_O;+M`{WS5>r!PmT*MFepn%@OE@9+@E?&D>Q=0&8f<<#TeYo>=X}jPfFl^ zBmUBQ55we=4K+@!s)iuJ8;>p~{{W_s{RT~Z^YJU=M!)esb{-?Vb+pgPX$jc^j@*A2 z)Ych)4P!HR&oAA<^?ScX{&qx4Y8oTxPab~QJ{|B!nGb}O^}Ey?e{$O`(EGoBeKTG~ z;vd^T$9lYsx?Sz2mkSfME$zb<2i4oJYQM<(L@jNlsnm zui>)$jGb9@XKkl^T=CzHHHa)@@fNKsT}Y|17%K94=quR%DEP%}AcowMWVMB3Y#imW z&*DvSe*pXxG(9d~5NZg1(*FRtw2bgat75&I;jW+Itun^L&4O#+e0lK(@5XwZD`bM+$`AE0pukb<^{lTwpe5&!h8@in^Y;rvgcmQL z`E&@SWzD(ew|@rpoiHbxXyu$`Li3uXr|DDaTA7Oe7luXSYbhV4dir?SY1ffY<~vId zE0d5azPa%Ud_i<()hz9%W*qK7Gxft@^5knT=9zN!xt@t)8Ll!O_s{c-EaY~O!$AOE&h-eQas4A zIULrP?91@+d_!k{HPY=flN!iZK3ajvAB|)9aw}~U;!dNc=6#^ph7r`EW0DMq{} z6})x-05UDinp>k2<5hu8O4e))OCMU{r3d}*YW6>i`aQq=BavKPvGY-iMwsQR$u6|n z;a-6IUU}Zdv{X< z6lLTPX?2|#q?^=Ys@NTqVY-9fz1HJa7de`G9>L(B9!KH}F=?#fXWNBy-lx<&IJ)eM zYQPCM0*rd&(!BowMS?|icuNKq-f6naPj4HsK6G5?xv!SR(NrpP(mGOYSoME~z6ZC^ ztdZu7D`Sp2S7WJKtlAvH90mwT#bEqA@hn~|(E&^u;uvAyKDe#WjS3&MKEaNCtHQ+9 zl5*zQ=V`WZ9}YCji_a3sW(-y)$^80PqB%A}yeC>Qv#5AI8la%!@*l5073N{hQ0Q=N>l)q+eql3_MQTTUR zUk%wc_lRb9IolLO?%GM~k6Np#c$OVX;pDVJu>-lJe!2D)?9jS*@@_tcvZXomDaIdp znvJ(IhLd%t-xa%tK>fiLx2L3@NZlKH@TRH%0K$29Y|670l~<5lWd3z3`0nO+7?oF>Sf8x)V(B_LFR%x5Nn+A3<|7SKp6C`sQgnU$NYRMFdfLJUJE^00G>UK zj;d>lc-T1E#iLlSGmQH|FN4V)D__GpZ}z3gSxE>w)sf&xUQ*FqWjkbZT6S>5pxUxq zKbTv&^{z_zm`Xgf_b%4lv3;s8jRA(mRd71`*FSx(PjbXOg!jQUHl=VT$#QZ|e;Uk| zLA>*f_o&0rNnNc;a%G5znsXy={A%db+Ei7Qi4pKQtms>Q)gO&5?5hMNvs$=wI|5ph zT$+wf(@+w)ihmPTy7>xC*<5hDhA&4aP9jnp9(48B&kC`Il z=yy=qKb0Qf2V>1}8q|!JjwHxz;{+P?D-RM)Y}r;nk2(A)zBBNxw~BOEywl?m-NG{A zdOddF@h*){TC0AcIXa0b^f(;?13lsd=jdy;`vLnH-Z8ehe+byPyjJI~G3j1_V+Py? z&N0ZXa~k}zNgGjK>CQSB$IaK%wPs#M41l2N?OPhL5S(~8R2#GED(4`AAP{bG*Xve7<~~L!jv?j^*&qs*Ve)!l zR#KJhThUylEGMWPe_DoEeMU1^p(AGi=Ao7_WWdc_WMZytcwzR(gPh{6-sTr1aog)z z`T^R*3fxuAQf;{djyU$NDw@v5x3I^$E%L5&>sD-eAd!>rR4sv!W#_2r zSl%bnn^%RJ++~kUX1S<5AuX)gwR6GFGhOF}8H5U#iVv=9*uqo8xLdgCRF^%Z&nCV2 ze}5(EA~s@A0=9I20N=zH%#3ZvuUhsCK-0_)wEp#@ol=)vu+3?SVrG@;2Isw#}pZ2#AgDz;Q8CC`ksF+-HwC69vW-u)=3v2@%67xi$xZ;fdIxwIIS-L z{4JW-Ob&^UloOi0sp%5hljfo0xT3BaaaWq$)}DD;_ZRB%W*7mqOj8}t*#I{TF z9jC#umvA1HyJ!qxY&`U;7SV{$Oaskm+5Yvw8SCp_HEDCONZPa0mh#NIFCcSVXNnt0tIsui!+(BQ6M}j4uSPWeoj67AX-`DNvas_;f5@lJZlj4< z0iVL7xYgp)tun(0t_5>)>eoIXzT0WIWZ(f>!wXV+$=MC0boSyFm?T6NZY!v<@Kaw~ zD*?_ps{a5Dz8$btn)O+quQlj`)huBNZaEcroC?Fz=cwKKBMy7JBZeOju;+eq53O2{ z;qlw@x6-=%OMdT+lf`JIm;;WT{$HCX8;0BDS&sy}$ zOJJE^qpez&6t{@B)y_RDvW^+lUihwYX##0B!CeO&RZr~$aWIY`0MDgO;+v)uo-zsI zqwubnZYD0k^}w#GGnIMrEs*+~wq9bu3u6b`uW8p%S-VJM9%o_)tujbN5P(-TnRRqy zZl?mZ#Lh5{+Ai$TyVQ)XS(yCX<29LmF?^ilRe3I%iNQZF7|m0gP}|(`UoDEnO1tGc zB9q)^qbMuQXEfq0l5huqT3tg>2PZrV8R?-()t|^ml9eaEt1Bx zW4JEBCRo-sp6xykep=bKzk^I&&(^vy*^;9UR&=Qv7TN@tLv)R>et4-4lV@YhrCG6# zYZCLvG69QVRegW@)s1njTwh9A+=1H%t!Yy;=U(h@>S0o%Z$q^jjlH^jxF@h$qkDDs z)@+O^?TW;*z2hud7&FExbqTDeU7|tq;mJve4#sZOA_edjF&jjcLvD3DtRgb3753O5- zf}b{cJW_~4@(0}=C?Kx_hp@gTNNzl|EXJ!{UgxLy{xsWNoSZ*Bi(A1N+%*1x5=>ZMUX+b>k z>0Wh7sI50=N5Y9=(c8=4CI_y2)hn6BtifYZl6mi4L#p{1ZU#8*T-K)O*9>9F=NYSx z9a6NDyEBS%)L4Ob%Md_4Jt|cT85=v*J9XFz1pYN@HaK1nTIuGKTARi_%TS+OA9}Dz z108zv-zHE~>4 zkMRbfl{1~a>TK^^4Ept?f198Fwka(|a-^$QPt$zn`G@}iUb-DKO&bOWv8`aP^)r&OlVjntB91UewNG*3_O(;M z$>?jVu(4GG09A{W=TIp>a*+H1OL1-;HQisf|+Y!i%e(ulF#$Z$(z9kW0L zaVKx(Qp+AV9cnojZ#@D2b)wXU#xW#vInU=&Nd5TFwLQ+${uL9y9E@{7hP!M$@tT4)|@)~QPhlf z9MFt%F`8;aYE(gp;4qyGS}Qf&&|^ZHe-1R)q+awsGG;)MeojtQqm zrH?uMD@4b*(uAf@b3i@F$fx7x=hl-LKHVymfNYDH@yW$9QGf^s>HakSfZ+2;>(^;D zq*$2`Q_tr~kCz-~p3C!d)Q%_%yB&S2LU$D@z~ehO$e}^*I&())x=k@`BCpGl*FF6z zNU*)>sJtGBjujNPyP=mqk$4YqGe)&1}rlNvKVsq4Dq!Fs{+|=0(cRq^vtKj=j z1KP!FqlJYa7*$+!_pdIyx$|Onkax~~E3WvN;;B4Et4LMO-PpNhEGcCl-IJ?qerinRkXQI8ph3GY$}q+f<0@X(DZ3;?$Dy`RPK5TZH>AZOBE=C zAU9pr)%Z_OGPGkU8e{>UgWUSpm0ql&B$C~poobE|I$OK+(0njvzlL{Wf+!1&Dhzc3 zyo=(;k8b=g;On%~mVdNr3$U1#h7|C59V@!=zlfj2`pk9{%>Mvqw>Zk4!=TT-WO%0V zYMN9UXkem3JjY-T#9n&#&MVHtSA;Q;n};%Q(@y?<&jM0X)#!Yi<}))KU@7O=`_yub zl6c_P(;g}KP@fQdA0%B3f;>G|8a%Q!fzoX|t}oB3Bs@Xx{Xc-O?x+QKm!;z?VwsOwlN zo0tMK&M{u?@Q1VwedX{`TU5r-I3O6I;26o+jx}{ z)dVp{IynOcu}h@rk8qx4>*b%Fx#{(+jaONU%}1C6&5$9F(0bI`J+0zq=TdfNZa~if zeJk_okdup>c5m@Eiqzk{NHp7gNO{K_c&<}j)cofC&k7H7%`T~bCCtRRZg}L@P1VK@ z0XXYg;c(6`nojJt!LKvUPHLsi=>+rNwIq{a4l13@rH}a6uTD1wBE9X)JB*$Wdbi-s zFZ*M}*6`4OojMI)P}cq=G>c~T+ig-1 z8cCb3KiLH1CcMk`(D3BeUlpg+4YFI>-lB-MuGQl_4_-UhqI?6qpTl}27S{$)-biD$ zax!`AUS0cJc%JWB@%%Qrgs$sp2*4*hN&f)#SHFhDs*?Oo3m8VRQ>7i;c`wEqAK zG#25Z8RPS*tZbzhVHF7{uoc<(Ps4J8u+F=Sa6PMj>%sQ=D~X?LIThen#`5zyGMtiU zFYx2Uvv^}%F`>YIagL_DYn@toW%F7_-z#!6(0W%L4w2{hnmO&zh>-7m^cC26Ye{Wh z;Y#EnVsoC=;pR0XD^0yEsa0pK(b#F)h_~?4Tic)C&T@bH^!V(Khaa7&usOiM9JxIJ z{WU_U7QD~|D|k#}OBWU!5!XvxQV(D5h4OM69M?4;Y}{oL?cxhcGBs9aphH<;U` z=zRr!U3@he(Wh3HlG8)b#Zso}Mx=K!C)0HZ*qitr7bljgR}$=-8Ry!s>bm9S?1Ws- z?VbS7O2oNGjFS0ac|NtZD7kz`mnN)OoA;xr{AviUOmb~KLG9XzXC@?=UK>-zRgA=~EhP24Bh-JZA?PstV#lPd`d^-RKNKIS1aE3x)$Y!LH~*#v*!_ z?A!sk@JC}*b?eQ`@|<&ubhoPj;Ezhe)io{C5!*kJt*B9Qox_-|JnW2dj1$dAEygfc zp83T@^KQo01p875&f$YzvWi=gdzY=)k_IuJg15ANU;8>X;4pp&J?jDtLZfywik>){ zR_=MOYOqt>yR`H*qS0-Prt3~!yN+3E`mdVY5z?q>Z{&imNFD2@@ZW)^)Wb>UsP4Hn z#a37Np2tijWn+c$jiXzsAbl}hy`}MaHnNTm4SL^-z8l=!!2Vv=?Ot82_-5lmyeo4P zMh{Hpy=)CgRHtJqsofWBkC~rtwQ(aj_WD&F9yTOob?chgNOt=AVzR9+S7PF{u>wLu zap{VV;FMfrlisuz4cXcSX~*FscWemfK9z^HN!^5^-iYQw%5*&bwJx8hJ^jk6slhy) zS3uqjk_5|~gX>*CgZ>_qVAD7m?0rQqZ_n=2+=#{9A{_(5&_iMxP^$R+>jTABaqe#< za5IcoMSrTow|{2y6fzt&P}MYOuHr0>@5OLal}A$cHk~`i-8tPd#il?`N8!zEL8Yd_ zyRI`-CX{LGv>fdQsLQWQyW}N!t)&^)cZ<-$+B=(U$z{-}{&~H;1Ni$@OPyVx zs}gh9wPoL3Zv?SFTIs{#Ei21XIl2>B>WpUj$;dUmrr#?#G7;@umAtBtob~sjZ9+od z=yLWtyeHx_Gpbx= ziSBDpMfeP1P}e!**N@V-ZN3~^>1;g06obh%^f_+|=CvlOL)~6(_dU!n4Pz_$6*Y^b zTN5E>3I=&K;r{>^JY0<{!;pcn zIsI$a%rc2ksH0J<^*sF3FL`aFQdg4_Yp=Cj5tGkB>t3bsC&A|9QI6tR_h%U5yw}1S zOKRGjQK;&9;=ZByN#V58w6tazAaUp`uP(xSddp9CCfObZ*Q%;DqCFc-xVEv=QWsTI zjB+ZrqoiBv5IZOZK=rPF#9FD0A1|mKjbXo!CDWiOBbFFF>*}#Hpw}%+A9;(y(62|{ zNWl1?Wfh{kLBQxh?_N=O!b#bUc0Uk2VA{6iL)7t}^}^gp&crTp{Oj{%GwY)by5>NXC9SrNtnb#%6bg?W~ED1 zjy=-jrDW^6u#Glb^*u3H3Nfc?OMZy1Ta$Q~#IJRTqHN%DGt#nUk!)=l=L0=?s3CtO zwAUo(JxHwmPg8w%YK!6b!`y6pnAo1VBE2rblS#G+iMJg%>0Y%8DnGob_ZZZg*%uAGdVRN-5M1^+ zs;ekt^JA0Ns$OcpG2O}ZHAY=mciiJVS1vl$HD*y)cQ@djMTL$q>iAZ44Z6 z>B$P5uCH@1QPROuNXb1bnbkDnlCV+p9)i0$rdi_4wPat!uQA)sJ*&ybC{0-CM;|r3 zfv^W7+Ol;h-ZEI{rFPer>l%{dfypPOaDF`3;!t-@ zcy5)?TEP0X;CAE_O)yWdUXp>fgX>*3i=Z1&zGC2a;=NyU2@5Bwo!ixm0vmXgZRggn zY4&Y9ZjhXItrXK@^7AR@6;DvrlF14tHx9mnyxNkJmn?NJM`! zS+Y9{$7|NQa%4R_6IU&dm@%G}KEYGf?ovgSEh2z2b5p|sA9#M0>sa>kMo1lM#&7{* zKgOmB&Q?ZpBZYG^f<9jLt7>+~_*F=u7zMI_txnCgLV;gNg@?0^%s05VS7eN5y;gYu zQ@HYJWXmbZ>(A1&?mg+7&rje zpBzm{yWH9`wu6dbj@0-Q`@=qf_NOdGzZ$g#x5`+P$8PoQ;IW?5Lw;hb+i{f`z^IHR zMtglTS}zXO!w-6a;>X_Ny{O9ZEjw&ccn?-uRJA9t$*YAjNC!C>KGd}9c>de$d_ zF4im7M_@Uw&s&jX(VzX(_}0GGH89PthXmigd6udBwkkO+PHJ5_8XOi<2dfnm>z_&jeB9=qtBhm$^r7lq>`H`@@{HA(hJN?|0I1Xn z$QVCERvQV;@>p216=*hmU%ONH7oU#aeH=G70+AS$B28&+9-WP)So4th{3# zdz!dn2b0OD9w2j^=e00Mry~_O8Ivo}e>5*GjY9f$l zBPO!6Mhuv4Jq2!C!~q1?Of^I{Yw5PaKnUivKE}?UIPJ|rq5uF2JJ!gDdf*OyPinqn zB+h#KM>GA^2D#l!M)H}ID9w6W>EE~{jFLL~*DI~tD_%&1ZE!R7r*3UXO|#8)?JEhE z6~pT`U3RZRaqV8Uu4yec?W>SF@zT8aQ?wGagbb)B2iB@E&?4EzT*Au7AaHY3rOq%i zNIgBPpw;ZWxXA;hbJu7?9#5rK#dBPOQ?a-h=e0s|TaV73?UFJ70P3iS%Wh-&RRdx- zLBZqRkQ0NRzSI%{JpNtjKQ3vFYp8BJxyKaraxu^!YK(nzyS+JafrHnYM5n1ZJp9?o zq>b`^UOv4kfr6g?{L{e5=8F{dC69rEc^%D4tBd&Q;PF^b|Pw7tgVbEl8 zp5LuXHw^9QPo)Zj2A}2UoOR}%hkXvz$Zn+vanF8pS_^3UfdRkOo;fv@XB+u}$`B8? zTI)P3X4<6asHAg_J6FJA(r~lgnMw^SmOMY`vBda>c`o2-uiQkL!uI01 z`)O4%HXcx?2)@Xsl4EB_y0}QKRiu_i3W^3x5_lEw>*0uW&xdw)eq%h= z(Wse;&(DrUaUZjP!c9lV7xL>iw&qB!axK~TK-~<4p2PXqx7~O|>7EOfb+@*TSkLa& zPV+bWM*^n3dWvqGeiXHR-THcUIA4 zc_E_=+^#xdd*-a@T4UbaGdhKeF_vS-F<82_vGHEDBv$JrkXo+ian9m81MOTDYB|o) z-Rb^kb~d*>l{K-?qufTP%-*WxGqF#c^PUYP%^s@J!=bFwG~CYayF_Xa-NEi_UQY*V z3dN&Y9JVk3>6*Qx_#XBcjFYj8cV*`o^%d$v14gAbsYjN58^7X-o)VPf?mIEd7)j$^ z%A-7WuO$7hqOiEO(ll&3H>o%!=@eN?unyq#ZLbC<080E+8e+h@SJIy zdfP^#?g@_B6!Wl-RFBradn#Yq*`#5Je7v_!{J$o7(}RaJUgwQ`6!0JXC7vY{-T-YZ zNRmKD59}-0wQ1R^(D|l7pY#C2d=DKU24nw(QxGDmi zfz*oa&9jK&aXioAS}*I&#t^cyltjDx#_S8gBX!j830=pDZ>IS2Ev zUY_K(QI#?VGm58jL$M>KIID6$Bo1o4skEKh=DXpbT%#!JQ-fZU@Q^2lye%fBc!YWH zjGp7#xH~O5^;`IDtq`=6$PrX`CcQ`EK8^nX2)2P?r6T;%My60Z9CKWGl}>2Fiu+IS zKgv)somnuuX?AzLMt0UF^Blw=@!rm0MI%WiyOS5_Y z6~}7h{u1c+9wYG^N#eh>O&kPDQ98&$&I$A;xBfPOz7o>-=ZyYUYv3n?88jEv?nvLL zOXb47NJZec=hCAsiiQo&I!V3$W-fl^&tdSiizbUTz;%K)eC!G{v~;hTJ~DWd{uT$s ztGO(qL_~iiV14XylkZ@Yll)uImzANTm6a7W~e6 zHR(~Bpq$&;Ss77Z6Er*<@cFIPWSK!dPZiex0A?f#yCWD;>0K}OM0U1|9?`($R#p1! zKQB*usUAJ_bSAOBi5x; z_LjN}Ut<1~aMw1>+lU3Rj>f$sz|ke1hcwN@H_9u{{5ht)b})wrEZe@d*_}vf+Hza+ z8>toGW^wkvyN_^6?A^4IHFlOyx})>;tPdCXqSDsZN0j7&jAFAjuNRAZMo3>9eJjtr zL$9{1*eu&Y^{ukZvDIzQV%p|uvgOZ=Bf7iZILA!%6>dKjtk?*MPfFu_vK!{$_cdl1 ziRDSoa4}y)EEP1YjTJ}G>1CYWF=fE#oc5@I`HHsyn#zKCVSl{e<5nZo956EE=CE{J zbVe>MyOYZTqY|8Y3Ua~nlbm|ga$W~cG7s{mEye-#??)_}7S7DMZE@s-w}NWG)Jfrm zW%>JoAeAI@NVixYKU$YZn^Iad=eXX7Cy~u(UrV(;J#kRpYJ$!J&ilQy*163`#!oAi zh+q!Y(TBoLZ{1o3jM?1M$(Qx|)Z*jHTzuZ=(z&~T7!>(RWcSDT)rmY%mk?q2KU(XS z7NUBfOHB*6*L#8FpL1BZtX;G79(bjbSdH6^w`^2zs3BaBylbkJCk}#8Z*gIaw@l~P z9ct~JqfFy=K^2g?w23ZZQGj_q)nIs`qLE6BZR=W2l-|f`9WB0!*aVZ$Y<8=*x z^c9S<`Bc(#UWG+Qa^=3hU)6}C*W`csY+iL5ALy^UMP@H$lmYpqUeO11-)!BBYOwN?N+_4Th$@CWR1 z;?EI;dz)plfbv>H+Px=D{g(V8;AdC(m#)PlCnhCuGwoefCCx3&-CA%~zP*;O@IH9a zyghNMxcd|@CJzAhKnlN5GCw-+bbk$6X%?z=$;4S1+0zxZ@oVCakEP6X--MR2MQDR- zPmGrOSC4AGD!Q8GzS!*SPf~sBl5wv$%MBNO-~0nP^Gecc%ket>e^|D-xMb52geWjG z#!t0dxAE*+UW?^E1MSD*TpRePBwrxO=~;I=;h%YC`HgRfr&65M*J~Qfm8Ht{DC=6K z#pbsx$VgUfiqg}y%cB`qknk#$aCxXpgVa>fFP3mKn(Uj4Rs6+(7UcKsU9_hNXtf%P>SxDj>;o}5tGacwB)qOc_NfGdBmfSc)o#%3!98lKRdy1G zF{`J?v=8OjS99>^O}5nUR9tO5^fl+g@FI+3KA_g8gY~)W^<|i^{;_^3#O%%a!7~=71T*4pQI)t5#$Q-ZwmZLmK`-!q&WZ%ywsYn#7CAQ zRsR55{Wl8eQi4?Ck@{vDG@%8`l07e5@yu|>!W;pPFgw=|;$Mg&+8G_+2L~M2C3E8U zoe3^^@0#HLB>30t&@vt3qGsuY~tJ*rZT8ZxURnfU4PCG~rkiaB$VdK&WEW#1-9 z8=Jpe)SBj|+NPlLNKab3;kyHMcNoVRuZYCfmLhJW-Jg)-YEL)DHy-*Pm+(`=s%~R@ zg;U7K74#mPGuz|A{by^`wSg*mD*>E`XebNW}wV)F`>=OqK?F}bB# z$-*x~p14=Mn3m@zr_;PVZsf)=dJJ@~j@!eaFf1!h!%dFO_c$KhR|BTwchvDEF6A8? z!V0RQLCEKt-?Z@LXrnw1wF~NqnGo=Ein*uWnOpaV7&zoti(XT88k9_}&KDY5q5aSU zwrZQewrpBMoOi1_zPgr5b}-#sj-}!Tx{&4e{d?CtZcfo!kC7UBzPx2!w&x^PG}o&N zmX*F?+OzL<$nAQNJ+oPfJpLfM%v+W$^z{|phr#mu)i)DnoR?GhhGB1D2?X+SUX}3I z;cCSi$#SF~GI3cS40IcK8GPUg{{U*e)57|EQ&}q8D99D<(ZSB5_M5)PEn1e)t)^(P zSwg80$pfu3P}8uiKdO`B1CqU~$IRQMYi`XVX||-WrcZcH|L&b6$sQC>Q2J?bF(~CbVhE zIKUp=D|bThxPmX8c7euf)!vekukO?UJJw%Osfx7Qv8t%8vBq9oTx|Woa-+~zJ@$`q z-#3=ycTv!0D9H07I;R@Y{0ffW+RMO)#ZF3@sLxEOMH)K36)D14tU7$ zq_lXSY>R{Z>sL;<7zFhuwzap|l?phl=roDcff^If74!MlSz9cu=+yhp98D*O zsNpV!i4;aS|o7NMIg=@vBQ}dW`k!QrlUE0~qc2R-Lw%TkfGJ(z^1=N>gnbb6CT;wIO)m8m`a~ zInHaW9vgW_%BQdCOq;^(0VS6|O8Y!KCpg%*G`gJ3HfBS|<5PW?VZjx$`d^a2FaTro zs@E`W^(1lhu9;GF<917_rOe5O&fMdrQ@L!eLF1+><;+KUBp<-lX<^ROS%c~Rr&YW1!5$O|?zip{qF0EvdK6nw`u?oq}27$~jT(4}OO z7fSGo-=TSdE7q&({vB&qApjWZ>5BA?D@}?UGyo2qf!?wFSEnLpZU#r?Ur$P%Ia5!m z>qiX*Pnn){mSmCu=iZ<8KlXU{6{$UmjoX5MttZ*?dJm;}^Rj0Pwamc@R`e#ML_7|h zdUUIjSq$coTNODR_8io1T75|4=1{wK92S1}k&6O8ocg1H$7 zk^Xt9cHkfBN+J14!Te1Ch=AR}Jo;jq$&8U!JfpXspi_LWsLyXon}v#unIAVy`cqmC zPBITlz2t@Jzu`_>Us_ix#$=X<2Z52#twi>$pECN^(SRcSzx{DgwYbiDbJCwMoNPrO4_(THVvG*^~$TO=}tQktkbJt?>HiImb-bL2D0~;GV;! za#{`P+*g(KHP&dL$fr5y*R^P;smmv2V^EZMLc@|r1bSBq;+Wbm5yR!KMo42_uAdu4 zt4E%V@|^TPTF%w=%3~**u4wzpJ0=yWsxx%g zL&SVTYqBCa{Cn3Qc^PLVGoNbuCsOz*`sDFL1ZN7rIV0}ZCGjiaEuVq(hk2Pi&ci+H zo->TzjF?j9S6dz@FzR}LT7kIrKc!x}j0bI?k)Fn=%7py_#Cn>jiS40VaVH8X-S`zNS`-n%ag>)L*eY8`fYgQhFX=hT`;!ELAp05x|=xRU-~ zD$EyU8O45GLX}Q?-Rcvam5*0X6iwnuGBP6rBRw(gT8ZKh?CmLud<<6^qUv&K5Jd(0 zg?CKS_=8%;p4)N2#d_GPsuEGZW0FbC<$fmIf5Jy{;#qP%`eK&ojW59#?;8?gUz7vX z;8!Q&ZFe^k6g@M}YhU6$_x4xAt3d6rkfd>*!;UK)YEzXOYpXhGzrdpRi{cv>c-14h zAbFr3dhmXoYl_hR65sf<;tJ_jX)0T85=zRaDun&j^)8@Nb4<&@{9{ z#(SyTe5yxZWBwIS;r{@G=kcDf*Y2+*R;O%vUywKTBE1(w@Ljf-Ad>z=aLft7;}zAH zQJrtzTUYoaI`xy2BhqvhyV~+vBx=O`>^b}@4SPp}PP37dGCOCe9erzh{{X}>SXmJ4 zvBeO`Oy>Ysk9d#cCBMWg+nBT`F<9HPMduzo)*W{HcFlY7<-d)8*J;sbXn48w!? z8u)Bv<(OinSuGpC`7gM2W~V12FSna%JkyQ;0I2t<=kW=U5J}Iesg6`+cQ-jyg*K{FfE0vY<kEyE67h{ zGIzwMe}7t&M?P+^Y`@->N9##&JjUa&>T1t}(;h0Z!f*ZZ^&M;Jruk{f`7tY=lktB^ zZDI`y#uiwb;y|09qUVg7_3s0CD$_@f%EM1$_V!V#d7S|xl7ACi7m2(-{{RUOkGwr@ zWD%@cosKeaqP;6Yw>poAEv)SKtY7P9J@$@(*URBCDxMmYW!CTJ+a`YsMc*w` zGverOY|XX91%8K`^l@}1@QQKj@BT&8N-;~R=yz9!LF_9&{fmYR^A_oWPrPp+ec}&q zdg^`_cw*C3l-_FcfGyi04|802C`zNWo`RRSxt_nP6O@e(KMqWThg+0Z6@nh zyz-y{V;q+}V!OYMx2vsqxQkD?2Gzw$;r$Xj4JlxWe|XgXMxXN z_2b~8@l`pPCGQzpj;_~?${VTYn$KlCR1Y~>8NE&_Xyy{9%lcQ>(t?CiLZ8IQ%y}mR zIQ6SmxNf~T;-V)Y=M^QR;Ny@xA6j#b(37!#I7bH*G<{5eZYye3l(!YS3$9%}hib7ZeJc)jAmjtV>z*rW;@F5lkaLW4SyvH( zp1^U6#-8)kp*$b6q!qei!TC5p@XQ@NSiL zdhBtOjO`zfO6s(yq)Z;&|fw{L02>koc^Is8s;+kZ z-#vmjc~tkRO8)?n-28w2wRLY1nIX5hduVc0MG?mzg?J#;^$!_pMoB#DnH{(TB-gIT z`#fp)H-BjHZNXa~w6*gG0!L6W?_6Kon0PK)3C>;iiZ@L`+9N&( ze$K~U+k5c_`Yk6i@c#hdwwSg*46I_*H3-H$;sF5tYvV+{t0)C{{V?CJ6_-L=V{|V z+Iz)*Dv`q8wVWq7NRBp&^Q})>xYaI9x~;^w5);e2l50~{_-*1XD%`xfbh4-)dLz77 zAANTA(v-M~qHN%+0;i8^)}1L-T0K0D$nr&di|#dA=?q7l6Z+RNtxdXO2d-*q^*nHL zaynLJ%>HYVPg?DvOOWQQ`Lr1KJJ66%Kcz(-&SV28JOU|`z7+e@w1|Gye4umF-n+R{ zO|lepIy*ZiHreb3YK`QEKlOR~`d2{FEvB4F;A63_dUR`oe4s~s*PTXu@@?!?<7Hx& z8sby$&T93gqC^2wwk4L?>$NIAwoTI5?*WnW>_iW6S)$8q)IiD4YJ2+6_oBh#(Ce9%S~ zHz(Gu!Q)n)fOg5REKd?7VGsMPeDITzOgZxOZK;|Sj))6%rH4;F3H{z5a;n&5RS!>C`gIp|G$^>K2qPB4En=rero zQo||{-Hf(RGX&!&^{%hNtM+G%fsMwwy*2|RiW@wBwbJS1WMK5{J*yfk_lcgL0_3X^ zQ|mPri1m*Q+=-%%Q-VehrFA6?(FGYiSC?siFHJHS_mFTfGJ01_p!n`P!UB+Yd)AqT zDk?m!kBKqSrzt42cJE2c9x}($q_fZ@E%GV!;;(6Nwd5Xbr{(SKQ0m?_x6ooCih?-z zHS^Jo6T4PN=JTt}+qo?EYhxZs86Ays-X!rLfwtSXIqh3Iebvv4foN9<+yZ-wr{W&~ zeU{X;ihRTRRX944b4x@*sGhwHJwH-=o17f;-?6RPwWZVS!OzX_{VN*M#Wa{1r8yvV z^sKwxQLg7C=VkV|}q+^Ww*E_3g`y?w7EXI>r);zS?7cO|I z{0-n+pA_mT<|}P%Wa74?g^e3^Vs6BK8t}#Ei!T8R%(>>hLrM5tbh{j~5>#ZISFQXY z_!Sj~nyk^TNb8E}yh-3#?d=L83}f=Hn>tGEYxx}f?pm|u`8A2O4-hJ@@fbgad&k1B z7{zyI8I*#|GIDFoJ|%cSL3GR)p*5Z04;Q|VaIrhE3UP|lEX*Dfzb##v&sLjW@;;f8 zNaj$=K?aDeqjE{X$2^+hw2v7Jn^pOaNbgf07wiO=BOdkj)1ywJ=CRJC)3BcsHD9w@ zx~qNBn(;ke<)^u3$tOMQxcGtMLwt+_WLKZuk`G?Jb6=R}HDgy9B^{QBY$K+l3l`*d z^{9#7-t^+!jQ0I1Cvei_cdtGu)gs-uz6WZyx8+x8Jdb*#2LKkQvt*q0tfdtvsL3uR zX$L1bs>W^;`1zY!i`PcziO7b!V{kx<<8(E&{XXlj~jAf&54<93u{Waa^9Fg2E(K z;10gVw!R))4Np-~HbUfAE-CZD%-KVk*&fHHYd>s-6?z^sTAyY&P#uf%j=8FcbnOdH zhzC}X4E3ySW8&0Waxz;W^!iecC+fVgzcimksd$VtqS9=Bx35Xz%$UwPf!ea|zA4;E zKbLSBf%UFeSnZxfPAC9c6t}b!L9(g zAaF1{``3#{9U9fwwp}#rc4hcFSG{e2Bbf1j!*ijtNd|D7`&T|M_90m^GwEHoj=Xan z)Fv3CXJ_hh(zqEk$)~A;O444o8%bgtXW}IaCw>Y_4MXPwpJm((ue%=h601w;kl~|HSIjTF1k_;SHjg0GRr|Fu`Ek&!1 zE3Hx~Z!aWpW_~8x2x@oNeT1-`1=fT!K$bQ_|VC zmPKL->IW6EqG+bp_-|ZPa$Ef5kbQo&r45r@Fjy6t&t)8%?fwn?5!5~-_{QGKOIg+y zAh9TVR@5j|#LhJ7tG4VCl7Z(VOqbK5zuq0Ts06O>Smc{Jmt+UVayqI9KAUG4p7dB@rI z{pvo=yn=fg&|6d6KS54gZ^FJ(;znqIhU9)U^?;!HK_mS1tsk-RoO9cbl!Div)caK2 zt<3g|BLkm&Q#_6MtMXgzKb}u|YTM+T43kC0Vu#te!BNLbyQjo=fOC<>PYs4!=Hrj9 zYVEF+RP?Q5W+$rD(9kWn&+-i9SD^TFP7NCF?fTar;oCxzs4LERuR_tb+uQDP08yOQ zmq!&?*_FISvq!V@zEI?ip7nCm!^(6e)HMc0k<{Ty=O(!?66+7*FA^fi;yYVok^a}c zaX%LRKdpuAc2+a~?%#|rLTf1IOAAw(N0~3_o{m>IP@Ah!>9@?-@%E0-t=UU;F6E9u zPdsDNy|>}t!)4WUNameDSrl`QqP}_fJtf!04P@MFa)_+0hVhfuy@$s?w8f`@ygar# zBPnEEqa8`bZ<^+`oMXurxslD8;wj>5ds=!UbH|oe9t^X1?96R&MSQ{WL&MT|%T<;2 zS;>t_!UKRP@mI&KPg9y}i*-dy+0bYe|aU#v)stiF+EAxX}u8(aQ^@+ zccv4Z|sl1TkK(-`x?;)d=`u1HuMRIxsK3v?`JjAyM} z(_r(Y3ywQgC|_|IJxy%Bg9?%0uK2AqoD)$4NJ{j{6;eR1iH4hC4ROB4z{F?O`GzC=qpb^s|v9-+wQYQIw zM;uU^2OSSBz0$S=xP1*|UE29s;j6sWG{On_cpkkgm)C84wrp}fl-m`WF&C0}KjTs= z?LFznJ)`8u*A$3{spHy`cMB4!+t>Ni!vo5bQIAi^Q_v83t3b!Af3kj*;U^~t^QL60 z;NXK!KX`se)YTG8)1E2o*VJe8sMoI*GJ(fqp1rG0h17b+JA==yOuKfEF>-1loSgjy zPOFiX2k_>Tb{f!a)NL$_tH&2dNkp@%)@{ZYWYT5XC;W%{NLQDJgMMxB^ zY}^3kcl&mo`3H_^6iaWAr zX-*|_I{W(pUgx9gHu@fu1+BS6hSdPv-*g;x_cZYk`m|eG~EF&i?>2XNb^uKS5aDHTapw+3eYpHT#i_mS#L; zk6&u&yaj7#@TCcHN_s9kvGlGe!|P5o6!h1j-Rbsr znihu+oumYc3v}9D1{u$C$GJ6u;x7|7fIj^UD zOEi8N@Ppkk0EqbY&3yHscsBFmzr+BroIx2cF+KV9u6%7-;$<2S*554+AyvvQ`Xp7- z?Cvk3mMb0`8NoQnu76q7Ucz^Z_%v*XX#{jN>3%rT7s4JswOAA+aqZ9HUbT0ncqhd^ z97%jpX>RlRc$L%ubC2gGP;wX_)7aL^r54hQP5Pmz$)g3XiZSD@MKr~M z$5ZLrrIkZD01AMR4m#uYuBfC#(1ua8WRiVqtcpQAA6mNjVa7UDd5Wjr=iax24T{mm zW|dMQxtQPpGoNbpYe-`FIpAlS=@(I1u`gj+{sQpDw}SM+;y)Om7#Xv-am%0Y z5nPvv_03b_ZnrG9&`)wn;Ufg?9k{G2#p7k{m%_LI03q7%O^h8^QkPe}d9I0K$2m23 z!oLpnA0J+rw0M3+`|^->ueN<_zxaFmJV|!(-26hASlfN?B%hp*QhN&Mz94*f(0&iWe*!K1FwK`@y z@e+&EZg@fcYa?0LTGvh%tb@u{-rVv}rFduU7x6+}e&QW6CITo=n=l80-G|^S<#Kuz z@ztqCFL7V)9HN|c>Tnvyu`aKu++AL_>1UA0%-zX3q|p39CXIZP+P2aUKJ|?y;C${p zbR2c1Tfm3rrTtwv^0lEiZQS}};U>9lC<0$%5!{x zLm9#j;E8I{DwRi}^!4Mo+zW+UJR_tv5%17nuEya4VXJSksKs z$rtXWZmN1$tCpuqE%N-yS4`wD5XC81>J3kAf(9{7)K~2{u44JO9FBU_Nh3ttTwwYd z`bak7Rdw%NvhDB15V07?UbMwv!{zJKGzKc%p0w;@-Hm%z+^RA&)0({*^&HkEjp0*< zImhc-V&F1-z4@*xw3=p-nj3VXf#aTrsWw_&v5b+&PAf{*#jlUe@~%fXq`dO9*DD?* zVlmgJy=JPYzE!Il?quG;w(45wf_=JXu&%XSNX8$O4{o(U!i}q@9bCL@7Y_zF>0R>XSco9nK#JN5O#OKu9?)OhF<&E zw_o@KR;Z{e%YNNY1O1dg;F)sxsN3q_7q>$LVTHCjkM^_HzSPm*;iv4^p`0degK>fCSL*n~~4|gy|JrI#zHoh_N z&YBFDb3NRdyk?sUsj*wZyGU%k%`so{xjA5P>j}*&oj3< zB<8tWzXAB0#8VydtVmCOw8j0T4YFfRvj{r$>rl)4L24Jx^2fLF~ zlfO&4gdh3m9!KX}4f{)L`c9l?GAx@1-6Mluv->XmK=D_{e+TON^XV4xX!=~AW?AHq z{yt_LvY_r4p+3BJHNFc4B^M=!O)j_p0EY!HXRC_0spZz+3N_CUd?D0)WAPU2QLzmZ z4KB|mT29_hA%36SDoD zbo9OPABx%10h1q`2lB3`O8u<-74ZuE=+{4Ix&&-4-~vx#3F}<+s^Te6-hA=zYZ-fa zzlYz7>uY{JPtJnJEQcYxgIgXDv@%@e@!KN4;qeFTUEx27TCCTaSc7c9un3Ev%e{GD zjelkxH{s0E2^7MJc#ts*_=D2A=ZKAXHBR^RHicMEMY-fxkcW*_0CGB0Eqp#7oCA(e z6?a-#EH$=*&DGHdQ2W1Hzi3gDEsi@H*A0VQgPiZVi+!R9N6ftU_pWbPhstBnXT5g1 z&Z8Pca#RoHUVGw=X+^;a_)~aQ2Cca>)`gN+} zCU@_Q=NaO)tu#5c8Jt_?ij3pdsXepX-4&1!RPsG5(Tvu}nO#QgTYV{}esT$`wz^TW z%P{1M*YF;cb(`F646y>u#V3oeVuIpGp&)sD99J}}$<*X7o8|Y;e^t~NCILC^+Ork* zk~*4Y#Lag;aLjXoj%avZ85B;er?5O%qX=70rBRJcbySh7qu`KQx9!6`VU!#Lkyzdu zvTMme1B&l$^d*YOd4rHXxT&p*h7oz6r99na_)lX?c8)7qyOm|?aoA?8cz?vwX?F@n zNLpVLK(R}N{cA1;zz3=9J!^}ZVj;}Y`QA4ZJY7dQ9=W6ZX%_l;M_e3qtjMnB_=DmF z5$DKO`HgUvN@s96>(4ybqWBu_9UKKf2Tp4~M^UJ^qCEN1<=ppQ16W!3e?>%W0*W$! zt#e-yJY#H2M`%NB;PcILn!m(yw#ExrCp}N4ayRRQ3OVgVt3m6vyUpOOF>n}9v)8>`@pwlGUDBDx=kpAW8eDU$l}2}L;>^sYKsdpj*; z%TiZKm%bkSCmP91jck46k)DFSg!pUl*G)@B78@1Qk?-wX*M_WZ9@TBxl^hHa(yZzq zYw%Njr%0Q6jz|sKxt2fJ*5yk@)b=Z2srxT=U7n|+`2HUa-5Wcgs)vA0PvS2T!E*s< z*bqksyhl*@oezjqNj@W;efrjpo8yr+xQa;wW4(HEbgJr^^ZboAPviSI@6t_+%L?(W zYSFaKPkM3lSFY-spq3I_ki)HcmyINd$Vy<6Yl|I)yg8Ra^s&)+OJ6cuD9=tgtu04W zWd!H1>0CF2H2@q8kTZerU0wU;(<3L3TJ>_wY^q@#Wc5cRp=lZS_djY3t;sxAJ@5o{ z>-y5mss@;-AmX5!?{;!YuYj7As>)L8&eXI;c^_%u{VFZ_lO&P{=}9!Zxu(UvnY+WbzsHF;^c9=EM{=|!)XVxX{Gan`)!#5a1A&e9+t zw*!jkQ&NTq@&IB-UbPgL#`|u>Tn}!Q^VoUPH_6D<{F4irLPp%Z`6K^gAgd)iMVpjI)aKuD2*x^Mq46ZpXx79&(A_?@)HTS_?TIJ12DlAYDLhlI5g|TMIT-Y*%&}0R z6=m-+Mov<@+{KhlsJ{FVopOCDEC|_i!RcL%=A8|tsEQTG88wBdXn6)fkf3KdubPro zTXB{9oinHIm93=7{{RZ#(Blk2?t9lW8;BpN-JX@u=yw<+AO5Q9%IJGa+{YB|v^$*v z!eh`5wba=-c)|7kYmCw^Z~$YDd9AB$P(+zy)1ONHO9L3fDCC}+9UPK~Q|CAx>kC@c zkwXSyo=B=XkBH9F0plGFa@x+kWG8bRj6FJWwwekF# z*zC2DWiYuXzv)^UW|1ZQM5>%0(x~`a!cBJVRaEUf*R5#&7KcsK1KcPZMtSY^uTL+_ z{;@YH?2eo@4{r3>;m3y8O|>%5fZn;PmKV!!D>nq^)~EQ3;x&l0P_`G)R~rVh#k!n& z=C;LDbn0@!Xo#y78CoZF+PIhRKkHTH)R*{9?$ypgsh3P4-H}t05iS5UBZ%`M`*8~L*(xPcxF!)c%sh6F~rUTeJktR zuZ5lu@P~!%wEN9HWSyc6@3T4LwY8su-U`z7__c2c`B2FZW#jOr@dk-Mi}eI+0tzaq zvre+O`kGPhM`5sPltd#ilcbJW4%+^Ronv^?*_IyZy-JK|QD>8iy~${je(dRK%# zC|G!Y@ut!A>v&(FAajbs@dv){qiY7% zWGL7jcr};%O?bi^{{V-+RNynR;Ch<*ZZN<`mRDW$w_fL;h{DQ*W!U*x+NkI$%Wt=n z*S2cXr#xUDl;wnTd~1=yA=}H1A)|jw8yp>;Bk&CL2basM+TqvP{e{ecc^T% z`WW(AK48@U2Zg!ykEbRc)Wk zJa+4f+tS%xf{wLOsboZve@)XuF6QIjqw#l*An^8>=6MH91qP}3mtAW}KF_8pl43dz zaaFu4@Q!a2N-n%q?ogbpb&X6!r!Qwu=KCC#Z}6?pCD(j!uXvA8k`E2XDv1sT;O!# ztzn~1o8@|(^0g@Mc6l#{ej?mx8WUP*u2*&j0Oq>y1$;cc@r)+-Tw>~@cg@fW#qck~ z7QdPVRAb1={^+k|)TNKX{u28Iy9J&^+s9QD^6UjnWR+UGEs&eNmqX`YicvvfsJ*p_ z4Y2Jb9zF41e|rg1z;I1>{x{Q<>arNvyAzi5u1@~|N;%!qy}78uT&exXO*=*@9JS}l zDwMo*80S3J-Ts$?ax!~jvo7tvPCM17bUvjgIph#?$2A)`>N<*agJ5DZ2YQK#9ZBGK zt4JFZK1U!^mG?FWN`*-z;~*b;RDYKzBM0)SC9>R7VYv16uAjop9#N7x>(5H%7m#-K z>s=p(q{IBjlis3QB4?@TejK$EZ6}=9py)P$LZblSW8Szw2sqfMk_~zug5w|_)r6~S zxhh7QY2e564l5hPR>CzPbDHT@)W`Dw0F7aIiL%_$8rNp7S4RV_z!i=MYT`Ub!JU8t zyPp)?h*9y3*8!})=@{^N=C@N!mhYjO6C<}hs4-=R1xSg%J$XEP)X_nnxH#)qaCa*R z`(vKiq-gVujMe6}1x7K&Bin^gF;t`uBy&T&rIXev{EIm zqY*dI?r{-1U4p{pE>sV&?^IK0k;5<-9eo#l=uTc0ef2S^*uX^^WGG{(u#t*J(<@2dh z4wctB{=Wj86y%Ol+rgeB@ole_r&zU(n>N7L3=oh%k8e};tMGgyy72X^nOOFwS>$H> z=hnTJVPp0H*Ae6I9a_t$%cp3-Zj@oj%W1FBY?X zmOF&=WyF4bhiZZC=qsD?%nhdL@J$rnbI!+n!Lkl9!1k{`cz24IwC~sSUSElIIdJJC zd&7SbS47qx`a4*!?-S;X$k|9vdV$>k04m1ur;Bw@9P6KK@ipAiV3Mhyk}>SHjo>7g zUe%|9+zpYal0)3{fGcChmj3|Q_EGbLA^iZZ=+JZ`;}gwt=atS|K=8=%Ka8Qa1O%2q z8NCp4Yw6Dc=)c&ySaLR^@$8^>uO;{a;n*&94M$PbKq~?W6C=6g!YRkJ~H zadMmGlcpc*Tz!_GAB625<5HA0?4#yALWA14{{R{L80Nf+c*^xEKV<#q zyt{cLPiGryXna!F<=1>t_b%Bl)1EO@ZhUbbm8Ps$Gq&t>&q~I%ylc4gI~f>vC!Up0 z#Tr~*O3x&q$aqvA*0zowH5_4C-S_UtdooRD;yu=&o?W95I%c`si^;B>n}=sU=AN)^ z9CfEWY7^$iPH-#MrAnO*Ac=D3D;tIf13%Q%Q%*=A5GrP1TL9E^DClvLE2UcGElqy_ zct%ecYAp$qXhHasU9X1z55eJ?=GFco?T*gbiMNA4HNy_%dQyA}@Pzgg{{U?2@_mxa zJ7V4Ur*HO0rFB0PB8yYLitk*wWwN&$+A@CrJAEsY6JM4xaei8VTZ5?o0ETcH-KMee zuf)bJIwy+KE;2?Vi3dvTbdM6~e*^U4VWMrm)uiCzLHWH&?OYd({ybbI3i(sxDj2+Fc47nuVnOwSE*G44HRKnb8nf1XO?y760NCFm0&)j6=H#=ES4mDz>95o&$}PCxLxK2t@PgyT z-XEJ$y_3m}RG5_Ye0Q!;>9QuOV8LRqvp&4_ucLGuD{E^{DSvZk8jwKjwZK|QZ@dgw>kN-#d!7c({-DDB5NAqkJE68HF3NUvLY4CXCO;MJxRdMNzQug%{ zw4tekj9#&3MxUYGYBB+4jCtyMS66M}2=r)@OYGI-2CP-wbO0 zHN9J32-#fU+(_8ONL%wgtKNPP{4=rC_1N@(h?D)A(i}YM58n2#V%GlvXm0_2&l*?R zeirFgaXdpGX_ZFf?kg+>YIM1sOZ?aheLKNViaaqeQpz13pIeO@2 zNu_ld>D`(C03Cd4E&M|Ie}`{{!ds29$iKwh@m^r%tQinLNj&UY+ZHrR_X>&IGDmo3dLvqvl$ZoMhHKJIV{^r7nA%Ds_l z4#NVigfT9E9xAPrOpTIGG1jh=j0fr0rE|}F6LQ^@dx1Cvk;k{=TDC}J+C6ysR(+7l zamO6io}K`Z62k+j_Vuqiw60p#$93?R;C`$7KzP$l@V|w;#FqWX+AdUQ>`-Utl;@5I z1J#J_n)|2Xz3+y9WzT{C0NB1CShU>-!nR}-Lx!2aTkRI~w$H7&;SIan)>ZR-N}g z;`lM~8&}u$kL=x3Sy-cG{o8KAVeMG|02e$@;%^6dqGi9-E@rX=1fjE zV@*brypn&1%;NR06iMP%X1So_j5=4d_$&6h@aM$s6j^xHBX2P=nK8I${jUE2jd^d1e`QN;H(Zbu zGg`6}w{}K*SCjlk@WfvZ(A!wAmd@PZ{p#$2VWYUQBR_-M&oj*VQllkq=S(oiL}{lJV5yS(xAsCAzk zU2D;n)f~AT?mcV1GUbl0?B!JA)tk9CyW-X{uwrrf=DC)hO-5q!Wru2ld#1aeX*_2+ z6|JLLXV7D{Ouu%yrMZGvc0>eg1d zt*q=vB&H~Ww_2lecaze!wJkNJ>A*j&WZc@kSv^3ksL4xIXDLXV!MyB*mF<>tRk z+rTzo@R%lIap~5rY9KYq zBmzw~Hrl7LuWFyW1d->pcd0ZiVqg~>S3#p+I-mgi=hC_O7>s1%v~6YixI24R6>rd5 zZq12r01`p%zI@TK57we-h&Ua6>L~L34h>qjv;E*RbR5?zk1O*tm%Ma;4tyvzeMMxw z^#lW7M)*_1Hnw^Pl$!%%zANVaFUDiT%%(C9I#*ewd~t7;S;!ddYqtfArAJ9EUsIlX zO6zmE)jTDA2Bjp{ZgvyXHB$21QMgYoa^*){`c)f$i|FZzCL_7YtiKR^cZStSfQc9k z40BaHrv+7W-rqBLV=65TEoVcqiqkg^k;~g0WY;cyQyz(RgE3+3c&=+y@h#_!?pjHh z+rm#6IL%VLu#P^myZugU%CCcsJGi|+6G>ttS9t1rzKP>&ePZ9sX#j5C)s5o64^1MO z?AW^h0G^e_>2N)`-4hibTI>8j;#pxq73a?%O!{WLiPfu3@~K`VS`*!BXZT$n3;nYL z!NC>S>Q~Dhi3bA%uS%lYB3xaGth%0REo?g5vbiAR7_Q8|ys1W{t)a;{`^PNz`MYnM zjPPo2wT45qn#!FFR}Jb(sSVKy)P6O=DrxGCQ?jvUNwVByjpwmb2yfIU=uH zT?A3M^goqM;bbE7wiFY`tyG>+r0x7^CDc@|Gx&PdW^Xb6UjFqErqDy_~lf@_YkyB7{ToP`y+V)38`Q=eXIEKM6|zT(uat&7IT&77Fe1EnLvHk@OQ zwCVLo!v5{L{uNE{7261MewEJ^C%G)Gu30D9nBZr&M_SF$$Jwqhqvh{gy6%~EXKaS< z7mZ{YQp2y(v-CYbGaU5wHRw>T=u>w$r9Mr~TU@+=$<7A?wlw=WCi|n0VZ}E=(i>2{ zNUhYfF~9(IuIEYcy4grY{?JtX!`{4#ywmtmjJ4Fu(zM52zF0Z+uR`$bA7r%+C*Jop zikhXBivXY&QTbIJd*Vbkw(aC&BcKPRYlEd4cb7W3mm`}-=Zp36JO(I9EDvhS(_8G3 zZftHf!Ht04ah9?z2c^%Q@rmxi1ywqMxl3~gIS*luz zxx9>n@`2OZv~KS0wA*gX!}G2~#6C2hC2;}}4t}+*Ji1h1xt{$DppceYzS zb6dIv=JXjnSD&V{E#1cJmL|Fl8&WYSEBFy!h7r6SMC5Zy($yo=G|T0{!L12(Oefd1 zaT;c~wQ$Xk!mpipFyXp&ud9Y_2*$~oIQKR6EkhuXYns(>H}yC@sJ_+-9dZv9k#l%u z>(JMWjLy`XQ6*C=YEm&LoK|CQW6f+sqR**w2t4vQ>rKA!^wt<_h2z{;k2zGRomnSi zRVA@T5<>ME?NVCk@2T7>@&;*IJRE>|u8+gYuqrbQan_a^pSGG^4R_G&ejRvH8#Pv$ zK)@NutA7$aTNS;hkz~LV!64Q={w)@E1V(Z4;B(Ts8{78QE(^bJJ6WEe`!BVYo#GXfQn@y)SPc5t)A9H&@5R%k zo*9?U8OspeMSNqW+q7j`HYvBb;=O0#$L%|={5I3R&tc`x0K&AKkzclOXBSY&FzX9e zo{OsePge(tSXkSX`hQLMOD&=x)ZFL34_e-{@a)h!CYUj_jz@a=bN(AU#8-3fyb9Uu z4lAbc-|e||r?Q*7XJOw5HTHk&zFmq}l}kS~Ydl)5tiL1d4-8rP7D_dQ^E+mYWeEp{t65vuqhRjmOLDcRlO_z3JkW|TSk`iB#b!jGhTG~pAF8X zPQIoz>PnkZQY^p2OPw>s>tQsZlr{;^HRnIIrimts)=>GGjFZP>=~!Mb{i&~}@f@0* z*8vnB6dYC_xAC^y;{uVWK3IC5hP`}!NpW5dcqKbctFJTYCq||+nu>is^NLu1zBwPI zO%x@M10DI|uHNZ}*5e9yDdaGujvR5=*Yo~63s(VNczVjxi?cje7a2IqasdZCj@0#w z&}TobS@MBDHVs6P7h=tm$pWyaMpYvzEs)Y9csV%0^f;>WTAUrVq_N=b9MIOgiQ}Jo z#VfIx&2Gx$gN*S>KD2b?2^q}HZ~*OET9Er39X@l=W35oL(!8fK-F(u&Joc>WDM|9g z&QF^}ZTLzU)daU-JkR%u=M~!NnwrN6+rs04Tt=9xQ0zItp;VZ`9XoSf*TwG+jYm$37>4O&Py&IR4_fDb8YEZR$J_5P0yc7c z*I};smK*6wv&4=%HG4UHDb{Vt+9#D>qe|;roI2?+cn3(v1Khgjk6Ph%*>3e$l6#hA zE-~x{dOokEokX;kd10L3`qwM3*oE8_U<%U{jf=H9Iz<~&i+=QvDAu%0GcgA}PpPh3 zSkpqGBfoEI^nH5Q=WU?l9mR1TCd6*aamT%J#-lo->~OlA9FVxry<=WQjO2Ipu7gp^ zw^7ffV&07O8T9783Q{!aV%0cNA#`#01V}E$9!kfu^^1|!Tf8d@a2|5lX_KR!J-4z=*La5d^i$=jyCr$f|vY^5H0Zs%93$S>`7 z+A{el*etzY+NbcJ%EW!#w$b&j8^gXh`+J*dRictU3~Vq#uA@zqsSPtSBAwlFlUO*% zD_p5+zZQA)=(@EOCaiV0Qn%U+EhvdomTcvS^j}Y{VtA8SOB*2;o;PK;GswlAkJQ&O z;(r&#VRWjJ7I_;72RN;*4@)}SBI8hyH$&}Q&N!@Oqf)Gzhi#YL*XDZFxiE22hx`_D zx~GQQ#1n_PQM8<&mxEM%OJgz9*4D_6DkGhk{w!jX+oh^44e^sZ|4jglE01G^`l z_3q*8LNkpu8>ROgv9IlY*(;)7+4sY2b!}bbU-@SkKF21i{B4l`0K!{mr`ay|5refy zR%5`eFMxh9v9$4x?Y-=&3u+253CGN*r{!5zdZPHVhb<5pmbNF@z2GOP3?arjk#5KI*laITb^s)Z=EqcUV-6p!gpI=qmx zC?pQ2(ywT`Y?}6_utC5)mOsD;TGQ4GYgf={9tVN0om&o3a$UX8rFE*Gyj0?@_kKu9 zCnjWfljO-Kj1F>Z)IJ$}5t3_l)_i)tMUoBiK<5oFx%3sMr}#(1zq9U;HBX6G5Z>!$ zcSmZZ6@>bGn(?oUKeYCx0YIGs@UkdPN6-zgq_f+$51iSzJ9p87njmJhb-<-*P8aS ziL7+Jt6vIB=Jy1y`Iq(F_WuBcJ|aFL@bF898>3ufJl3a(OlqSGxrcvFE6e^9Ye!Dh z)*#qNI3m4bYgE-)V{lu4Ks%ZxyLB`DwlgQKMH(lx$tI}J+7S`eq*s4z2 zO*>z|@g;*_c!0m1He2TO?OFF<4xdiE`&$B4ae-5Khs3F4pvr|lbxr`|pzU8hi^ICH zQ0u1ViQI@UU zS{0j8P@|0Ex5YnYFK7I&#n~#2BNN3}4W;-#K#hl+ z!>eoYS;l{JZPy&-tI#|Fr}-9%vw#-1rFs}^^?H{!lswtfYgZB4*(yQC2kTfmLixI) znR;i6v9C^C?cn2qMvrboDPVmoz{J$-6n~p03XR?hjG^iy}QL8EAWTG4+PDpd?v8BRw=cvoDI$E zUSs2L+II8eR+;=F-@o}6HGhE~3h>^jn#)Uh559eM(@vru% z)2|=<7sA&I9ANEdPK{nK@yGV8)_y46JUV=`S?T#ZQBF4s^0%GZLnFJEZb{EM^{(kr zsa`gdviwMmEu7u#dQZd~JO2O@lJ}QV$!x3pwGHwL^DDR>-gZea8G2V~;ID}9X#lX+ z)n|eD4Bb+%c!R+(Ur6@=;5f>W-m#@u>Mz;Nd%X><&!Rl-IplW+o4=2o{zzJ7tN_VXj!#vE_3+Q&Y_PP12taT04_N1#ZTtsVl&X=rDHA2E!nvQ zcm7psKiNf;`|qjNJ8 zfB^S3-CO)T)HR)0TWHYBb32|AHP7ehE8M&T@Vdj`7Kqx9j7WbGTqyG7Box!*JxpqP z$VNaXrE_ERDwLzmHDg)ZYm_ukf%bk2_+*f3?If1ER%O00CQO%vWyv_e2rz)2oa37E zj}v%(?k;52bo&`}%{!&JloWYK_mxi|d$u!Or;ER7ndO~ytsZ#|jk&~eI}a~Dt?GN^ z6IwMvD%m30D7EPuNtsvHqjU8QL(Zz93Ujt^_)Lpw4$n{XnC40ZSBvTb7<$-(BYCQd>ed*`KRRVKMX zCTs~3bN~=Zs<)b0bu4j=R4_Yc} zKd@fA_D_w;Z10HXk1fxkuMoP`P1_$YgI<&S9Ql#_dea&Ws^&t7ZqU)o1hOD_)H zgf4zekQbhw)%ok=ZwOp2r9Po~ACi-~*p2sxJ^krrIC#^SwUX7@Bc}}sN*d|0=k03Q z%V!3)d^Ml6XBo#lRJWEJ6BszH?+AD{S#-a)ND9U{99Pssf$mQPfjX@#;R_gEZh#&^U9T^+4JffwpF@_$#J-6Z@nO0gOgSr zh*CiW(-zsM#sIC zS0|t4Ry12}_aUSm{z~;r8?u(A zy%)p-NV-(GIgO4w^sPS{6`M~NHhAgJ(!A#8@#mL0HPq=E*Po)8ZcgGC12qb2lqDC} z^9LL1b5{V#a7h`@>rh-LmY=*ouUfUJPA%mnK>!?9UG4dqHpU6}6*QBTyAPJzh%bW3 zcM-wrKfJh@QZ)r7Te;B8@==#(Ofv8~~&8GJ#hY$WVnT>4g(%fy$m z3m^=3;I2pUn$m*7yd&VTD=sc>{#8B3Yg54f60tV%HnQv-uxx*L`_~RH5ehW@PKYLz zmgZ%jg<-Mq^qQxMNCom^Ls=dV(GIPsJNVv<=Kj3~`xDRVn5*qlz@&gp(2d_Vgg?!$FxGaF+BfmFU6d?BC2vcKA{ z63Ax=WFLLKsy!=4)Vv9(MB3H7u|+QjBZ}$t9~DLa00~q!_U>9V`M~H0(v})@D|8B$>`R zIjvue{wY2t)9r1o<$ttB-!kWg9{&J^aS-3nrNCj+8w`H)j=zO+XA~(?#PVV1crCtr z-S_Bn6uFc2Y+hOzwrDT z4cIauBRJ2cYH9lFBwS_|8pmUMaB%&5lo{dNuZ- zZXhL31ZV49p0}obrOP%)ek+q3I967M<}s6RQ-Y4vwZOpXTJ~8%$>Bv@8W9d~53$Dv ztwW(0?U=SsYs0AA-zBv=Ar@!Fe!+=T^c8mBQXl|GsIGLMv!?9!=~?s7pW3ssD|GkGeu0=)!r^k*(P>?) z9B}5?=MApx0yB=Lv>|}`7*H?==Tz-(MC7PEpVGH1ZMVgP$I`x61x^d$I~1Q&681Ke zDi7yNX9tqJ^d0M3?!*^41N>?RMc6n4lJGBbH!ljMozr()-@*9}SgIQf$&%8DOl zd&xZ6e(3vv(IuIX<+uZ`YffmyXc0IAv8Yl|2hY+M~Xxv9dAJ69FrVdWA>8LrO$U}NO{a4U@Qbj#%(r>`W6xUpYT z&-_mzk8vFKuRPaWODh)X*Xdoqitl#s0Q42WYO^0Pz~Z)quFYw!ZgaYnMO^G1I(t?v z)FkBMx(niCZLB_>S|;mxGXV*0=TR{{Suq+DOk8#_G3OW3{u+ zD@stX(z%;2@1-7sri$A*=QyN>J>G{W9M#BUCr4e@=9<;7nMRd2?JwW{`RJZDSfzLHOP@Ir>=RZoBV#l|x1yp1vioQWSociXO zEwEw7J^q!Tu zw-3Z0h5jjz`x;AgV}AbtBY+ME`&{wIwG>wcEK8wiD5jr%PhJz93q}%YGe^K)F}+<+ z&haBbcXngjxnc;b^!Kgb80xd8l+6a<@~I&E(M5drF)3o9C)CEY9fTv0_~oK5p-p@t%Eby{W&vb6JI$vcl8wVmUupX}`= zg9E!6AP!DwqPcSEw^lI>G*s%O&m(8NeMRJin2CIYouzB4_+KlV*`ktR9mLEDV%YNl z^rDLTtbgw?)4xP}n5qz|Nw>N?%|!VTg-zH3y8i$Pd@hf~UJo-QP4>A^vO6EU>Bnj) zub#>1LcE%q=zO%~(z<6K6d!!Vf6i>Q-PifAMm1z#}QT2s^0d~ zQ%WgGw#{z`XcOx!+E;^^G>kESsIbIv4(g}5tNtwb#o_+|+5Z4SmreL^vEJ(vDHGne zEuUjW73yW!SXRWwjJ9g;yMBI0EBEH$_FvYg&K@@SfvNb{QfsYp=1HWGlgZ#$HG0iB zBRuz_iuWR@^+TD+fJwrw`~@Yn#JD5ANtNww~+h~|8!Pw>HHnoqUJ2uRog?rYa{ zJ#T9X3k;EtdFF~MhdG;-cKc{!Qcb%vTVL^!i%(m4{%7vT(z!e6rPOXfmoh61U=Apv zxTR84vtXAl#5yjP{v44l6sqrYDfT4yt$kMRD;VauobeFP9nYYmipr~XX1Th*)VS*- zfY78jTI0KGtLo8HRT;Yk_cb-G z=a+$u0Yw$_llRrxYebHB#y%iKW+A?w_2zo+re?Zwr>W+OE9$a}QBb(2Cmj(^7cIai z1k-L$Bb?Didg*E=^g1sL=}oIc<=QJrA?T_(C(^y!;1BFY{j}-gFO5=*4HgrCqYtnuU z==1zBowc77h+%a?BUe1Hzt)N?mjM-c_hYLk1fsf}pT~dN0{g_iWO{V6`6Qj#INe`5 zc!$P!dd2gut2BI;lsxw4iYu1^R#LQH)-;;6nGcv$@Nz2EjJ%AVJq;9BqcwCyw>9k878Trh z4$ZCR5;h2;itzE0ak4=tq1M8(>o?*JA|mYP2XAvT^jz3@ccm1)g%RRz`gcE>z;Cj_l@VEXFJ<7XnZDSn2P2hTZ z4|*uCTCBa58^qV0rjAR-pA~#L@Fz=qZ4b(mQX?gz`^??5pX*;gd_nlpsr*2>chqK- zBXPHON&1>7ua=<&h+fvFt-tEWWA`;hFNR+XwU3MbFt*V=32fJw*C#m65+%hiOd{WnDzPYoTWTW?TTuQK!j)7G6?T!U=x5D4Smt^>_SJLOybA__CV{t4X z`mp&_`jbT!(@Pa8CrKofQ`>jzuBT0Ep7N%WNiLmzP0bE;)Z^X)Dv^NMSqEf?WcuAOqvG<%tkJXZbRhAbzx^4bLh80prE zD~-}nZp>cROJ;ChF!(l)zD+ei&tYCo;%^PzXxA>Y#`p(u$MYgGCkJN-9#+wv6lTY_3%?lkHVwh3@%o{f!h?TU@DFi`|nYui4imWR5HA z@AxNg?DoxVdE*ZfL{c?eTkajbe-lL&%U(~|$@(I(50Z4N>jN|_RuUv1%&ly>1N;JO=or;`3(M1)>l;f-8adVAXwxhSqajiLC?_bk2NrR;)*NHpTD_lTOCH5po@6^Zrwnur%6>AAQD9s zSCv{SFGEUd`;Zm;F(D4-JWws9y4qc`1r%4Gh^s4DxT}!rc4ipP&@c&6Um zavi}q>@!6b%L%#Y!h0Pz#SK#4>&3P@Rjv$HN(+JOSM=Kftm_d+X5nIp0NLwB6~m3v zaliGcR3zk^ea`n=*3XChG-A`$0bz~golFxM%4_71x!e8j`BFj>of=QH@HDa@}lkU$^vncZIaSD#2q}7E+6}41r%L zcw5Ep-YN5x@QZK zpAO#3!_9FVY|a!OI-Jo(Wb(=qQl z(d3P%A4({$Jj%4OH2ti%=91I0b~L7wNS-U^Xz&U26&$ngKQ~t6nkcUy4~VG=Sum1F zlGffSvAV3ak{C%)IHHR8Fu%O0oQ)~FqnYs)&{-KtDCjyEqroYCK6J=F> zhnn8-t*-flbmKhtqKeCDM2Rb-ufEjU&rZNN$m80$jYnI==aZj)riv-zTdi8tdmu?D zoBj-jOZfp`o4t4Tx>uKMrMTlJiYuc9?o(|Tr_{jl2BIz5lyT{b&al2WG61+d(M568 z#?_5WCN{3l&%?eLmsHwzVNWOCyImu~F~J)7tLdI7qP?svRQE5jt~9u8{_2d=rt;M> z^59WLdQ|1hB^9yXg-e>oZN=Om5~W5zO3s&FjtL0fHiO1Z6jqqYdpNd^+)Pw0VvW|n z8xmB8KEku-@fHc%2Op&rSHos_%8}Uf+)~t%&%^GDIbf)DUO-(CEH%qzj2XAUkH*w$}!dAEzTm%h{l5wkHT81Iu_sqn8tk3`XwxE^$vEZxl% zSD%2Sy_2f-lQ|)~XJZ`T#xilw=S-U5Ao-6`(uym$WQtm|F85FeBO{F09pcOF>UJJ+ zk9sJpgheEhJio=)$~R=>ezn7DSJ@|N0GcSSh{Y))sTj9&Gq5aA;Z-DzH~;}f7232q zchFU_>PX1`bk?yr`7@Av(M4+)sRVM_5~L6hKaED3Q%NWa0sd4`R-|Vmdq=VI8C7w~ zuD3^rZUE;QqKeL^Llo|BT1&9xXMy=qcX&2q)0!x(t!8O04pYRM#^)=aT>Do#WirW= z->12viqa`0WlwvP+u^VispQq`c(Mm?T+u}mM(NzQ5{AHRar#ut7a4Jn$E_4pJspP^ zazuxmkScVCD}mFm)`}|8rH8G#Bj)^Qk^sY=Xri=C$(7`U?mQlSswTJR<@KV9+AN2# z^@xV#0iNfrJVZN|qKeia&;Qv_O9KQ7000000000X0H};|Y1tJ40NE7*02KfL0C#V4 zWG`)HWNBe9X>DO=Wi~EwZfA*5PDc$28VUda01Zhh z0Du5VL_t(|+O*ww{Iyq6@BJUX5DYB|sigOiUPve*NHw9^6%h42HXb`3dqn|z@A~Mm zcd&s5kfuT)1wukXnkl4^gc1m-U^#z1pX~R^ycYWo92LC&_`UYM?`vPzTC-+m&6@en z%+9a<+OPfePyh6bU;N_l`@Zk{{_p?(AN|oE{iR>}rQiSk-+$T5UiRu&zxwsBfBkD- z^O~2x{N=y*d%xFh-}#;2`Q=~!<)8IgpY_BiKJl!x&U(ya9`m@zJ?=9;<1;?zb3W%w zzT`{3=4-y@o4@&+zw5ict4F=y1uyvid#)G0@P$A4gFpBqKk_3#y1Dw?m*4X}-_xD_ z?SFsl$A0YRe(vXf`ImqBSAOMJe(@K7u^0W&5B*S2=zqWWd%yQZFM83B|M-vp{LlaV zum0+<{;$o|hyK~4y60QJ^;^H;8@}OdHdi0M{oB922ma(w{$$Vj|29|C@xUI{&Ch@S z^S}P6^akyTALpfB1)gxSJb%qv~Bfp@BuuhTTj1`A_}SPjy2B?y>!E zZ}Grx=)FJi13wToq8Nfi;oj0LzU|w-?OVR(TY5#~?2TXbRbTa$U-^~2w~_Z{H#D7o z+jANK!uHtS+cqUot#NPaXJ5Oy`oAdK2qH~l@Y0vQ^d&EON!%YlMVemu*`NK{ z4dt}cPCMzOlTJD1lt(}M(GBhkzTgX5p5DxVv1e(2d~?mh<5wh(c8#sSt#sq>SKa^9o2#GnPi)=& z{kHiwfQIpFn=1)V5>Ozf!TQ5Arfh}gYRovPkvHJ}Y4N(6?D~_wPizQ}tI^URv1!AL z(HqP!ZmvG`&%PXiv}%->@#Fq}+r0XV8goUKZdh5rS2vy{HjZya{-4d&hX~&IX&hV_ zUz!v)?MuX@D7&IzPwP2f_=R71&N=5i_OXvWQRq+{No@0jAuM!1fcgC zc6<^AXv6-i-_nUayxYEIbA9XPiZZ>f`y5~sgdr02%jZ7#xlel1lTJPL)T56+`p6@XeE7p3e&(5HHokt_+C*+@19K;u4X(c} zbCl`{@i#>nTi6P^nQUOYKH$`d@)ck46_GF6HN2kIQl+u}@DKkmf&8OC`lCK~e{<-) z4gO2N^h+ajziMK=tGE36um5@@PgG*QUKc?de>eBo|FOCHRb*;aTC?8RP{}H__rv#G zeg47C)%QJQ=G8?9_dUJXohIJ*1l!IQ^%}|VZLS13F=%+r*RG58W9!Bi<(qG#qAzJj z+6$KxywWBsPkDm0|H_VYgP^FIIcKR?E3RLv+xH2D6SY+t5^$VOw14)}za^|?9rw2X^b zE1Uwy!_=lRx>L-}#-iT?^JsBTYAd@#Z2kj2X&_QeRDr5r7wOF6=T! z0_(0X=fC8KeYYH&4uqN`-a+W%q>qQ(oJet z<1GUAH{t0aJ&?`QogNZlduiMp=QN}gVis}(i=DDw8WK+ZuFb_{wME#sn@cn5QL~r! zw=r~Q5*{0j{nOv4Jmo1(GeWhL{R(#(NfTi)+AVFEBLEB@6O1_2TyxxM=n*~cZ)f@R zPyh5@&?{Sy$kF`Mqb*qbK*LIgQZo(W_~Va1{P4ru0kVSnNy5`ByPuk80kamOY~M%j zNY>LLV%#53w6`#bsimLYTnv?l+tOy_wW1L*>1udQpr6O|uX@$1{{HX({%`;GZA%B1Wm`*t>d2-^XgNc*QIJ=5PKcX^HciMN=hOBLH2o+Lvyw7OBO+b4|0sQ=Al@ zjs8WO>xK7R4fTb~HQYeQctW#dN&eZN{aFM4tH1iIzx>O;Oa>ZZ^Cj&qSmSRnDVNXP zT&eS>+?NK^8qa~M4?R3tZ5FAj)ZqyyoX~EZN@^>P;hIY_(>UYQpWj@)h^`rcr& z6wyZb*-L~U_gk-&U=lm4=4mWFt857xf1H}C&M=NKPCxzhSS5K#m{X24LJ#l$ST4O2 z!CST1wEu06aY&rtDAkJ^K&u%CM~XQ9X`8F3#ew~B6>|1l^J1OOyi9EbU{u=}x+ZwH z0QAuKK591lWH$k5SUs_Ew0JR73M?u#hv?p&%`F)?`Q(!m%B-A4yY#6~ zeQM+H)!y6AlcYuANY@jF^&?jbu2o|S;=G=;{{d!u&$+oRfK8f_~T%e8^e zrrpnz>J$W13Qby$o`!{-sk+%Fko-GlG^20WT*P~e4|_iAW~cv)6=Lg0Z?5!i{MU~g zQ{%|wNR_6&+6Ve3iEMe&`usns=SJ4eEq^OCW=vCR=nfxqxIqFkK+vOUujo+AIBq~q ztmTOp6Ri_ZJTdi_7(~Qg5z%9#i!Z+T+RgRWx4t#b&Ys3bT~W4&+a)fz;DXC8yX@_6 zfBReB@|M@V?sZ8{Z|u%SHTFhgAJ4UHPk6!;no%Mb|Fw_}AW?UWZb%$E&1?KN%$~VE zz5qnxRDJ|(J9_o2UmYT%I~i z(Z*-H@4ovUd+c%W!3TFn?1vFNiS7CAIe+mNf6=QOKtJy}Tv*M$*OC10Pmo&ugrSvX zQSeF7j!nNcat?I$nI!NXHMS-m#TtJCdDKxy?X}ll4|>pp8d4T=YuEEr@KLXy^xGcT zPa;lVIu+plp4OOC4J~n-WXC*4M}+0LirB{ZI|d2oJ#%VWy-dBR z6=`0*E4JxZv2?m=CwYn+QXXe-u0BMdBq@sb-|4N_zy9^DTw`j&eb4l40hnS857t{( z9~xzY=*9L{oA`LRnpKpI9T`{6p=rkx@o4nzhJKQaMZ45nTBO}3wuo50J@t9%rI)_* zo$tKqrkmdJj(5b_NlpUIJczO_cB`J&@3yP2zWSPLu1N;o_{KLz)(G0e8ygjv+KUOA zY|GXwVx|}Poh z$!vHnThAni{JDk^F|z?OHrj;K{SSG_L*lsz)z+P0G{|T&hGG=6`!(@aq{p_mv~W%Q zGd5SWO%hu16fKwHxQysXN-8?gQ>o|v_Bn+WwHsS2-jkE12$(=V@PQA!-~I0Q;0HfA zBRRE_$q;>dNbB3g2Hg`Y zjsT3)v(HZ0J*{`eW(iN`19{tN8B#XU{VAKPnY7V#cN)48$7C^3!-}z5gI3z{D;1U6 zh?83EG+B@4GH(!l!xzSn!NuDHyNx>{R_@_Zut5xGq|Td3Y}fs9VS7;mkVZM}w9{Io zp4NYLPkKG>zvY%&;_uejPZ)wdwuR}QH@)diS6p$$KWwhcFTcEh;)CuK4TwO^v5l_n zF7EF|ZQPmBy)@=X0HR5gZ4Fws*f*m0TbtX9cDdFwfOG%7o&g#|+~3mnOeRn_jK3>Y z^6bqOVf$xv>uFKd8JY*F4{<;*N{e^UY=?~Dl7YhxJ1kqV>Gbx78Utk|UU}t}X@O)Q z5-}8G@sxcs7T;%BrtJFL=ce3CR{>xG@mSE@4Y*lEik8f2ekjwO(X%DX{>k`B0CwAL zw|(~6r(-~STL0BUVxCwit2GM5e9c14f#uVx#RhR&E7jH=zr_!|qW9Wl2xRimojvNc zuYGNIUUbn#-Q2I@((a@OWAxPoqW&8L9o^F!a8qcLX(1X+nqsF%_nQ_V(opLChW*pV z9R&$Mze(czJ_&2h;*#FcViQeH2HvX%VT0@SoESW{9PPp}iEM=EnN77<#LCU2e@5=s zp!G<3w7@ZCdL^^i4$yeAe6GL#`WtV&F&1|Wh(&BZedw79K-Pb9a@FRF2^xQ2_FsH2 zv7OUZN;j3?I>kT-9duAK(7Pf+!q$vh@@O5I`rFz^eTL@85r7G1tzIB1CoXKAnqZQU zTro?!Ap%Cm6i~{04uuXOjlq(q@cNaLSgJJEiT;h#CV9*;$HaM&C~C({Eow5Kg1GIr z+mioIL2+vDY884oUthDHAZCJ;%1fiQ5ix-*(;R}MYKzqrB0|(|7OlcxZ?2}(klF;A zavMtzjFN3faetaC>FSNCyvE;(v=z4~eXtt~2xevQSftD2>9=gI#+(fIrIP?BEHXBi zShhQp@E#a5!~+e9lcT|lf;j=>KtAqPM`)`7Ge?u6*KMwyW*E8Ch|k?zX@XXT9oenj z5ra0q)`07sh2wO~z0;SR#C`4?USV!mj;HY$auYf3M9uiJhm-qGw=G_57hA*)?a?i8 z>N!Q#3dJRntTE8;**{ULQN>J=hOfGbq$XRH#@quh*<5`{dYedhMkYbA2Gavuv&@FX zENeAYdc+Y&q(|EcBU$f?QVlOk%_iF`9EI;y0LBXXp3Sw!0s3vkq&^!)b0oBO%hpV& zE5Wm2M&W+gJ6o@mqiI769kSw2lx=A0k07&g_fg zF=eBPfm*)=$g<5Evue1Roq$(wi6GbNM<*>!hBWu&bbm9y@WKn5RdY+tBq1$Ex+;RU z541C?Q_cyMM|Ln$*C90+odPpOW?;CA@du)s+dL!o0^OJ#oLcw)27hmfeO(=y% zE*80f%_# zCSK^`+E2b$^o#Hz<8lNb){Kr#CcT~{^v}p)zwTVvE}yz;k+RC-kDkCQ#h(~u(XrPF z_w>V=8 zEdkgyMn;eJMz{=aM0TwcTf>+Tecay^{asRvD{q8KlIJJpK_6XQ~S7&ScYTL-F`z`A#1IEt+5nGJ^B1_|0L1IxR z?c0*|aHr}<6*XGr?o9o+DP@wi1Ek|y<&+Up;IXkux_UU9vz3|?Fz0=5i7fqBH#j%O z{mEosMvw-OQV>jR5ygdA|E*NNjc&cGpERV@fBe??`{z#M==V;pfH$pcKj`}=@VlF< zf%Z?3GB`FE2YQZPZw*$z!EbM_*b#6oz6aRq&Tfkr`9`P{j;8(@HIuy_9tEvd>(rD| zQN1_T5mjv_-Px2d6L=OEQxA{0ysLk(xgwbLEM*UyrsJ1IinC zW-GCR9N9nJJXkBIJ!nlECAbb0UHr$57zfNIz!yuSIA}U+I^;FU9!mf|Yjd@6izfE= zo+F0P-$qETz^8=wL~w{=Yc{aQKKlv&YZhs~G-wQQ?z!h?55QMNwWedc{L{_Vr~r5b z@4(2|rUR#01z@g;w>LHe8yrFZ+WlV>o7 zXkF84L<h6k~`4yMC7SX4WK?8~Uy{kG(+?{U8n8xoCz5EWrk#y|Y9ks{JT z#C*}_>Vp9DN>Vz7X<+cZu9e+shKW}%Xbo(I{8MlsKexGH*BX;$gJ*KYMnNkPxtmq* z=;^&CN+qezd|W8BV}u@*SpVCi_NxZhta@W_>9JUoyZUKQds@rZH&GU11V0TnYqatp ziw49Z*xcpRHStT%P(i2|qIb0$BxbQ=|Jx6v@3_5N6&srUuqBTRIVePDcNKv36vT?1 zeFIQR$cDRm6@cz>Zg%KQFNh6A)u;rRD3p$R&MH~7aoF28S7t_fx1ThHNRhTO&4F6< zf#W|4&|egjJ#DTZ+FbsN$A-}&0u>)841;TGvJ?Cf-0jue|M7QX&>$)JKiph>7-j4{ z-Asu$8+8rqil_=G(YC^=mZ0?#PHFj?SG!Qs-Z0j{Hk~Wd%z~hr`*O!#3?teah}!Z1 z40wl9!1W&B4I zgSbrc!>U0CSUM2mfzS|usKN52dV~(B|5${sicxy?Y(&uflv#X(^)oXvwNw0YKleau zk+k>B=9uny_OqW2T$li~wGKdS6@XnY4h$0kBABcU`zioScTy-2&i!phxWZO1h~}dB z9sk;e+|!ZDoIEn6(Y;qB-QxZg_j+r*|{C7?FSUTTNJ zxcuVqPo1S6_qfMB;t`KH`Q(#NIpvfy&ph)9Pk2HH;#CG5(J(qVzGQq2R3C+6c9H~7|&;d3#&O*a(}l+U3~GyZ`)iKUU(r_ z^#}l4W9Y*;Zw!+@B?GAoupERQ3=V{raSqo_S2`k&Z)S{|9U#>$Q$G1-VSNlTO2=IHZ|GLg$|riQnZ#Kg_K%?Ke10aT_o!euup#SlRKE6c;bo2 zZmyF~I_Xi5dQ|36zonp!fJ38ta6g+N)=xF2*JF-YT!e(d3Z2nC zNn;F@xqtJ`H{W*KZJl}(gG}uhtKo@^Hn!-Qu3;NAO^~wDk+_7%lb}xS%K+V=wPkhn zfzitYZhsK^Y<=VY9xkgSdJ?miSk6lKLq-{Vg4$@4*vl@vtcig4PQVeGcnhsPxq;GD zy1Au^$5>6ka6scL?0MaX$3k{^g9+auC{D_)_k0g=_qVMey0-?s#lq7%YgWyg zPsm5iH9Te*%?dYR-akd+dvD7@AY=3xD6N0XEw{w| z-I)oLDs8(+4W)O$)R?Sm?$x9{aN-S%Y^7F8%Iju1H($89V(wO_=MV!Kf88dXFw#Xp z=vttrB!NSw=QtIZ<4Cx}ai0?j5Gi;k+$pj?K_~X%gbsv91bHG$hK3xY)fOG(q6w~1 zsY%}0p+{lA;@TFt=SK0i`<@P?hL1(sBx+%lsL*d4)BLdY<2&!0q@v06n(mA=F?}5T z_{Tr~iBEiDGT>Yr>x>)D4v<{Mi`|gvKPFHg&OZC>zU;pS4!)J?*A(D>dybXsrQIKM z&r09`8A+2)^*NiX@yr4^cieHuop;{(-uJ#Y1^lKEWegq(-Z{s#8aN~ltIp=`}kPsT4^XUjZ*w+s4UfI zJmVSt?X#^uvNwiamojadqEYQ^=bwLmlH9P_cyVBKSX~Rl$`mx*M4XwZCp^vCiC;K^ zuVo9kJ|W9BdNb(VyK{m$=Ea#CN@MDwX`Sc`OrHvD@nW@>maMlMIzsihMmzyF@rB0M zKZUa6p=KWE;pw!07_G9R6Usq1g{$ZF)ey^QaU+wEjCAOTY@6Awo_D%7kg2fEb7JXDfPJjuDkAf-}~N|0AwdbSS00`YKv~kQ#4r) zYqXmO9cp?UnsW*isF8rt-#+tA)0&eA&pcy`Hplor)sy}Cn8!ROVkQF-%@TmRfPPIf zB!x00wW&%~g+~BKTixGHN1R>)_w18|lUO<(#iFU^+4>?*TV?E;=ItTTxjByT4EMiy zxqLGMaQ6-%eKszShyx=_ucTd)frvYC=^mZB61;T2X`rmSSHAL&&?qwD7_4by~l<#1N-%uCvZME8*->lJo}o z$Nd~_6Cvn)e(qF;Z3+mYiS*dkzI)>4x4-@EH{5W;yEa#bP4aNT1s6nKXMkVdTuuVN zzq$Ir9ZvbJVM>}s7)xF~Fhe zduFfdMicep^@J%?^198H7_<-A1QJpJz=@dvCfT65{)Z6k?shS?EE9C7f$2Ooa; z;qpS8RKht$3LMu4pO;b)%8mK@QYL^2O8J+{69Kb!T7{0kt!q|I+i5>XPri%E?uEPp zDC!|{tQteKg6(M{P~wqyjVf@e#(B~*fdB?P%*|~JZRbph#Qn|pj5E$?ni)0`Ejq|Z zq-$6IxKww(KKa(lSgg=VP75A((_zQ1>6f+w2UfZ1v3S&oGAW48{c(Q^qU|xQ0h1@q zS|oct0q-gRgWm1h>3zu}=zrps;=g8d^??h5MwiV!0U)6$$o>JWcSGaAE_V4*=ZpJdx{hE^1;z`=UrXuu1tLH`w3^;-bagAO`q&pr3tefQn>-FM%fpRgrbtvUf{BsLJ+ zW311E)Q6OX0yDi)F$-eT{ovfK1w_-|KF4XC+E74oU-Bu`?x4=D_o@1i&WH zJv%}bky})S`sqp-I-Y0JKphRLtnmpV@VigV432zZwSo9Ty2o&>)A-<6K2zpoMI3c?TRLR$Z!4}ItZHrHNz?RC^qNA+-tM5KuQ)1#VEbjvu*i~)0xfIZVGLS7=1x@99X zM2D6#?sN;!TU0dVbrd8E8mQs@PLySeytQva{K=Nb!V&<%`Esn(O( zG+xEX3Yo-f)c64OSU&t&)Dlz)(VC5(e^U@w8G_zL`N4s$`3Bs^adQex9f7uQwKTfG zs{68aW#~hSuUICLnh5%vo2%_;prhRuS(Ofm&k}&W_ul&<4|&KQd+c$*0S6>tabZu6 z=WO&;8nZRsk?z0n!VA+TgZFNn4U$t>9U2K)Hab4_C>a@JaUK;;DhC(`q`vGxm3ltz zxZ@JSHlmC%WeTEs3?bnVgu$@^j-z?u{wCD|P0a;wX_|d0Vk7qzCYR|?PsL6 zEZf7T3<(D|=KwU`eMh23I2f{l;?W<}46>>@V+W5GQ6%hM(( z|DZ=D4=^hmcH?g%@oP4529+eTLk~T)&)Eh&zbEq@i8~@`3nr_MzYjXC2ev}W-DFUa z%m&OVi^b!-UKAzUZIZXNd-P1kaG^RbDVG>MBDc$R$T{-JBm3Lu6n1-2nuwyYxayHX z^7Xkd>3+WHo}7Za zHwfH5^iL=w?w~=Hb0q`7Ns5SoEkPuTV&|N5jv|FqGVw(p_i9Kx&}pLr2SLfQmp};u z-a>M5I>|Mx=D=;=AmWU4VX7zv+26EL=3~ku&TBmeo60s|{H*pabd7>ph`7RdY_bzT z9mh8N$Bu@wf?Q5xy?3fF31lh|z*~>|`RM`6RwoJ93S3Ik!Z{nGGmB$N&ZTs4>Qx@dEF@va$`d_vFu)et14l4pTu(!-1 z^Ueu1J$>GJ=h*?E_M3dn(NAJE<7gS$hz~ya;C(mOfd?Mgm^y|!Hu0J%lpuF;ilueQ zR*9_i6H>0l%qG!n%{g3=9&6pgsZQlQG_@d=#e-Iu->v{Jn5{`37z~KS#b%m%PA^8^ zr$7Da=WH&q1w~QCvj(Ork*Y~0PD!|$v_Vgpj?B7 zQ`m;)iY3MaJ7pdRls+Xc*958A0Ve)E00-FK$yFbqax9?`0R;XF?zxoPY5z=9M5uTnq>j5G3RvHq~DSZ0k$ZsgQ;O1>LV z%bs?Qez5yBm?>fF;K5NCS%rQX1`{@JNf;aWe)fHq738LAHpd3( zJRLX3ZS9bKp#GCCNlaMHhZ(1_-*cwJMnFu93%4M=Mhx;ewiS1x} znn<%CgzW$zw@G8`r6|jIgq>#w3r$CeKhRlg;C9uo1A`r09T50f|IVr7OlN+_T@nTy z0MH+1LBx&4AKjAJcuYQb$|8jumD0s6iV!V1lz=flw8><&SKo~WT}wl*%5`${nkq1` z>OFi2&L1s6>ldS^u{sVu^q~(;0QTE&zjp0*9`T6m@RUe%w5y1$i46<(F`juyCxp7= zK>6+WTwBOHkl;BT3I+7go)}v7btaF9!oC zCWpT*o|_Wtq9~3@@VN=0ia1;-DxF2Em@>Xs8gNa^l(pFZuDs>w#qmAe0F<7mSRH)( zX37<=)!JlV*nTI6c2z+A1fEh1K8qurn}Ue-lZ33ezK{ExX+xs5lciWID@GVcslure zH@NN{d_X-+c>-piO+fOI!Ewz3c*YIwn5nCDRo3brn=AF7T(bUE9N=>Vod7R`cc0^q zFsFmmip9lz3VjVCe5$v~BB1^izO+ROXL?=ta96A9y83N*Webrt8{kx;m6oBR;EJkO zi+r_z)+Du&#yN_pR})((&JIosHxHyK%c3RZea|web+UbU-Fu?3LzVVG0UwrW;mt4}{^Uptjg>4RSpYshI zda&huZarVveuyyTcx59Dk7?#GnXbbFl3ieg+o@K!Z`))4>}ZH3^ch8W4AaY=o3SwfjMB!^at%SgO|Or3IGUz z0(ui$z(6>-H>zG3BSz?PnWrxuNeLUHYn1(p4!~h?hIkWPaSW$)hXGg~GL}s*8JdBl zO0M7uk3REb>L*Kgggk>$=O7-R7{IpF3&*f%0+%{{Ly))6jlZ|VL#@$-UH{=9{z2pw zFdL#th;Wht#H6Rf=|o-lompRa%sNie1uP6u&>Sj814770jZP`CR<;JCU)jtwMO13m zjXZ9SII+{KUiB(SX+h#1L8pZ+`Qe6?uNso8HvfTG1h3=HY%A!Xe(eat;^nAyI-dnWz}_?YntU8h1L zIVT}%Ol0b$?=Qdn^6Rg^{-&F5y79&vufF=~x4!kQN)a}Oeh3^%^$1@yyNN1@0!24V zHr;M~ZbnKR$hm7slcc+5gu$G*tV&^LU&Lm+@4kB$NBcl}Ha3g?Et#_TaesT%8{Y5+ z^@ZBR;@%zwy-PAdcL9p;#sY2a&W?A8?l6JqGQs2E=%_q*^E~OKlRAd)yYIf4{)%*S z*!3C^d{v5+x{tUD?ncD8U;P3}Owlw3jU0gT)`O={`KPTknn`(vPURQV;y@1tbWxk2 z<#gbl!5X>zbE@J@(-GFEz*Adr2I%zai2}W}A#n#Wy_~eB1aF#RdPXER@yAo2 z`qWkwuA43dp&PrNntC z61AG6Pq&?S-gzl0C03JxHUWhVQ(mp0zH*98iiAf0RtJ4LwJVR+sAPS>{H@1d(%7Oa z{?+RSLCj=_Er7|3Zt4EGf4ALsyYGGP`+x^L;D7@TNcpxRy}B`{*P2M&&t|*u!V3p@ z(m2&W=P%~zib_gBMwuPBOEE~*5hW|K1yyJge^!V}HQ*Q`3pGCIEONx=N7Nh zVub`CMbc7oibDvDRCUz!dh%(6+Az)(;z7 zGAT1*O8`{mU-z8vUas*|u|=g8#QhL*jZk6!2G(O+4k#c%L;gpewElK~hI^ZBrhGKN z>Z+?!=dnw?-YToAAj3Nf^!!v(5|Rm|!elI!*oc98`_zGL46RgJpn0|W(I+-&6;cq; zhnjA|@Y-gf^xE^KN5b|%3bq3{VFH854eV*@*>wMXH&;hZ)v#l&9;GO9i|bJhwP7c# zO;%AbHT@$#fI>Pec`(@qv%>(D8?HcclF&CS7UdKb;%ffMK<{g9;t2(%#eu81aV9{I6h`TiU9O;R?rm2rnh29a=CKmF zeJ1+bsCr<=y4~9UY*)^#i)!5|ph$jkk+`R)h062k-0I0;4{RD#=_o!c+3}g$@89dNaiAA0@ zFfji;1DanSqFyi<~lcZ(EI&Y{yW1M2Nf3&&!uoh9|j!>Z~5~Y(Gk76xt0=m~Uw%O>N z_IUS1E%s{}^LR_gfeYKqtJB1pD+8bI z(s2jao2cU!k*`J=?`}h)^n7i&VttB6Lpmlv)Na6$&f-d->zIDsb=S#Z z#Qkjx-HuTaTA>!N1#UbIyM2FZQ>y9%8yw$9sa~xLhOUx>&QMDodd!(5%@nJ( z2G+O_qNnT`_4T2QR{X__KgPum4I2UrsUMHj>gcJ%AMp7E3WdEv^!PvQcCvANy)CpMlDet6qAE#IMDjvMTfu>3}TYMU2uYKmACgFty2h)Oa|C={gbdE9%HYvX=yk4EMh9ni; zNLoa#J)&nnS4X}py{Ko5HHsiH3iTgzXEA1B?z7K6*%+}}G~`WE#xj)jhi6evT29w))%idsp;{GoqMYV;wI0O91%sWSOK^V)_)2`ZO|wyCD`= zTpF@XQ>@A1b|7?48!!R+ceGI5s5vU6(CWvO>5&$(S7h-%baS->G`!4C33q%x5i`3# zu8ZH|{$!wSP0Oq(+{0(pCg1}et4COC)S^K0-5m*5U~w9$3xp*%{eDUnD7+f43x+rJ zm{qQmhCCnmzz6>6pZ@7XANtUH-t(TUvB<3qypw=rx#(VhoZ|k5m9CB4-8Q}D1{uciomP1Q`xr>yvM7?KY?A$N<7RoUR#_|8osA^jrsB5F zVp@(mUpDPX4-=xn1b$lkTnrj^tF3`JD@61ZCg4qLTJ(MCeHw!zv+dYsXoPsXCyW17?c*_|v{bO-yc1ea2Go*>57eoX&?&uLC}&bar-RVc;+1!% z=f|9bwKSFIE{4*tdRik%lj$p?ffrw4bX?E1lh({8aVi?{)>hSd&gp3jCz*9n*%KR{ zQis#AFote162+$9-{#H%$Ct{$o8?#If9n9Swk)6i1M<;U?w8Isb&wQ!b$Anya)Vxo z`Up`dwrkTD*+7AGN@{h|xFv84u;|2N`xOd?{e~OODQ&T=L?r-(`FWj$4E9*Cciy!w`8nD|yKPF$?vP$}M@RgV$+~npR#!%7# zQ=nyeM@gYg7#?bmI%j=K?}`;#3to4M@XHM?cS_m5>J!Y}1O;HJqm%IUcP z9s{V@p!NE5Z0ORkR!a^gE#g8wqUG;Pt{d)`S8=bfb?7>pZ&J**b}gCH_v-vrpAf^D zh~v$a8J;eEYuO8p9@dKc4hG5_s)8ZQWU7--znN(^gD(YH8z=J&J>_pCOB2Ro*Z{Y# zMIU%kdt=LCbDP%oYwHTz!jw{EX{;a)cy)Ppa{$=N{^JvCgm(TYIZ3ve9?l+u<=pX2 zN7)`N6?F*iGcTE1sJP#8eC;Ts!JfTcYajXLQ^;tiANOxv1ltok14$C??4No_41@)y z4xZx<$Da)s3_~TAgh8jHsT9C6ndA}}%(WX0>EbKY4;|2oqO$W&x>GN8nxQf&81?2; z!&h8!#Z^~b)!(+r2xKsjTip3;Vpq?EQv%h3Q4z-8s+_@xy=Dd~v!l?O&AopLrOB+P z_H^lE@vm)irgowRpeD{SH)VEYBjEn6JSG{pPUny#_DM~FCbVqH0btF2vO0B(0lL;N zOmMxo$FGhMb~gTlVKuQ4>TK;PHYLnlGurWaFq_TP&JcZ)v0g-PMl@}}xwc?+8hO7> zeTd~Xo^0%F4c4z(#j3oB*#n$H5XwQ<+s0W-gSM?~jl12TQ8|k+iev?L20!}fqo=Y% z`(wL-LyugZ=|KQ&oB)UhG`=XMqj0P#lDg{tDVQ~$#KDDc^&4*56Xi()KXY@nHBGjj zL%rlOMIGb#&LL`rcN)3;^2-}f0svq*1d`YV_V=9UJO{*jm4T_Vvi5pWVRLq>@fWEd z!M4`62)I{BOM44tJ<|xWg6hKZp(4H3Qe5MX9AGxqX4Mqb{|XtBcP1RBF6T5y5p#50 znKBT#ifccPPt!$GDFMTAOC=xPHt2Rh)?*Ugt)a!GeydF7Q*EraahX#^l0xHS(o6|)xC;UHS; zC+q+f4)CU<_x}6u&k2y~|KkHe~n$lflz|nt-rYN}L z;LDw-z@Rd>lgt_QRgR$WB6K3B%&>z&GLY^}2qlr)&@wd@OqQ4jdpFtl9O_ffUq`7q zuTP7Isn^oeRQUzMm7m}zwh`^?rhdO-Tj{m6l2otmnIFG?zkSTIuAR|TdeoK_r3j14B84JZybe{6{@MiV84<{?yd{epttb-2|!{%03QGN$44?rOdlWL-_?gWuNh9U(n+fw(uk{{ zbIv*Eo_j9UKCM}(Jv}|g9y{ZVGqf=ke~DA4Elo?ZmAcViA@R(QQ4j2dX^Nra!?X+< zQGDL>o~KBtfEtYfJX&VJY;MTEpmF8u6faxw;Y z4U(uZ+lrZ!3#tmL^T`T@=z-|D`Y3_VK2H69*qG@T_J6J4?--yj?OKDM0GNV)WNLn8 zJ3Ml8J@&DW6*_48ji-Hb;EDR>k_sz-7{BZ;+I z*?!3VJ@~P;109GS`$zTCDXzm5R|D~OKCp`(?%jPrX#2Bm>UwrXpn@dS|x_>(7C(Tz|5pY9*MNUtXbQ9risPQ@7ISoEumqEtYeb<}9TP81_i&xs3V z?dUY2UKn*XwGbNyEKN5k7G$rG%RA+a>=i9Rysp4jOcqI}e!s-XPgec@3EK$^^1!ZT z2Gtp8kdZ?Dywui-C!Uxs4aC+8HnyhRJqbXRjN?D}!4LlL|NX!J?ce^bO`wI##7dvS zu61Vvi=KKmr|ETvS7H@NBp#dGeBP~b2H5?k-v^s#wPrbmq&4q+;`n}5?K8ozx#k+h z+S3-j1Hyt_YU4^bsI1oB(qBjI_5=wc(!&Q|p7=$|mKLx!(#Vcgd2>1qrwr1{`iv_k zt_Hu||M~Y^Y*RH9SV7d`(>IqYjv{UV4%62S;vB46JCL@rf- zBTiD+zpT4K4FlX~Ag3u#r`$LnGv{x@ECcRDg6>@UcNgad9p#e=r`%JV~XZAyY2c z(NONW{SkJ6IuzsV6^$y^(Sa`$sJDz8JM{xuAl}zTmtJoRZsO6sMw`vIkYP=En7&@7cjT#&KkZPDIs8SJ$8gmb%P5wLT z_Yc!k`CD!O)@G8c07T3NbKG&qWk>8xJ6w9rjwCr3EaTT1_Koi!VI+=Knzq@~G0_rs6PDGh8o$ov0NaJkrlJkfd#pL3&S_*+R?5HH`jRP^& z)%x}7)UEW+uI_|QSA}2%Kwo46(2)8jp_=S!WjfU^@Dl*oGd9=Gmm=xQi5op3b zErB`3z_Jx>=73`Z=rqjWR=Ni&DQZ&QYIQXKUeutcPBpmL+K5|!fT*SlgA=xyk48it zcgkZT016o;Jl!Lc7&bG@Cq>@zD+901I^#8ANQXtM_$(QV1y4BPgm(Ep#D5JVVj8DZ z&z7gx#TltIdGU=6oY?8v=_s1S(5g8l=}Uv&(}2-Jg1GZ z4%M1I@%Dl-3y$1*1>@l{U<3+I{!k?{~lZ zJ@A1K%y!B^kp6)^hQ-O}6!)BpOoLlttvHbzN$O@RUjjNSQQY~D;QKjMfHZkj;QNWD zqAm(9L_5wt^|f27HFZe$kpzRkWxScwMs6Bw3tK8EtrMA(Q0zFk1074%5l|y-IO(aI zi}OldZ+Yc>Vfq3|JH~ch>MFO`v5tm~j=a+C5`cGXF0kqb)3AGEKUd4Ps}HSo9Fsr- z3u;`|9HWVMIc(s5k%y@t!AGg|P=i1Bqpw}-_a_qnh5G$lCH%*xp8~_vh=lp7tW}J= zLfQXdbE%=-dWl=pEc^{?nW;&Fv)m9g;`cqF-*$ftdg`gCru#qjQ$O`S_qoq*yY1Hb zp`Eb#s?R_&C-BTvnfho`{c_+TQz-{CFec*!$s~BmVR~oq{VbW(Tde=?cfb1so2w70 zy+opW8ZOX;qnK*oLi&@WH#th23~D7XnP6q7>|9){?T4_DW*m;Nut_XVwX;RLGAfcr ziIiCv$z(sD7Ou*uC|^bKDBau})!-JZQgkvxv?K~oIKuYBNY?kQaZg_TZkJwqX>Sx3 zjr*tEKs#(d)QhRBO}|;U@coxe06}Q5R)v{paVDQb>QupSNadoH!q>_vC-F(C->=ie zR_W%cX2+Tz6fyM=Q?Q;L^~@aDVrL|&bAp~DVAGO%I)wYC+r$$am^_Dw5M?r%jydL- zJ@?!*0cZ#4L%TtOR_vCMqxi=Jn3Twk3hEB@#?-l{Ox%ld8hG3U z4kvp^YH}QzK=wm-c29F&Gq%29b19PsJ)z3)RCnYa)%HRw4Yhq@$`&c+jxK-|U2%T{ zQ%DDxIZG@-imiLTaxAd&acbO|&WjqYG|W#g(s6nX)=Hk7L+Vsm;HcHUTcg;XIWFT} z>-S5Av7JuwtgZU}G&JT|ZHDRHz17BIO6n>a%XI7p7(1zasj5kAn7%&HVoFy)JKHD} zQs+%-J7SnwU%k>IerI2GuVVeZ_ul*P!w*06%rlerNWm*TxTCdxGxk%5nDpAgG`P0| zWdEf8`7=TN6p|3qxqAmt@dB;}N6H_~{?VyCR)`^5^(Fue=b$~cu(_q@ZkyfIvKAO2gYGPg=43oyt3f% zMQic*sl+%H!Ib*?SoQnYHfPHCDT6najIkzQ6`pq39phn5;2aZTN}e!5*Ao6)DLZQA z>ujRdA{T0}?)&c4S&QRxy30+L1w*u1sIadmh>D+0HsMbql=?Arm0H++v+m1B))JRa0IJxI>@=^tuI5fv3 z7)*S_R@Np_;U?lDP!==3*Cw!WMvzJFS##tgF0($?Pwd4^yxQ?`Ek7!IaE;Nd?!{3h zTa}1*t>3?v99}CKPwxc@Zjzp$0IiN>MSf4QQrJ>PksZJZQuJnuSaCg%0JIQmrRWTL zYz^1FrnX7RZ@u*Ko@TEWcaExh)rf&4e*veK!VMxzcTVM@;h+CwTBDHEHB1 zD;X9CiXch7*pUhYM`~;4Lx8xP1cK>W^gK`P66>PfQ^M`(Q;%k2G>;K;GMm=ft3uAK0n1m)>{4us=%O^PRLB|g?c9(7Xa?=r<)bil~L6&S~j^< z3ao-WOgwek*LC&5X-7KsS8p!vc2}SKA%qs)uL%2^C^z2#?Zu{3Xk;oyw;`+{^YLR& zDR2D_HPaR%ZARV0H=s?eTz)xUN+!Y=O-Xuzvw@e|TddlocdG0?$p$dq5~Ce($qCp< zG-NDIdGF!cW`?1846iabzlr$0bI4=ZUO735mk@XVOzKd%3o&F3dfa%wWfxs3~8v!p^`V%AmP-zQ=u+3 zQM6=BE2~4Q1Z;%nq*p(uZ&bpXLeOhX-*q>ib{=$_3KY7RPO)XaBPDfvzR^x?cR9Gs zOJydQ8T`?LQwh@4W(360xFqrd2!QukM@m5&22`e1OM|TWjeQ=gMq+~qt9B}Kfcmf% ztC7Yqw%?q8IF4XB2h0P_rZ?U+t_8=K{3<}ywR7Am0OE{d-f@(~(HLOPDmyK$mYtTi zbv^s+vvqEBj+`A6rFat7%&Du_eBNDHCeIyP|5*f*q5@Zo6c826ld>Z#eOgOxh%w9^D% z=~RIWu@2r$jO#1}Wn?ED5T&COmo^{vL^JF&0F~6Xa#YhTnB0mGE1(PLVqL@pduehQ z_p7hkNnODVIt{uHIopn0;^R{uAk)312_*k&is-q?3+2?zm1N zO3Y4=M>SRCa7-(qL776a+sWLpi!7&5v#fNkk(ke@2(cUx2prE zO{}U7C`%!IR?oo$ujj~B)oTDD~&vB%F?bKBVj-Lb|+oJ~YC!c)sVTT>I@4ov! z^q~*kXPHO6X!HMMqfr`+S z@h&S%m}LNb@Q)H+6K}P}HPfDoh2qdtNS#9ua2j@?DNni_D~RuoGL~C7#Fx}Bk|R?h z*4Octb9~O5}IHtqg5 z76ebQ3n};4R6#QBs%o9{X#(gr|Cm4-XV$q2%&^mPL)V6F!)g-@mUS>DP5*_-5~NuC zth3HaH5_>0fpPyHd+d<_9D3-X=?k5p9QWZ&qu4p;oYVLH#K{%dDLPB+#Bg?i>F0-l zvLITmp3wB+;rhnzL7V6u50%(8NidE9>QC{E^(F0=5b7DuW?P@hG#${`+L2_k5uz2C z5OaKOfr>#}zKIV=(N02CU2nw+D*V`-I>r?{9femh7|`-`IGzH={%KE`jxv+yMQ1tw zYPS>dBV($(S+}fwgVUTiaoy4A*DjfcQ2(e88A5&8e??_G01MuUWWwxIIBmdZJkySS zG8;gVRZWsvhACMZW)e*&GePrO2>|g;ukJP#0aO+Nf^evUhLzDjk=+=&X-lASkf3`g zm?=O#y>h4Of0{DQ-FuydWDlw>9A%C?@<<5BOrUhc^zOxodK~pY4A(P3dI$jU^VUel z4vtC@Eo#T0k9yRj+JPHP51|6sa)8I0rVs#b2L3LQTAU#VTK^bB(whU~74C34DLF(6 z{Z0=Hwm9#FS8p{Pq`8HhInc9X`9{S_8mbk6Ip@3rWgk;*?I=7lz^^}+_SDKI43m<& zHd$0scFfv1O`1eJ@c7LIbq2ED((BEU+$OX;_(0eNSeIA3e{wlf6_a7G9?5OBm`V6% z?GMFOXUhf+>K@j)GAF#8YKHa99z_5o3^1=_tVpRwof6m`msKCpSV^T5XjWMS5Z%D> zpb+*P&SU6Er63z80Z{rc8At%4m$?hLifllt#hS8nk_Q!`bpgaNQ$=SWI-Gh=Q{A>U z6dR`=cX+>*layR#Xk}j=bIdWlE|%?wF(~aT#ljj(&5M%#Z;Dfe-K<0wh+qXofKwn? z%BW#34XzjfL9EYXD+WB7Xw#K&e5SaQ9ot%@l_1CZ5MQ>MO)AkX6omyZevZm zTzKJy>Ry6^mY(=q12W6g6 z+|Q{HP553qR*8`}WnsAKGy}at(WItz-vt+3aQ^w{_qoYNoNgFA7zmKO zg4jS^O<}bt&_oCl@Y@a&@CHt8M^Q#pV*>L3tj$1`4u=BQ2SpEvmK^%e22EF~y*_1A zm8fQi3EW5)-O0x2$Q$xIuZNW*%`T84qxP)=2<#zv9Jm z++2GbHlAriMpGI&2Mg|@6sM9!JO}Jx!Gs8#5%n{tYG*ILtOltmblaU0bUcGfc=waW ztPjfl?|=XP9)9@YO(DAVIz1bei)+@x*klj)$Az)J*wbrX^BUE;hdz$lYkjCG4y76z z4K*hU2VdTyDWSKeu$5YX1wQY*^As%6m!;!bzlw`m$GHE*&82Z@bdHj$0Zh4EWMsUp zC4>jcY5=C089WUEF1qNVCffiKn4US_Gl_MhgQQ+GFNk`D3pDDzdj}BR9F)aYbDqgV zT@5n92&VspY#_JjJSZUNNCF@rCjl2j5P;?xz3ke&K-~=IC_SayB1FsI(oQwFSRw9d z7`#tH5c9eeDt%GO5^IejZf=_PK96P!{mZfdjIE)upT)r%w>U2(+~dJFX{ znZ!D>#fovf;7K2JOvL@F_-LZ45bfP(0Df^!S$oZT5Si0DNwqhL3R50BC^}|A?M^bQ z{ZtU%4xr|6pJxXUJO^BftV$!fx%KF_*c5sR6ryF0#L=knz@Up^%P4o?lOaB~hh%_> zDbAtFqy+E*+_##nLO z;z-ea+X2%0d+)t>+<(+jN40&oqOF1=?{9zm+qJ1{`YkyVwDI@3Rcuti+c5|5l9D09 z-rYuYmBQ|&j!zoslGq8}?8+)pMg3AkAMu>>=n$4A%!FaU{Es6LG zH($3g!%{#0u(__f>Z+DO*BMY*yW+qxz#qI_fLX^rjn{i=(`gv}s*$&4rS*?I^2qdM zXPEYc)eKs&Lb!Vg=o|xfsD=3E5%}qoj5(UvX zFj^hG=K1JkNUnI}asAZ8F!B~BYcieCYDmXDu9K?6d=-tUN;I2esl zOVhhdTfP|2tF{pnd6jC7x!2+%VjqKWTm!DDfkCRViG>2DMW$ABPI!uw#*tR8amF!T z-J?{a7a5(rZ*|heo~9u)Wj|$EfqQj8i?OsSnL1FaNvjmi>`DAmKXN1E#T#z8;hJl% zQ3hsAG6xa`G)4W?s8X&F2r&+Z5^FKE$86ROKB4Wz#>JE>iH6NIuIi0S9`*OqOE1+D zfr;#y3hg@=Dw?oWpt6etk-uSWnXLNi)H~z)9N_w{CXjmW!y$bJzZ=U+N??!DNm^AK zZPa93Fh>UvC9*UP7Pjg`LJjFA4?_v28R_EYI46Q@q{2tnl?*72F=5at72azcs_ZY`b%uIT7C z?rk_ZO}o@+anhi1K|v**tr4PL*kwpmhu}XF>Gwag8YiJ zcE1V$mtTH)KioQz%Zi#p;XLT32~0)+G%q3mNp)n8AW9)QK{dOUHpc4C)c>uw-g?_@ zwR!tEqYAu&!Hp+@R1KSb%Y&U+VYGerV-ZOl522-qs49|wK{hBy|y zDkGe7Ew|3isrQt|GoG8`Bo5=49d>JsVq#&exQQr8T8G zZmY+$u_=U{?`Ga)sE4T3lw0P` z7>y^f)Z;7`hfZY~D?vVu1vFTI;S*Y!<_uHNVfE!ty4D>0)}-6XyJe`{YuswGy`a-X z7@evW;ezH!7}&jo1ev7db)Ok%gIJCFkkj9V`;r5#b?MHY7P+$c+hlTF@ScD4#$PicUm7eEr@A+p+hxj|va2ZgsjcY8p-_sFFd?>gP9=J*N-zTKar|@@mlj%I0FiGCCPHQ&=}$n_i#NTC5tN(LphR z-LrjR!ls=bF#RC9DADPJz~QTa0A^L+MrrTp2Eoz=l-eseJsR7ToQcs@9K+L`gHE@9 zvbj`XR?~cRJcgrpr`#Q@W)4MDJbA7EGwOd35ETEE8N~GZbi{LGf~q{(C7dEDir;oE zraSc}CPXvc?bpCu4+qH8S4ENPzDe(xS9|d&<=CmsaP>ct=c5ka!OC~CT#(9r@Zd!L>BYbG-=$R z({cfxY7D=o9A&z#flX#YKZ!UK1ejD^iRzODhNQDVQ<8pFQX={+c$T-s4`vLtMMxO> zTW~a0W|;sf8X@qh1R+C6L6_EOVyPINj-WT8o6LI3>%t=qaK_@&WfQ$t7*F%&P8Tw1 zl7tK`iN6h1-$AWOx~8I*6gJyq^w|O8U27zb42%glXP~iF6o{0Ou&O$D&PK^jWk9R3 zlN#gAoGhWqD8(XE@e1lwIbuOKP<4l06?L3|<4C}}?_92}QZ^I8uySlrzENII8l69i zMuaHwE!>$Yj(?Y0GV1NBLhz1xmG)#9wP&XT;Q^b7nC z@P(L?6o?Uk!O0WRDJ~6;>QpHp3t4O{rUZHX5`bQm71RRtI@J`LMJg=Y>n6mDM{8K%R7PXrD29U;Kt`$A|?6X_i zDP}5~v1%sjV5{~HG7h?(CB~n&RoiR@fpI%JT*ARec8FJ}e0ZuJKE=ZH3ef{o&gV4t z8!WmCf$K?ZLfWf)$69FbrQx=i5z9g2_$e*(+~+0_=Kt$Be7 zrt89-l;+sIV)AxHq{@9$XKgB5s_v@7vAV9JMv*If*3tTeWjLKaVDfqn{8jdMtbf7@C-nD`k9_14pZLT`)KDYQibPyf z;n)t-KzoqtQ_OhE*KyRgOg%7OpTg_CT1glw9EvEmVK(6SK2E##+G}IEI8B8z5p;(Z zn@LaJfl<>K*(R`B6jOs`isntR1Ephd46LY#-Gt0Io?&I9;{_L7pyvXi)N?`6Z6+p5 zDP`lZg536fRJ z7F;Y)Kn%iZ%#2Ot=oopU9eh7q)EPthkLgyS?&5XVU6%~B4@8{!N`QhI9eh`-{C{=; z9003q-{ID@ep8rxxPRKwke2Z_nhbxD5R#6tYncG`^%WF|@0}LZZjg4Z>5%S5F+>lS z>a`Zm2ST2j$=`d=#qya%lSydCPj)@sV5d&Hj#SdIIaTExI&CY_gJT9#uZXmKONaic zl1ag+svv1y4#2Jrk>*Uf)~I5;&qFx1I9LX;n-)|sr<>zQ{WxON?A=$r>Q&(QT*j<_ zi=|FZ6Ujc2_;Ko~r%v7Z*r3&%plNCd_)0}E_Nu-oHsq~JWSNES1O1)!HxdO#`6C~F zOyUn_R*2+*pH z0}m*!v=tPbqn;{24xs-@l0iGF3jnqN(J_4yr|b;3@ubgla;d$+Q3wka;S#xqVdZ4W zbg7*$;}NQ2@(kAq##Z@D_6hrPe5pA5S({59&){LY$6jeG;F5!EQ*3MM1V;2}04f!0 z5=3pJe5UGiaf41alSnhb!pi-FsIx8{6;s+@mQs&xX?t2)Kkm^r5xTC|82|~S{`+Bk z(^2*C!w=tYzy0>wYp?zH-~Wgsj)2otgix<}_@X#z8Xq#N)P@=C5cm+2!6NFb&;Z04 zg(i6Oc(m>Iyif6oKx8|N5|nA~^tZxL|7CoCJ5_wIV<%uz6o^&i$M9hYOEaW*gih5^ zClhP$xzs1RDXIVcH`k$u9@=i8KXyygt9420nQLwhoL>~Sjif9j1}Snn zj z^pL($0iV>Q9MPlFwS9!N5MVz>+JVu|3ISSV>rrkpf+ z+zzAZE8U z>m(d1``BZTT~XO=`<;6&Thf%K8eXH`k+aCOX4rYqs9dh59Ha0FosfVb|({R!h-L#btX`6zjj{C(|m= z>0Ch@TNA(d6c|w2ket*I$e-(Q9ISp2<_ z387`1+A6JPV~c3Rh$&$GRW(12q5GRs?*Og3rWgWzanE;Pg|1Z@Hgl-kK0$o{aDTT& z2fa_RoE{FD9@4C-%N>40uIsgWv!^TGcFE>yZoMYXmb#_quIlG=22h$<@pvACxGm~O z>$ahW(y8mv&DEGDODJB{^%3-PP@l2mguA2uuJzbBfVbNFOy!If;xdPjX_AaVA^BWW zYEuI7RwlSyUU;}@oyzCbibM)~DOWn(IyfJ9Ew7obiu>b<$eZSlVyacEZ3;I|{X3Zq zAFpwbo(bi_bGjyHGf}`0IJK3lQM5wvNP~hN6%$18)%m92vq*xv65X8QPkEhm(n$}0 z_`^>);e^B>`O!}#LNzt&KSim*@U9JgHMD~@QuI3}k>40=Y5e#}!S_2lDhU(kq&hR3 z8+P2E{nJErfsmfs$ahx1p=bzQB@J)j?>c2P$^<>eveh~{h;{c{CKI<0agXPwK3O_D z4vvUQ549`B(+x3kj9r|7L4d#?ly+J(&U9AI984J~^aWrDb*%c;WW5NkF{tJg4!*%3 z%0;*pC1v?c4zx7z!8O4$fKua_X%ipmq2i?BayL0hCCB);>cjzTcbpb+fVS9j%wt@+l&x>8(8TF}J8&!2 z-m7|Z0+29hd6aZ1sLHx)bJNaI@@m{NmSJnb@8_JxcPm^kW!4uZtHKKBU5tL4N7jT zRW*BvcItu}@cr^;5*2;#R!l)7Yo4uH%M+`Ct@4w`NeQ9iehzTst{GpAjI*r5sNs*h(l5~XZ)fKe2mKR@-&d!LcJH{vjTW|n~N^0VY zPxDnfUrpgRxiwQJe?DtwAxtLmddkwMzhq;d`8wS-qejv$lmgcMiMb-ps^x1UtxL~T zSux8YJsRt0!Da%rna5kL!ZaU|aLl8hcxNIiW863La%@wB@1GR8{~*3UYS8_%2vZy@ zzF)y``2KOyaGu6;(*Y>TB>yQ9S{`rgOy)b3EIYnwXqM3dMK(qP(59BOHQboh(UyO3 zYLO3Mb&AHZI{02VH`mphtN=}o!L~^cP?9??{d&I+mO)2vgo(O9+ zPzx^_r`Cu~bOt|OYa9E(zHJQgXzEO|`pC^@)T zp3ZNeb$0T}otiFv_loa_h0&^XSA0LUtwb!w9V>LK|H1b+4B=j0$`pY(k5UZ0HPb;} zXkusb(+B`NUitENfCzNM4L96)|!vzj;G2RPv~^e87vt)!$6p}PQc*iQ^phoaL~e5)J7?kGpIF* zBjVz7qVVd$CXF}^VdWM5ug%3Li2En8ZXl2=)HazJ9&c36ZBFwxWWHC^mt7#bwd~ zlxE4bGj^=G_~MIG4;gK-X7@LZbbvxy4VpR!lwZ4-3I5CaoorMk#c~JcPumhuK(9hZZ`O8I;8B6xDDFZ`Ccp9HiGSDWF znXcN>>fzw>7XqJZe-0$5ii5oZC(Q=9g0cWnxA6TO%@D_IIqfCKNRH{x-dsH0y|IVz zv`Q)AXO~s7atrhaOA<_h)!>baoDM2`_R<|_exrw}6wlL~D@!gh;OO83?KKfvRm~Lv zqTMf_4D447D)^tsHrA}YX=m+(uw_-RHDQ3Z!IJF&gR5DESe^h>7OaS1p|+>|q{P5^ zml+0B0|F#vX%hLzyE2SBIN|jmK`iYg>H({PCoIjzohnp>e*pJte6#!Ya*K2+5e50~ zwK>D!IPjC~=d}mpuDF%)U#Z=#b{H-cI*f*FAu%s7QvN;N2?qV)AP)0_aUGLpYaI(` zBom5rfK0N+r)vaFAkXhL3fB5D)Z#WJH63T;wuY__Bs93#k(1=%-Z=1LRW79;n^s^33F zAW839x@^+Grys)PLt{rV1UdK)YMez)xrsM@u`1E@De>8i6yJTy=2FW@5m~*lrgeqw z3xq_Jcg_h@%y6~(rh|#F^wgb(r_!doF-Jh49s6x}0!^r}jW`o-r+TJC%9;v1#Rciz z30WZfKn;AaVSNkXkQyT?UacUkC>ysA?vKj{b&};X5%g(X1Vjx$r4AJby~rk;kOeUZ zr}6&n$h1Nr<)j-^%MinLpX!CQSKOdmMB`4st_6_$35;aR1N;d7F6f<_0f6c6+FX_m zGnMzIC<_~@wNz-0tpx%;jrWLkuTx1*{r*D_J#^oF_uXr+z4qI0zrzndJQ?WwenrPC zB%zAqR{j14-&U(;vZTZb0yx7=A#Xut#|bJK)E0q^j#_*X6t`HR<5d5W^Yd|Fovo+WP*{>%{EW}B#cvhcvrBKn8$29-!i(VPKT(reP-wEULM)RgpYY7OF7NTyz=cDd{Y!JWR@ zwSNC$haJ{3_Y=u0AHRNot4^+_-tB~e2V67_6<4>NcW25@XRyMZ10Nf?WoPAkx1`ALpZtV!7~CdmFU-Mo?8h(e9(z~drRDZ)KN$6 zzyJPw@4a^l;)o-TIPJ94Kp`9xW&cE+WaG5W#R=2m_6pU!ZHbc;JJ4WtI=WL7LdX_m zgDZ^T!QAh^+JSp`eBXHX+;h)#)-WQ!+61QNGjn3? zU$j*k-^p?+i0~q){LF{eYQ_C(6;AdKq!33njCUhX2va(ZHkwcQG|MmcJf--?(qKZc z3Abu7O>_+URprAJYI5EyQV?l}2R-OP@my5uo2Cy^1spB{MJqESyP+k3RpB6+vO?Ss zlR6gx)iu(cWLhvyA3kCnzx7{@r&lD3_rL%B?|a|-KHvclc-X@p)(W;X{cm%Oq&)JI zBNg{|BAp^MgE*XCY4(}vH8w{hEDtR_;P{NfL7uKkm%XdJOp=+TrT(XWztEuA z_8Q6$7&vls^`U=8#{M^I=&QviHtm`D-w@U*wkt8%72_zj)5>OUH0$iu2R`tD z_qoq~KIKzB<-rera3*VCrp{vA#y`MH;Mswusza=bjLmTBc!P@YmvEWfYq6hcQpTBa zcRoN=Nd2@e?zY=*pY~~=7J*ui7^2_D%A95Cvn<+V0MclBm_iMy_mtXW?566PaP)FI z;U=fLG*SGL%{5ub)^C!|sJgy~2mHkA_Z!3b+NOU06E_!lqb@pY1C`aJ9;85x-B7=zxOSi#!QlLJ0( z(0HcFra`hX((7rrUZ?#+1Oa_l=({1QXnWM=I_ad7+A5=V|HUc7S0SItV5TFBUcZmq zTur34fH~9Pkbkd9^^-)deJ=rs@7n?T+rHiK8c%B!sg-FdRg~q^=8RI9mOe>-PgP*sr6G)XJ$~ zqojK>(5esUO7}S64hQr#{@@mMwoL@rc8}gFB}VMk-PxJ#fCCQ5@@cEdvQ0{prCt&1Ycm|_ z82vnl{0F$-el`78S}y^gL5NIcnt}PO^{A&t&fS5q7Ndnv)*DKuVf#Rn?_Aq!B6^Dd zh8u2p?|a{S#~pWEd+oJpwFabDsc!GF{x#QJbMwtN-+Jq<-6@=&5$wRgKQLu$E!XjT+CX(7~?t``7czf2w}}xXd82rWpk0vt#f*OL&h3V-Z1q*|C$WQ-1k$~ggRfN5tmmj!4I(wjf?X@Ct*yt#b2=x~wLK4e zCYI8yfRDR*wO9>F`cW!5R!$xm<>0#f8L&^(iqjhR5zy``0F9wV>G>+c$I6kbRp@`= zi{vEqik_2PHCeTayRspbxwe98u_zu+lY+|Xhs$d`NwD_7DT%OFzg=5A_T^67M+?ww z+w$6#G7V#e6mxesnk%oo^8N3B|3^OZkq>?7LveW)ZKC;Sn=6B-Ek3EZ{r21Myz|b4 zq#F`|q(Z@0PI|uKX%eHyx}KzRTg8t*x%K-m++2N7d8HpJawwTqR6+cuk;t_p0LkYH zk@wQ|NOP|OFqwW+EmY|HnO-oLX^K#glvW`2Ljpl;<%ud8RSwD7h^_ z)KtNk5+jqHjE~1pB^kF5y&}V=`=bnFW{TSOjZq0}uJvI>Dyif)Gzm{SqY;3H*Ie{9 z;tK2Mec3Y;c$I*=tX-~-!~J5s~T?d zaQ*eyw>iZ9i9y2f|I>DVG5coKdEegyJ4%8R2J@d`fWZR;1H%|&2xD;gV;k3Q8p#Je zs9LGVJ!&hpRjXD?)mDmHDV3_KCq1Zo(xcXutXS9{V<#jKd4OSb0gP~B zhgdo2civC9wEO%9$4T&g@YDNy-{-mSeeb>2+H0?Mt!w21rLw(q4;CL-MjFbO3p6q# z%o#r{{(c3fpa1;l!5bT1en=lyV>;q>sTp>$kt`3DQ`GQ=afi=CVAz8io=xBdcYsr4 zIm!wfMC+8&io>$RX@WrYnX$(-(K_k9#R)qG=MW?Z9Gshzb|5&YxsTC_tajTqZ5K%B^E7 zmF6@dfKR=$9&r8jvBw_ElK$g={Erj1uYUEb4XkgqpRdRcFBq4&flc~h4M$rDhICHR z7*WaCS{?V{=Sw29&3e-+vuaP!n4~#s91W-);JN3XORBP|>TX&a)eNcZSNU;B#^Y=q0YogjG`#^fwklMTYWZP8tQ7b4@xI{g+8Qo+P zeSNv5|5~B$3E9gBg|!-lX^nHXU#-32NsY=~0YgydC3Nfbj}YKL{r)v{U^l^}i*!HX zSj%;*D^h%tzML!=rx)ZiP)SbJy-uRmEHy=0w9IYG+UZVjuVh-}6tEQX2M>Vi@MS8& zqIjyQhaPRIO`Cv-LX(N6lLDw*X@5?xdOI1qG_xt{xe0oznDl3A|M@@v=h@t6o_VGt zC2*eN5IC-N-;udruTf+(Ya48nTr*~eU zpQ>a$(%#H}pXoh&dDAB`DFx_|jrj*H3eb6L(=ceba~Q7NW|?U@(*h@@&!VCy)3<6B z%63l3*+XPUni1@=wK~R~7I(J)Z+-vT4sdZT9K`sEQ>RhQ60_Azwzy9|`D8z@^OEk? z7+D~8V93M+==`Xm$KE9v+Dj>2QoNf-lw9>jI$Wh-s%p`zU>EH^O?3`Mrt_(%p32Qm z0lxRW?|u8*-%dXpRWpwX{RCfaV9seg)d8^AH+zV;<#SGuFW=$$iZDBi{Fz#zUbTDW zeI{qw(S)ymH6%+}@oqbDGQGcgeK|<=N|O8znuAiUhXwcJU&`Mj63Z5085%ed=Hes_oUpDT#hCc%62E`+>nHo&xf`63&^Z8-bXgXmi&nE)wWBs& zdhhWxgqW729J+3SV4{Bx#!P}wXGij#bVVBC{wh`q^ci_z0 zrkrg`9t6_rHFL zaY^vO2*BKJJuAj>OhIZex;3ea!9ob)Ntw1H#<}%ktQqz8$Mg`@V^gCE9HtHX23i;d zA?nT1n60bsIEa?zMR5mQu(~#dg563SGabNa&@b0=RNU$0+`R}8f%l0s45)a4X00I5nb;pI-l-K3;8Yz%x8XHiI{TviL7S|WilJ3%Gji3{U96~J zM~jpH6qHD+(YiZ4D0WrCB9_mYWJ*B%6(=NSX(OHN=jOk0;vxOpH(cU5oo8;lOZp9;D7-;>unVwSLaZ_GOX8Q<#Q7k@I2+oc08&rU0WH9V-Vo-yT>6FT~sFrOam;v<#=N9iwco79{{=21{Adfa>=1Jp_Lf&v7{In#w%Ec#6n(A zrRhbdjIqg{)Igmlqu2K>zD4`(J+lVhxoUIp{A$BdCQh$Al!Kuz*sNeG!)ex&V9` zf*jy(HVXI}62jU##oGK=V8l_pAnspJkc&Py+gh)-p>u2&%Nvkgt+%X}+S9RunNwJc zZH01P?S`7TK&_pHt!LzJk3Kuch$L!8gy>6y1CEvg2oy`AM(1dShM=j@0}28v7GVgt zp^qtuLaNh4*_Zp2n&G+<(nY8!>DcF2S-06Vdr|?ypvpB?56*nD7Z=h$m3$6qF03wxJnQ zg~;?uP=07*naR4auta8DtdYb8-RxYzlcbhuTqTD+)Jbm0ym^31yr~n<2TDFMI!l>bRNbd_ zHn$gX-WXSV(G+0k*A<}hb2vFH>zXYvYrE{GiCyJ4*r{e^KbrJ*H_OSkua#sIwlI{jG|qe1xvGI zhE={OtNOpMuf$`-k~fkbkbao~>G@OzB`X$J3f2-lj|RP{3wWeeU`aoZYTmHyLKB87bX0*{_5!8BGuo7%`=3j9$>6ez8gR!&k znz(Ei;)vP|(T1LqC$XjVGOqK6MBqjk1KvFJYs1Fv-YZ}Q>{*O1bGU9|2DW}SOF^!0 zY2UJEo{9M#f`LT zw!-GU-7Tx%;ae+qnJk&Lh9R4l9)jyAUnI(~>5eFB6hTdQ>OIR`y2L2Q#xwT@lMnrG zR0$JO<#)a7T|fQPKmCCZd>|R>V*=QnCUega6JQ5oW`w6!{B@%z=FCc0%@stTglk_% zvARA{)1p~WrELkl+>>I7Y`hX}yrR;4ANtUTbT;Tk`c@-p9u(^#sg@HZ17r@YW4*Nj z@-P*!8fT9qReO3#rDN}V-}{i7^zX^xN7f0|kbGhxC+_e(3n{CDvE3m7r^^@r`eO^PAuO?ssS8`c@*6 zMQM2V-g|Ec^a}>e7RDiD18Y2jt?NUz))m5HeC6R3nkBTm8|IRz_yz8#J-t(UKq@1|?F?=yeOu!2^&Y8O<`ZNW|FK8+>Pl2$)#SQgzI*33iYEJJ;75pJ+F~CN48D3at2b7#U>Oo!8lE%omB&JKy=v*T4StuYBbzU;EnEwzN%4 ze@%vZi&V66KKkgRIAao~liMC!n~Lw|Q)dID%0|AO)&|&Ow`?u5erj2Pw!tRtWX*4} zdisLy9Bv}s52|>fEe5vhmuxWHK`Pp@DvQ`Q+k-Mm4ZGKI?gW@YUoI05FVx!sb@wq; zE(4Wd*-$2xz1QzvVMaRul$c<@icn3!sGTcAs z2be06OO_Hjg&F_oAN?a30>(GNXb!LXGzv(dS>=L2t*YIX3o4c$X&Lfi%p!t9V_#`% z)*nHWycSPNs})VA@4x^4=Crr%C6j4G3gMu7s(8eB(nL7vq@X!Wq}6+I5_zeglqtwo{$F?F`k5_S|bK^U6z zkkxF}AW#}cQkdxI9?L0^)F&9DGSBsI6b|$7PZl#z@=*<+5v=9f0bP@(&@kA{mo5w6=i<%Df-^SNFB%=wd9lQr+7kjtH zoxZk0{hNJixb0RwOZ`+M9Iv{?<_suPhQwOWADL$HmSqRmidome71yHRG>-@=TGVda zZvL9ryym4Zed*0N-<)6DbGuLP)f;{7YhU}$cfRx7bI+x&tzuRu0qW*!9*WrgjyvwS z{r21Qqwv!=S`8X>&=6E@nOop2Zf~9RfBDN_{?eDegs)2DBRhaXSm(6W)+vm_xu8Zu z5Q6WD(;?+gjI#Ynf1^!lQ{AVZe)@q29zY1!p+%%pqmy26^yRHu%aIA|mu#mZm^Fr3 z$01t5-xDi8tClfZV|iGM@&=Gdq>8 z-9!6Kv)P(`;~U@j?svbN0;JoCOD{D*W%HInX|&B`9+YBh4BgqqUPsSu-0s=AWG;)C z1b}`d{r%g|O+~&3`u_#ZE-F7RE|7s$iwnUujcrg3vibl0-~avewvjh}WgfW}ju~R3 z2~fXj;aat?eB~?8Jo8LykR5G=eWo!t?d>_eBiq)aQu+CjhFMGoV(bp3Q^+)~C zv%0x$T62-c-TSAk{RwGap5@xmI-HEbFE7Z3%lpSlOZr8iM~QyILWO09>=66Y+oln! z;La}K?P!)#trnvZrU2k8S<`;bcsIpO5mMzQq%Wr18I+{|Rj+zgD%9Mj65XV2WZdrB zje(ye?)Tky-xsd0e#iu5L{#C40-cSAFPb6faZOOxCSLFt9-;du>n*|8zy9?XMJ0qz;t zxiC47;!|EsVXFoneKJAplTBZm*K0I=ZE&q(9;B{)kRH8x^VoEx$BAqL{g&&iAG%3X z*)m|PZz59V9+yb6F_2A)7vohcvBCRC2MTve7OP}Jwo}j0U=1tGO2hgfW|0T8r3Rf)Z4Yb`OR>B@TuHj7?i1H?v6a&KGrN?0Z7zZ6@_iRp5|xyk-BZB--_#7s$MKf z?FCezcJqVpEfw8-tyF8G{`T z0)6U%|8_vqBel8iH_0mxA${%z*{!~=f0R1$K1oWpuOip)eWw5_U`BdO?Ntv7b!#$W z?H4U=lEu00@+%%!I-?9tAcX))rhW5yWw*Y(Av9Cvn4uj>Q6oK86Wd}FxuXzVeU{6Uxl9|5V>wqWO%532J zN1e0=Z9Wd!f;8*ME#fEIF*ewi10QA|2Gfu=e?AOqjm08Wsda0Lm9FF=$oZqW^bR_j zC?wGI&Uv&aHRCOSTHyz;FKw}VRTbi`Zj01STE+CIH<35VF=)f-p(%i}y%S-o?79cp z_4J03LO-)_Yj1Jd{?(zMk$5bKy_%i|Yf+r!wJ_wbHIpvs>uT6J?maG(oP6Y={m%8( zSGcX?jhSqw_uil_o<*pwEWM04AWIU<@vvLVC?&2<(YKq5-F3I1k}Ca8MXj#}Y#)Fok- zGQZ%%Oe(IlLI87sVP36q%hQc6`o4fSCSJ*bf)YK38$rU?xO=fI2fsh*&%kK4ncKrY z0oe3Dn%H1{%a%00Zk1>bJJrY5m9^KryHDEfiVMfs7^{p%}yd#LX%sq>)>yZe0J4_a#55R^b zf51hVr)E3d=x%C~c)V?oYmp>!k62Qs`D9J*>IdgkF8f$0PXfl?y{Qmvy{Iflt|Re! zGJ)fdn9k&s_AmY$l5mBiSU^y=OF+=tG*+>Ekn45;rUjx^Pb*Mcdqsb3*3d$w{T%~1 zvb`I)wv>L~?PUmuq#F{ehSB`W|0!&n1A`7$v)%zqPvHBoTx`IJyAml{@(y3Lo~KOX z5F@%Cft@BRz#1xgRpNP5wMb4{5O_(Cq|8`Xl`q)`)=s^vmmS5v(85yG!^X{et(Pm! zhaOYbvy761J3K51#)>CbV{pM%-)gG26jld?K*(n!W%!zwreewa7O`LU*M_0#v`)2B z_;DIlZ<}O%(5RN_a3Juk$@~bKQC5E zXV8(X^V*dbEW*hG$sEmdYX;_aq8BK@PJ^XP4p=5XLn7&WQBEa7wR{CCF8$^4UY&r!*3a>`Yxzhn4WC|kdmhvU zd-EE3{3qYP!1Spu2ULSP?d$p_mVH~+`glX;(KlQsO%802o}9aIW!uUY`Z!5kIDr>k zbIzjJ8zUsb+zwI72B0ByF_J%$HiZeG#(h}F;*_LC*S22bsZFLYreo^qES7m2N5k37 zli`EQB>iU>5}nR;zHo#++bN76iASJBVV_^yHAc`;@cBmBk|{%vA=*~(aTXCnU5_1P z{NQV~VkI;d7@l68BtAf%F;N#=z<|{ zNzVw@hmaFAxUfd+?Xv-(Q8@>^#&vL!%S`p*arV;$-RYKbyC8X=#e&6Jli-04<#$Je z=TEiXZxWugA=Vr$QJ8_>2ELsxSalr9y}|-dBFtE=x+!3JsU}lHJX$v9e|_NC<~8=|cKs5nS>3U{6?|ndJNfw;Hc4_=0LIuR&ianZiVwhh zxj5^vninC?vub27zrWh(Z5JyN7}3KBnH@k8sNmAlaB3ZB_N>kFK;Y0m465oa=(n>V z&Qi(juB{cfF!x%RPi8~P&tElu>ns7N(nxxc9MBX%800K6zA4fbu?5bS= zsBGEnwgOEGns`d~=rvI~wzZ`G25$B_3-GE&F0ugo}EFBCxK z`y$hFnZPzDex2=K=~nko?(vp>_`@IW%+QHVSOOFm_s;PB4W=)42aPD_0+DQ`XJ->T ztq~dii$eR6yifYYg%Q)H11Mi*QrGMe(y`BIkcuMYY>=w1m*gme))%Xzhzc*Qxg`ov zVUO77bZ)oVjuLN$%X5bLKPM^Tjr0XPt0Cd9fU$-pTI!UUUnd#0Kh$XMbrQfPX(+;6 zt%EN^yDm|4-A0YZ72Cc6f&x$9Itfp8D}6+S;n#@3kWRm_yLHbKa(woT5Et5UN|Xj> zW?U)TMs1)}3z?yQgM5-H07nRP^kTPhPIXoWW^}*+tVeORdU@zh`2Gxk(w}f+uGYV! zM>8CVcm6E+e!L?9xyuT*&9KOI_O0bH8~d7AIk+b z9}Tgmw7{B%fAE7J6hK@G44fEO_<9Me)jTP;=4+~!^lEf+ofXv(o}Cmpoj4;PM#YH1 z{*YUtHafkaQPlI(L`%UEMFnyUauq=E*CDtMzaYLpLAL`)LG}J47#qkeZ)Oktbo=u%EdT-7}KRfrV9RBpRR@#O}MAXhEa3ymj6zxV$#99q= zd|P!qj0~RbUb2&UUQyE7*j}?Y3br00|J8BL_7GDHN8=7?R0&@L=!QT0vp)+?3|DX#h+;w1AW9Lyz38;H(XPqiK%-LV>V(7}lsi)%j{B?m>%}UyAR?RJpKQc2uZ(E{6*5vqon)O1df|?hKaHBDi*< z&7ofh`R>DlC^K^W?ZbT_tN(ky_j{TDG@&mJ*bKi(0hF+67~Z#OA2Lwoi4BatQ!|*`BfSLcD9UDN((CRj2 z>p?HL2~sbPF_OJ?+FCQIv%C6P;yfI6Ps*OuHzM)D0$Qc19Ko|JH35MaK^5EA0K^B4l zRTv`kFMXnbPQ8dgJMOcNqNyN~v%a+e;rIP5cdhe1FXl9RDUCR|D>(b9ubqe;)!a#1 z!Kpwr1V}tKYqVXOl_2F7@C&cb-WyI=vBx84_c1{r&W)D#ygQ!CC~4=SsE4 z<;w%>z?O*fIc=1&?Zq20Gp}HyFH@K?21Vd=1GMtIj?>NmqsEHkdme^IUC%sKvVcmS zPtU8yVip|G8u3T>t07Ak2K-y&J`ZaRA=Dzp`VwCgKz8@=c#3gFn9RLk3s$Hlf2naYUYcC(R9m>YAX9J zlT*YB(JOUE8Fb8_Z!?}zvc2ZKB+R1R^_0H3g(v_bM(ZjzJFN`zMuD%cwbJ9&Ulq*a z*0s!GIZE)-kJTLqO8V)K|MDf%osr-|XlgB$Igpb3r@aX3#cRGMcfAAn`n9mj6vInz z{TeeJkj`i#w>W)lOA2FM)K=8@)1`DI ze>vZsDnJ31nh5>Ld}R?usGwyRH2*3M)M2uE8qtjdCyrsVIHe8!uMSCJV&G%XJID&l z_GB|#xd+bo?Zw0#ECTjFuyivo8`5c_@uWn{@>~^AN&{7i8zSqV{l8hsR!beKUiJmv zm?I>-_G3pYWeWBu9u0`c<_@;DOUp`X(zK95{=ZmjpdB)nF~QL222X`oR*>*^_-{1D zqoOVTSmSh5Ar2P0H+%Osl0N`vu1+$yA4-6sPF}pxyoWlGs)!(H^prZo{T(2hfvx-o zI zpY=zK1xgt12xh)M-$YwtxiqnMCZ^axP4i!65G^?yP+1m8{YUtVC3msFX**{upNWsi z;k=(k=A6$1A%X00Un~^n4YmHlKHrkje*5oBNR7oskX?C*b~@so*4^pCopP=J*%8?f zJ^x&5Iv$s`uiG!Gk1NWpvFXZmwHQcrQP3std@{bxG??Svj4?c`My*7b-G86{IgP#I zPpse|^k4|awk`s=bKIfa>fg|5uayJLJ;axj&G{iTupb~eV<%6R6jml2Vw9x#CR~Dr zYs4qM-F){Lv+!GVrGBuvZ^OD0ZRRTbQ;^a<+kj>_sxkj6V8C6gH8pQPcaeLcD3k3S zWR|9jMw4zBhB$AIkzy;YW5vEoAVp5WO@;rFa|nSEAZK-5&2V&@OMmm(+3m>rsd@A1 z+_z@%;+NRAj7@{WbDawT!fvCBYhvsmBIqR8r5upd{7GFY53>C-%w7V3aUm!K(AibS zA!91^ZwcK6eUcm#MBTvin+fHevSNa~&DU^I$j;16jw9xB zfG7Q#hS=9JIN)~V;s(<(pbtB3Y-U6o|RW&Jj3H`o)TteE!7|#obg#rtvFf%hJ zyd{_EjzAv!nuPY&qyM4FzE2CT&vXDFqn&%tgZ$Wk9cIQ*JtA6Ebo2R1Y7YSD5>k?&OsuebIPW4e!^!8S5*`;^IJh-cl*QE2HaV6U!_-wg^)pdq6&&HBy6*-KX;z+ zN;ywA4>l8O^ukRtoXNlno~I_P$fxXSU=4scLD0+qc7KGR;Pp>~|7)rqyONeNaYej# zq(m&SEX>M~Z^}M||4C=UV*5*1!5z#+FQ&l>Pij$wBF`iAPG5cMcRAXHDe)4l>8Ls= z1sEtuWj{{h5B9L&I_%{&)Zsl4%8E58wLob7NP!8){IKf9F#7=FuzaVx#KNHn;?Aqz zLPS?*12+gpQ}6tRx&1oMy#f(8t4&lXHH1r5wzxYQKRC{T%2cHY{0yeXSh97Ti*S!}L4va| z9SMQSZkDpijpx}44z?jW3L_Dxh_6KqF zOz7COBq)rzrr&K}DvX~>7`>2woiep>2{X$C(`EY`-+s-L5qEb@6fv=OpIQv(Vj z(`v|)#^T(l@|oF^;wyPX`t#+p(v3fG!RJM_d!~^Un_QA72^4>2PT5YLyDP{hf#LAwK9YH$VdtImy>q>Y0#kOmR28tb=h z(n1rS!RAC^R%*Fu|G9(Yr9k?z>X$CDA!PD{7-eY?+D7!gRs)J?XgmzlUYRUSwbiqg zMU0H&H=7hbt9%rlB!`{IO@amHs*J0<(eD%cr#tL8&+xwTtUZR~d!6<{5llAH*s8f! z1WMKCJX~xqEg^9rDJQ6ut=ZRSz+pcZKXabaOehWaK;N!)40kto3+s?`+D@TpQ7nzU zwU1qnTfuBG2^|WAb*v>ZU06VvCB9S)5pf~z^k-k3L!9;2I$~WR_0E`|ke!0zF?l1K zwKhNgcfmOA;i6mzxrFzkaPP~ci zG$oR`8#1eutX#u%#m4_Cut>c3R31?eEK$_7q{wG+!XdTKzJK*I; zh#g)k)te`g1=hj8SYa#6IECt*QZ3OVAR??X_kJet|F#!S;I|(^Atp~1_UW&y|2gZw z5NY$R-hG$+-{7JC=ehcO(eyALDvpsg+xH20UGGg6f-(L6U@%M-vE5asTRpneJ^B5Y zAzI0s$!|T&2HLc($yh~_CK=$#r^eum(jJvmR@DH>O~%|HR_0xgZ+(x#!TNjnTKfy%&3}vBULPB3 z#>Z5~uGNjpeDsvxQJP3vPsSSeol0c$j9x>kaG!n;%T%gvTF2CNBdg1-*kYw1sY>P(Q+c^WabVo!m5uRz7!Fzv^0Xa>KDV+m@}TNcGPBl8cMv8XwbdQMlBbGlFEcr=6@VcRl_8+pr8Z>Oxl{<~~- zTWtRK?EYwv|D<;92XD8aO?3PH!!sLjv`h|Y*RjzC_eYcrz&z-L%W1;1TiosB8azLn zkV>gFcMkvJKK+mxI#z!MFK{;Y|0OQ7m&$x#Tn25H5d2^8Is4GA`}J7ld&KW@MDJrC ztLK=t#`8jZ=M9)Zl%G@y6eQ;y_)g@1O|(Va#~(crfX89Zb!g5it!$#H5%yGIUPyvH zR5mUx6x*O7^b{8$?_5<@>OU-8LBGb27H1RVkW1gsI>tCA?o^;o8g!>A7CINbx-T43 zy{pS1?D)C%1AV2U{X-8DGZ=X|qvzfIyE-X1sL!sypSsAcv+vK21df2eETT8c8|@0I z3t#o>2?hX0ran_wzJ&RF=i`|Ddl%{JzhLaeiQj@DR=#SB0%_!YS+JnKq+Fs`FW=6xwUeqzvWbT+I?&P{_i8&_1kD ztdW&s8@2hKeTiHHq+(}9(-wKZxqinuS<762!KKUEct!{rWrH4mbbh=^p(S*}`wUC! zq3I(y$mM=S0R6Ey`^r^)Lz}@71@MQzocNJwaWD^hd4f~sl?H`kg8@72F;-4Ey}-t4 z0&_}XHnDK}Iz>TCeWn=BR%*qjUO(e@M3LRhPfzlZtE%19x40~)Q%>GU zz^CgtH|h_lH!-QOsS!AY4NeD+2U>SM(MPryITfiOe z8XL&>Pro)QOsFztHETCB#a3J1$mC$R;4(qCh`Bmi9$oJ&3BZ;|0&0UC-)Gjk|3&vH zg9$`T>IuaOb-!<2Pw$i4x^Fs)gT3E`^Jf|L-fmoI=bIb_6MXD)Z{NmlRM!AgG7VVy zfGo7oPNip(2t_b(2e~(pFRhZM=48>cmv`T;G<8IOaXbV9`k#9j!4u$k5I<2^TboF>%(*DMrP<;FTnpo5kW{u z0IC8tGky?ZE)iB3s@wg`|7?aBpU^NtN!U2($ z{nz&|^CuF->tz?}Z+H{`qpTu|E+PH1fd~(@N^WEsNUTz!T>j zCN!OiP%x+oG05No%-3<9n98#`iEj*Z`e5gL`7;bOAp9@83`3=kTJ7Fn87CNeI9u+W zTtaAmKrdiNMAvvK4>cl^peakP~@RSacyTmq z9X4Kx1?L#h784x%_;amlOI<)CvF9qn?;Lc&fbhGMLqNKj{D=ok0_VXElxml&%d!P^u3yn7q0NfSNzFCxF8u=z4_k81 z%O>)^B4+XVA2150_`QyF72YKTw|$<#3|LAXc1ev>AO;R;^MKa zy_d4q;J{^#Q4IwF{9R`vAAFE(^c+mw`>(IusMDQtzyXui-3T$)nzg;*i6${>&4|^M z`#L_4NVohq&q-u8O)^3kurRc~;*7W>NnHF7CN*Nxu199Q9yvYyV}+bjnaDR=$#vlP zmm=CYfL@8P0Bn3=MIGp$8}DIRIQ1Eu-d)6feCz1j%3joGtg;Rf(jP zIzx!vO%{paBLsZMQ9(Q-zv2&F0>vvZb~{k>0C}b6$3(U3W=V5x{me-)B%Zj2_?C3F z=ZqMFSXUYQbZiQPjnwT^L<3Yw)UK|0BX)>0DMYod?GYR#t(X*!iEK})Jm)&CZ1A#{ z34GJ&9N#C+7|?YPt*j#_jVZw?4Ofs&>PFmIk-~1oK_9qI%{uPA0qf&ZoAYW8Uu%aZf_0gfFQ4>VlWi5EpJp0oUeOASKO7@N1X*Ev(CFbEJH5dCp3-#m*)Pb36efcou>q3`A~^cNaY{ zO$@i5iedE@GjQjDpJnr(+>)A#hcNY|x zJ|nb1Q%9{0vO?KWbb&^Jf38QQDO}SqO}rQuN^jtDVZZL^LhN3(^@`=iV@GS!Bb9`} zMlsi^WD-qwayC#8${hHPn8kg~@S?1oy~W}&S@fMyeYCe;A@O?dUhM`SPyRI?EJcwS z_?5&%#hAdk43)Pe@3{+?){Gm$0b<6Wkle2CB?TSL zuUmRSZmOc+KohlXW5)3NHSi{kTf=hbN4sAiSg$58t#OxK(^z|VPsY(G_W2iS=E17L zu+7oSAtoRm{3`rGFhLp}iKhK<#mY{Ce}95#3Hk1J;$4}cny7AiDlWE4n%(B`80{Ub z;WsoqkD!=O=3aU=3hlpCoK;F#Rj4RNbnWF+r=Ab-vj+XnV|C*r3K!xglAPC%RJ zq=%H!v2wujQIT(t5bs*9DcbxU+(``q)BVLo^Y$VZ2QuePU0=3NdTSxdH+y#pKFw;{ z3z>eB3r9We#UW+qd1-cVolZUm$Rwz4in|JD1+w?kflL$ab!+b?=Y%j0L(EiF4~iuZ zs#*AM;;`^v$sRfp>r=)!WkLuX3Rs@5XsUZlD2@(HgN+o%Kv%R~=h66`x|_Sg!gGV# zWx~>(XD;irrEFYW*zX3oj|`7o4CmirnB$vIt<(jk4!Ats7L)wC>kn1|6eIP!cbt{% z)V;5?9*L@HyC*nFs>Q{$IgOL!e>}*PjA7&lMoS+4sl!woi!i__CQX#>K6b5O8Ju%9 zc%NtFWtleJduBz7K;CTp2EXVUXuw*Un~mfR_~Ux==%iBVs+8I{SnZ~Fa&@ zF0**hqSQYIt_T9KiAADUEx-l(%#Meg`@^*;#fdkSH)w$eg~{cspu%kUg=J~r33wx& zKUem>6Q%fM{+1F>PfJXmBU;t#N?dBzocC8G?>=4~H$AxsdUpm@_l>LvbW1p@t}Mw_ zBFB1AYxB_h1gFNJTdZAvzqQIaSw+EavLCxpU_93ITqj2O(@ON#L8p6Gmw~vP1Nm@l z-Q8vT>?FU1kGXRK*(iz<_k0^HR|-7Fmlzi1&F~xX0?&SAm`q?4A!QD_E{mCd8ic{% zZp^G!Pz5Lv{h3e-h%snB_=Z;fqiq=JJMK;1#{fF*PC2RHC9WIfjqFvGCur~ z$AqroGcS*C%q7Yt5DrCM)_Ka&Zj`zm=)=|Mzl#R2wbYCu>jm$-YK8S0 zFseZX;M^eRD%s2>{N=~<@aJ*QdI_DVYK{~&&X6l=B*c^Fv`w~BH`AiVj&o(`iBs6R zFX@y&BM8ETW%Pp0I)N-M6)-~f`f?A;^{u#+gHHR+#G@Mfv2cc^-&CP}*kY zoM`GcH`h>um!bAJxtbNijlNhJ`k8$*{FTvncL_XP<})lK0@c&~pH?t)6O#LPF|QEo zBh2(6cQQSbS8GQ3PV0vD#R(K3FK0t_rn_s%cNexx(z;dTaFc@b&oZYs-(e;h5B3|V z#YzoOCM|p8d33G$vzB%j5(?*<4A*1L&b%%=grb15-Li)s1!}5<7$$IwOP&tv;&q;<{V_rIOYJQ|@pt#m z13amBrCq;7shZq-x4BnctP>j=r+L5MAB=HQGAy`LQ?0=5%KE1N-p?U|zw~d8QFgOq z-iqLytwVd1)q4XU8#HH)l0z&w4u!E>;r81l{k0-1Y1;gOm4p9IQJ{FE;nW4@?r&Sr z&I}C}jXYcZblVkc=Q%~Kl%o2t!r$Ro#~H@jWG);fC$o_m9z?A;;>!!c-@A}TNQO@g zxiMCqn6nfVKGmNoy$%^Yz!4)fE&vd6eoONPsi4ih;ph~Y*Qj#s_uS#XPvN%@R3?t3 z_21^du7GdY>-S10@#$daDC1!%@9Y7393`6ry%Pf&A^~n_x$W<-=RzM)_p=<|zjb6j zo`iV2gEB6@$xfiMipdP8cGu^2y`E=PX67&<3B&l$1peP#7y)>S17xj(qAH|U8a_-*tfJ=M&%h|Q z^ndMIT#XI0k}i2-O-nX~DL1H1*?uM}W>zu02vM=?pHoCLYNZ-4p{64O-OUoE_sp<< zj-o@qycBe*-rU56pKx=Vn*Ua~=pkVsl}M_+BA(;M?uL$l5z_Jy!KB4N6sk^GI1=D_H3Fy=q;={C=s6WiXe zd-%;sE~3Ubi+Q;}$}zxG<-<(i6a7XWl;5rZm5glOql$4bak?n{Q=knf2<2-MKG(p= zcG35R{`Xr8P@(~TT>ohFU&pb!Z$i-lmX-&G?jZ=Ohon4&5ijCg%+P4LE}ahSSfia^ zQ8fCg62+dN*y9)iYBSkCS=#f3qMtJ>9aUr=Oyx6hbY3)}7e}N#!d5d^BtjE#l3`LU>G^l~VLF*(pqbJiCM zq9={5P>|+5<5BHodHX;g)NeOPj?X$ta)&OV!mGCQ@BeJ?v(j8Skc6-QluqChPKeN& zNGH}9htvjGB%39jT5Levf+x%Ryp6vd#I6T4D@b4_-6 zTol7}xDcibSR&AWtWe)_S&(J$yN%MnjZ`nP=Vd?GlE6vu`bGLHz2&m9WM>VDw-F{> zqJg{uYZ5w&6Mnk5-IVhT1(XAas^zr*gN&k!g^lw#nypz8)w@L> zk&0Vb=jU0k)`U5x-uLqz`w>%xvvgsr}jM8JjOf7f> zm%XLUp;d`+s;1>{PBN*{y?k#ti(jKfjUot}ZCp!Ew&40j6MlWTcHSYedkUW@~XfL$zgbUQG9E>F=cka<2$w+G<>x z#eMRT1ySZ8ynn13w}71ba`9)W;VDmPfxs^?w>dLLn2X0uSZ&NCkVNw7LO#4SsD7WF zt$a^j;nd4Q05MU;s>+yPb2J(1!rT}Ud(xng5_d)Ww`MSP6mb$uWZ96(j7Jg)=9xVm z*SNXMJ?au2X{=@(Ia}Zb;uhMUJg&ZFiH;0-&z=)XHe(?loRDUEORekqUFO%duMe_I z*#Ej-uz5^-Dgil}rCz|haf`8e^Ll$Sav!C`n8){Q*7v{1WN5ODsR%dN`a9dqtHYkJ ziyprvQnvT5+OCMwP%sR6!JaN`l28c(uvZJ3Dr!cASmBJ*$3gN zN?H48T$r)5T7kaa`~^_f`7T)EhHfpPmSiv7lhv;W!VmU@{QAFltn{ml!3By z_s;uZeeib$NuiGPKW;1%XfahoJ!1a&{qcoPc%S?J0EEOo@03(?KWwQr520##%y@4v zEHo%fepdnwism34Q}91bbP3qCz&%g~^1#bEV8fLxVrE6_R{6qdNiKu(nKi2>$TWTU zzd8$^z~Wqd%`97gowzOOYvn=eP^#j%U)*ER?nBH}N+hP+@;+oo$ zMkY@3_-ksp;M?qI2VH@@%GuAgK9)uffz$~g*XXd3Wg0&f@uB`zD8erhB5H>l)t8Xd zG?&($cwU6PR2IG0#%e)_)zAEaZ`KEt`XW0m^9$I9V~Q#}Cc3y-6$U}Kr7dFPNbQaC zU_sEA7gX#~-TON*53?n>$!V)&XsD-rzlPLY=vvEtyIpB_;p(;UbhzDEsJLN_*`jVY zpP`B_Rs@<7LM*!(7_~O&|J}MevR#bC9zb59ISzr!HpOF3tE3pUF}`1L8Nn9#z$nj} zxumz)opf`ml6N{eI@en!JK#6#V%jsy_mGs6%xh~|y)KaXuX`b>7_e16()kSx*^7WL z)Pr^oea)C9Sa`b3FD+Yz^XqeNxPaa?e)vYY3PLU~Nv<4t?G^RdH`x^ROx^xxyYs)B ze_sOIn0j2ZbJQerqhxB+J{4ebUfD(Z|L$$H$s@|LgnqC_a;OSM2(e*5qr}OOFQhB2 zkZ1A#_>!Y?hS3lyj*dm3HrVY=fxXJ99fyZXHIqnN8iF0+^i?`uh|(rOT7-|hP}DUM zWYYMoRHV4yoXThN_L~3JURg;W#HMy`bDraIla(&E+W<8sR}p11MjacK9#)*SXnT?M zhBS?-YGi4K&AR(X3l_&JB1)FF(W42wX@zrFrOt^bA>qas!Y5~t5t1{_2?Z$_Lfz&3 z4=^PF6+P+Cbpu2q{quyd2y6i1y3->xKpQb@F1Ifrl1pVky9@7_XM(1dQ)a)3yzga9 z;UBIc6PYW_qXn4<)FfLEd+&9p5!NHv#_j;a7+Ck4EjJfAqsQeHJH+WLQ-*N@T7cbd}y4e@wCi5DIcQzZKEc;_1C&b_AGp^Py z$*z)~2MJ5lWd<=@xC;g+HpXVas#imZX!We4&s&FJ1@?zB987leaMNwWR)X?wG2P0x z>$Z%GifV1aT-!5JEPmn$;fgrTTdaVQ8-}duXV zjOnAn-L{ z#ldJ{eU=?VWVI*IJ z8&sy?AH8uaoHIo+3BpxE%NbI%3wdH4>BQvkc z!!4nfjnkQVB;N}uUz{SS+-*+O#;|s6#Vl|0RYUM73e4OSl18XpI&wP0BC__EG0#o(l@ zVn68^R8uSICr)w=ttC{zGDJsS|0zl!3t-n=LoO$}cAj!BTp{GCE>FlaZI0CWl9bNn zSrSrV(FA?_ZMo(6yYn2_znikwTd-8ML&5F1wU*`++F7cP#`Lcepnn=hp=jQuX|o}f zyqEk*szZcNiL>l`DE}sqEAH{;LoCyRF?!e#+-!#;JhOL_2Pm8vkZ)zH4stOs2L7L?edUU{Z=JHM9mPmd5 zcAB~I)vtJtV9E90f%F4}eYCypM_^O4^6EN|;LTa@!L`^tmun1gUya-x%nuK2#VU#f zIP~cn#AZJ5+ZLfLODbo-_&sg&=p)&YnIj>DD`2nL!fXn>99c(Pl(4urO_i;p`ixP-qpg#qXp=XUgDKP;50pqjM$L6kEyOWMwh;w^p#e`xLo76Uwyg zbJ4m-@^a>G6VnwW97BaBPI7mPZ)f1~rpgy^6mcbM$LYIh99<>ps+4TVxOed><{bdX z4UQCO0426NM_LAJfH3h)B(&bqqKs_}dHVO<EcgzSjS%H8X0& z3W55A^LNXR-@7)jj~grX8tTwb3`Rj}eT2w_MA7rq9ya9``tymRmQ^+ARV%*efM+48P0cSuqZ@Gz{-k7pt~)~N3|h%dSxy|Uju zBdNB51zZkxMjwHsa*K!Z`YVAVhE)t*$sc>l9yNmykD~PTNd4n~s{3;U^8IB0?UoUT zY=Cm;I<}ZK#&8EU$>Hr!vUESDx7wYR*MfVDxb1U4^&0yBRluj_7S~u2Od9$UoQuKd zYY{;&xss0twbQ@RZFOp=@O6nWyIFX!>XuF02nWEFM@1BZiEg{v@|27gs!^YMR^!xi zMs?NmdYx0EW!zuqaeuiiHVD_9uHx}OCdfZeqPXo{YKQMsh z?>qL+Jp|6*p5Og^@XbjlF)v@tSzc_zd*5-H%(~|B4`;NF#1CCTR@kfM|zAThQ0OApEYjm*cgbE0a@q zhjgk?EDbP$TfZ1dttza+XZMe(N2nZ>s2Aq_cX17-%g6=>h=6O?=x&aeb@m2%lFG3a zdoY=k%-LbWWD?&ro9wMb+8$N?RHN=Gr?S%Dzbne`@|Vo+i1C{yR}$7_wj?Mw(-X>y zgQ7$k2g6cf1jR|#K0GniEnodsY5snA!FAJ~lztX-5zx;0P zKJ;T3t@FioRogj?h}sX&N2g}YP_VO%B-;w{cDsDXvZC)3U+tM{5`sm(4+y?F)b{@6 z968t=S)8-k#r{Q@#}5e~hsy}EIrn1wa=87JAvbP@RQ(=$u1PG|-&YxTx)uqwR-B`j zp)JXP-05&3h^{60x(Ub4QQ-R2Ni)*OZu7J@^HKV^MU@3r*ElskgRW!xQPzN?JLp@Q zx^TaE@HZLKFrh-c-yEmv%~Bl2mX-y+63#VK6=wsGp&j_zl)o0Hs1`x^`MUS+Iiurj8JQRb0dKb=5y;ZD(TBK5 zYrIed?bUon6f&;zz}4lHxT=7{TG~h@%&={;r^|(5z}<@-E*IuKZ~r8M~FiTY)t}xATTJP>w{%c`i+~S8Q~e+yd=H?@z#uAQ47hJPGQ{aJYA=*D5V( zbLrJSVBW@_WKo@Ybv6^)_ac+93XW(CBUDmg)xq>V{hJ@jhkr#n%@sQ^a9~x1Dp?WL za#HY(qJ9&VYErFisy*B&@$*!if4%7Wb@=k{-4iezgX6%kjrL2GuK7J^-hWvYiB#xP zp}xQF*by@xJ z4u5Pd+}Zca!FB4NZ=_i1n0&c3E2>0d$4L}|>;M$Oo8>a3Mh(wPxe8g`#I=iO`gHZx zRy9Ubum_|In_EYLAMCcxsE%dL4?10--ye9gh=Z9L%og)6Lbe>}~D`3_2nl zhu8a3EyFFvXxyP9z>f687?r%ky~KFfj4X^BLSxiIxBH#O;RA?#+({3VhaV(J%w3~h{)Njo;_aF``w(Nx)|$C7v*G?VF`_j zm(Rp}dU!^WPz#=`+sC`m zcr9dZ7cE!cDg!dN&mcK^m{KZF63hdwXR{X7F7hPbih7LUo3CpOwF18v^7|3*_MmehJ3$xzcp@qVw2F=X3I+&vSjs=p0G zBe9xJnJF#(c7+t+i!b=_Jb1q!^}gDB9}<@MmINW?edx4j>;!A?pxwppRHqzn%2$)I^$EG8l=2VAFad zk`nvKDaXfPWlXTK@~@t2Mxv8gFEQLov-juBBP7=S$D{>ncN0L?i4SnAac^3&oFuXJ zYvaRH2Yb3P<=BdDXvM`Vnb;QxFk$kEyZ`>U_x>`%{{>WTfQQ^z?#CFx_bmbc^QJR! zDO5tvb3;E7I;7R16~A126y@LkW_G5_FoJkJA&k@;ne1|j60A&OphG;m+qxW}e|P1uTqKZJ(@7bN`4Kwh4oxKX6&ORFCA}`s;cwSX_Wo9Z_@rPcs zep=H|lO=`mkH7yJKv#gP4LTiSijin&GSnIT{q@LJ5D zt6RUNV2~JM^vZ8H5NbJsRd)2l|6Dm&3jM(q7u~+GN#yEMq50yHfYxP7JzY80&M8pZ zMmbHA2xXd$c@)f$8Y5`^d702pW|WDcAieOtNt1h+>K$}pmxY>T;;B%*uX+iTo^P8UttGTv>TnHN zvWKcd)y72wq=*JG?P;k_$b3Ma^P_#kV%b~Qy(3zagS5U3dEzA|5CZkj$;SJHduPqx zH6jeMmtutx{o={9%~>t@LkFZVb2D)PP5Sue)0*wq;QS)qv&IussV2kS-n%k~Tm@5n zw5+%0u%0p(o{``6v!6U8Uz-YDH|;0RU@mEqxqugqqtlpj0M?{7=V;EZ+P_FPx^^KT z!}BskC%P}ItAk<_3pOAvgaGs_fL`Z|s7;)K;;}jx3(Nn5Ea;X3x8otVJq|aM$RXXw zqe$3%CxexXo$e0-Rr>W8$(!pz3!&;T(I5H$ z(wh8{yZyN#!(>U}EVl#B-nytpevX+H#^;~Io8W z`rYpRr=yoDXu`q*3@qhRmBC|z)~qI_$RISXlBJWjSK*B?9*m5vvpUVp%l^iRkeW+o zs(Ge^6-Vsza2sS9kj8~1@_3khR}4&(7cB%faktiian}h~mn{p0qNmCPj{@h(+e5L<9M45;>a}fjk-PQ2Ihz(WMB{cLjzIPX!tG1EB^N{ zR#6l+eWeJ-7z&KBML@gJwvvip!`B#{hA_JOLQw!g{adtZ*58rSF;_c4fL|BBlX4jY z)aEwwsZZ0yyDvC148h2n@D5 zg1=ij4E}07!(u9*3E`BD<<9=ph{cA3t7l`rdze^a)TWuV5L!oNMi4Tw0M}Amq8sSS zO)`hG5>%rhv$uQqip++M$+F(Kl=w(brtzES5+Rh0^Gm>XZ{HWFu|YNO3!Mie2QQr5}JLAf+S?-GHb}1Y^p6d5>zvUO7 z$9O5ovkXY>s&bl(*u0hIQl0jV{rq?r0$J|2IZ}jPUIQF*xH=gKkgifP@{Z-Iu!}VjrBF)$s`itB%DNN} za$y?QyM1q2nK{a?WRc8#zdV%kXFol!J5Y6=1GzuKEA2Br$IM84F9s)7 ztku#2#RH<7M+!5?#D&8e`S+oDwB(dr^oQ*k+`Rj*JpBrmpga=Xe#VT)$3=5&Fk^`< z6~aXxPYj>)3}m1FpEci)NPaiLKlK|;&#kkAFsphvYGF;N?zo&a=CLX#4~bq#w=j9N zjmyyV1wd@Rux^z4f^{pWH|p@+84ln`PJNu_9xOGe_WMeW(0?wm0PJqMB;1gDIr*s} z9BM7^lI?N?F8uQWe;?V(l|iOsvHSgt2*#_*^}&k6=3C-+VcQ6shXp8~5j!?W-V#sk zx%qY@RVX2_i!`+s5u*r2T>q+7DWO$aFC@*HOcVIM?EQy+{!gNQYsp2s1PK2nciY?T**vDJ4E7aTCaj-rj z&1*`tdtRk4M4HL*bkvCAnpV?+6$Nk9zFhGe#cCR@5xYV6erBjwA2!H;f<;LW7q3gj z7Kg+$qu+bbCJO87nXf5JzYJa+0xwTy0OlBNJRe2h(Sw!C3w@@%wSNCj{Hh;YPba5g z>`u2zcLs7#hZy%+uFBCkY=(WK(sCXz5wVl1lI_NTch!H-|KW}Ozu&!GnBtetXy_y{ zd5QiLp})uYUn%@QM*Kg3!t}+QIKh?5iZZHrgN;*WP-C@ZU+hCK7}CQ~b5x@#2r_qo z@O1lyfN(Ut`2NRmT59?0y+yXr_9k_XSMCN$Wp# z6PWyR+*(uo1!Ll_j$C+)&M`bjv3_XmMf~Bg%){v(fs!5ey1&}|lTB5} zs=s`ls&eLJfD%=LXED_J(86Bd7;!H}8AQie#13022FqsfP4ZgB*{wlG^deb#Xe^3O zqcRWX9nJ%s z0tBWP)aL_T>USP~A5!go^+NFlcu^YXqVyre=bauOzQDnRM_TLf-r-t5@b1?xwcZ7_ zIuG=}e7FT*aNQpPc$aY;E{P`Aq6Ul%HOuY#YdHp=3Lg8@e});6vLu#V z`Ha3}8ACv5`0O9jDiKH92?re&P+nhBxslzngqv%>emm$?Fk^g}r!Rw7)68A=wB^SX zzSiF`3Hny*!=e<`@OG!pNr*qowEYVKBaAlG*w&jR$xN+(%mbFHKV56Qx5}PSqdo#t zdQw0B!(RaX@k?MG1c~YUGn1$3nGCu9XtY`p%S}73XgF@{`Ybjl?v$peUa-b=A4c|I zR}!Zo6kx{O5G|^yBv%@CH7JChu~;OgJX-ro8xH zoTY3A*Ia1fv&n=cqwRk*odr-^UE4(i#ickDD3ns%i@Uo!#ogWArMSDhytuo&QzW=k z+=^SsAHJDC0|S#8GQ{r9dCuNzkx!HmjV>eE$*InoHO-`*{b<`?=#oGc9l{?C+nmf%>MVJWf?si3%1oK#b@MD|#b{pmK(l}-BDYD}67!J|od!`G80kGF9M><`Mjc{x%S&k0rSt^;S-`Qm zhP{Ch=%^UAMrEq;!1sm5m6IAxGr zFD`ci6#*4txkTJ_clTZSvhwcoFIao;iwN6yr5xRmNC*gm0dV0zTD(Q8Z zq;EY?V#V7GlxcJr-4QomM*B`JQParjyfe{QFz2OHTk4iA7Ky1)=zL+N73a78R3MrX zU;<0v-#SmH$(Qqva%!0>P}nrtQ!SVE?oU5Q_s#1d1vLlBArObfBy-kuF{XHBfO9XYYbD-ci znbM*M7bpYC2S=Zfl)YtxXlkWecUv!e}o40{%SENcjukYb7L zbP+zoGyI1Qqdl7K;8wK{dJLq{{P7y+|F+-$o$qpDeNBN{kPyE`NtV$v$b+Vjf^TFR z^~g7ow}JM|ZZbd7puQLC&wSmdNul@hinNWERE<$$-PW-)3;aGbq5 z$M?gv{L$_`>H7$B#?EjpWPE)_s=vl*&bH}+cI(JJDP|?xK8Cj^iznEAA$j6es;6^i zE6#TkP0SJ96KH-$sNS2$I2n9l|LoZ1zi;!^{;4q1Tnf%EDqCFeCz9av@~N}o9J2IW z5@u9p4mt@`2Fug>QKxodW*3DT7t`amKNu3JO-sunY4+JHP{^$&+o6yZMza#a3g8#` zdqN>)RY6I@Y%Bq zF+$^^cHc=||FN?ROjaa?$I;ZJeHa0)+^=T{Dw$1u=)Y8$h)3S}cRCD{%jl82PCt5! zLe3E3{BTa99a}w7Dvm(j6~@}nnWJWsj7{cB)A<3>cJj4+$*HV{!VYRwF~M8WMf;7M zS+u(Bm>k!=D73Kyk8E$+sQ9wXv+uZuaY%_sLbu!35eZbmj(W5^we=(yrU;xt6@eHvMGUGa*S(XQ;HB6YUOCAI9BbKV9!gD^R#mX-Z*SZ|Lj0ypN08H7j2Z?q#n?5w*AL2 z+R^JibsZ#rJ$w7dTXle}65P_-P5;OUdyKs(Zvh`4SzkF9f_zyw9j4J)PVSUh2B4iF zlofwddY}QhOj&1W)fQJL@IX0Fv)OV+=r76WgqyL~<6NZ`S+(@X);aQxgr1Yns8ZG{ z4%LtkR5+A_6JJ(Q7w35q`l@s8R2~N+k>2L27-#Ecdc_$fTUTv>H*@Q8pu{nD_v`&D z&=poJJq3JQ17X_}U3o~%`$J&4;I~<@k361&TB|t0*bi=~Ej+Qy7sPCkVk(*28do4+ zjpH!2lZJJ{Mpe)-;>r#K}s%%EWV3ing;*TL;m?ccB@>xQ+EuY%@BA zG&*u8jVJ?zTU4;iO;^niIKaXUa#dy{L72IeWzYWVx(JfU*Ua85GC?n{ zo8Z^fn(nb##e|@r3`S9^Rs9@ccPvEcP!=|vp7NRN$YF6Ta9+k7#8)LDUkA*;KAS64 zCS2yZlu-Je!Nefj+WM2^d+nU`SS+i{12|W#Ny+v5Q42%`zIP_K`5*lF_I!Q6r1Wd- zm(&v@_=XX@cfZ7#g9Lo`NjF!laZWsPtd<%WetycHYVP{xBK#PP@z<#@fMOgZ&GW0i zu{!p5;=AE8?z;fXT-4Iulh7?on89m+V4ez9u&`N;dblqnLFIGxf}Kro`Q26G=Lyx6 z5-uK(vlBAG$|}yM{ED@XHFLWIii!W44a`SrkFi59RH=d!gg@Pq;YZ{%n<|Gsqo9qB z+c`lcZ)2opb&}yxSuC{rg*klXYGcl!E#*q8EutOX^ANWuM`bFla`Kt>HSK(&wBB%H z=Y*KbbsQ~e=$t|mnE$%Zriu>{RY_v~)b;ymbuz?4ivLD6Q2`9_Bl(=@k}4RD@?=vi z_*1^t$!SVxZVCBYd5%u6H1$LOY?u&kZKt3*TA;TwiG~B)IvI?xPL~5sf}i;q;Qi2gDu!ot1W`P{a?RqvO}V>tv!%}{cMUo z4hGJt_unplZq#?3#?`1@&s2Wvco35o-Y&SY?28m%RG=Fwg6PZdB5{jl@<038%Lc4O z_~8iBMy3ts5Yma|(xD_;dWxEX>@T8u5^IM^WS{DOc;rMoMd2l0oi@9yi{&F-$^2(o zEJXw>A`W$T*Lmb1@LDZMYfJJ$Z2A=GY$VJHsMkxP@*Lg`yxo)ig6wwy+8ag(|NVJ` zDTXlCVSVV|GdE1Z#CTlAvbq|~0kwMBw2)pqQ`Pe+V*r32fHR9_>c}@Fi!Ep(Qe*g5 z&=h0Ue!E(EJ~W=)m-w^FW!6X2aVo9rfSeIRLDz0irSDw&aTl)&zko#UZ`1+vbNsly z@6Pt6`fdhL?1|KC6r6Hf5qeadyXld+n!BV-emM?;c)+gwAr6JN5r|IVFXVP0vm9Y< zp~(yq8nS?bCzbrDi6W{1J(!8im+SE>2cfxk<42_F8A&ZdCGdaWzZQ17pD$&G$dAbF zeB??0Kamb3d!3J0JRNuj)b-gTx49z9(k{XzXI3`$GlAyq2nX(y<4;JDvjg44*r**&dTFpO`40&KHkPXyq!3&Hp{i3A0zDA z%>KfpP4C2Hd5CY!n+h-38YCp?m}&p73U~2V@>w{g(;=#yY?^4M5$**dU%a-p_tu^V z8Dbo(T2-I$j*kp2=cp2i9{E1+z7JvujgUc1D|IV(0w<2hl* z$vJ+cs&EIU^MoPUx2lr3L-Yym@7HMHI{(*aNRgxvKu=#ETyzMcG_guc|K;w&D%7Wg#)|%WCwxxeeMp=<$60NRyBK zh%-^~(rLXoLsTxZUE;qhK%;js*HYJZ-fwo8Tg|B1KAuh?Gl33}zB@hJ%yJ0KJBp|W znhNd<9Va9NMdO$&SuL&lM(-vg#nYc^1Dy=`Xi?jj(EFJj#(%Vr-1xO9;0!>tTl!!P z@Top1;q0t5%g*ZclE_O@#54|LE&iPXW7fI%YT7&D!8hPSXKPVv-DPx@h)=22IkvtZ zO80@GdtZmmmW-TJy9FZsqPPWr416Gz|20TSdrONwTHU>gp>nOKd@CQ&0+fr5(7OFr zNpxJy%Whop4cAJf|lMICP^iw8K)wBAY zJC!v@M?P9w{6mCjidCyPaWoVNFKe!Y*L(jBI_aBqdSgM>*X&LGn?@2B10Nw2cYpvUbz;7Nt?H>`NgPlb(M_Zv{6!s^cM zho-ZN=S~^C^NuGvRDB+zst60s2p&`jWXH9)bgq`DdpegyIc}4y{NZ zYf%Bnt`^&GIfF2%v`CJg6v~GD>A4+HaEoMQqb3Rue=aAVTO6HnRp((d*({b|&a$L7WtE7qdq z6%W6S2A`ui5G1q2ySJ#}A}ap$_(Lxp{)_@3!FawnlkwE;h0$K*6Z;3((R09@AWcZ< zz`V)&p-YJ{Fl$Sa1-lY28Hs#pBF8G58C{ne?C%@*h)BaN$Fbqxet&2+S8+1V+}&aw ztss{XNbz;^@w#k3df$P>!zuH8m_03aGb1nKp`?E~yH|_-P$1A&T+IsA(Um9p{6*Nr zn8Hq)Q2DbhX3E>I?aS=+D0B@jgu{C4ON>T1|S#4T#C?vcG41SG=H-pqFT=&AM|YR-%Qy<>`oN?!ms*gqwyE->OzJ z^-8?&3b0Foc7d6|KK%R_iz1_<#;N=W+2}?1EN8KX3lB-`0QbQ<%!j#~<%z^}A(DlI zzeYIxZ?pyfr@hWQ{)&l2a?)wtQ$IIFTR5!k^HlB#m_i{6(DZWSEPvKNi$|ZAld?{Q zEY8j)vWeD5+;J}+LB>34>7i}N;Jf*UwHN&7cpF#t)3j-)*^2@`Zr@2L86&T#A(>5z zKK2O`Q~Yj5MQ``99LeVSt@o6wc$D4aJQU~kFYUQ_w~at%Xw1YfoH35M1wELOiY{?K zWPvJU3L~mHnO{jy33MY!++MA>t-h}b^YptXgNp=SitPPg*QF?hk<|W79Q;!!BS%Lf z7$>i#(DBny38!1kjuEZ)&w3NzdNq5>>{E|?_J4Re{gY9bJ$|l%HXX?!HeQJe$?hj; zv9TEq%u(Li=Hx0Em@HgrhniGHkoayiFR-_f$pp0w1eDZ_GxW@w6 z*D~;3o>^@n$ewW+ZRR9awEo>6IZ2g- zIV!`yrj{!S@RLV26pi|xL>C>loY?tn6Q|ANO(qpW+U}Q%-oiA?o62=tq>U-iO}~iN z@5+?TX)i>|XYBH11*KQcSaXx$89XJwBnP+Ntpe4{LglmPmwHyZhHFNGxNN)$_hf7!#Tn_Q4OG-voXA^(tFrlbKjNH4>+evUhGc~%PiT=yFTl)Hj0U7qoYM#iUMjq$p^gMm=u~$+Le%1>)=)@FoUZ# zZxd4sEo>VI1P3i>I-G@9HP#r`SoIzn(n^|QH0=}Li=SCEj;e;b>u*n1o$YwJ9#T=P z=I5SxO2&+L{IpXyvnQ(y&3R-#1L4KsiK?m9uuY_o-GF3{Q~AYkTzlQ6=`dHZRuynF zODFe4flhw$zi%2fwpT>5x)1A`t!WyNs|~m}L^>g}EaqE{g^t`T*eMK2OlGT1uJ0%6 zn`J+X2pq%g-nyBefHD2wqAQL1FTOk7UV|dkduLI{z05=jepTAASi%wbc+E30B~iv` zkbaT2l(+Ze(_+BhDU8~AaFp_16o!^|&;0cF}x0rQyWeI$si5 zK{`KVv5aq%lb!d%VS3B~>Ur&(80fK*S<9jf$CK?2fcy1olJDXy%#x0l#DDi%O3G!S zH)m#Ap1EMwj(1+`TMD9~T?){@Nlg0~lD^RT|E+cL+qvIko7?vG3BXI=jVis}x7XH3 zJW5h$=;q_`l!F?Xp^ffV$EF!;ay>gkRkQQE=t-G9TA-Z3Pp)Fd?f%##&2Woi2Bszf zm)C^Ev-z$Kpn0_*+_0SXi|wHr#H*MNLw6viAqp$z6gs+Aa0``h&);L;*Veq0y1tZ6 z$shqOOQd*NwC%i_(x&m^d9i5DYVU=mv&Ut!BZ!UGnsFlRA*E6+C|1}N5Zy>P466;M z23aS@BBLgX+KIJ9eU@ZBot!6o2rsQ=n*q23Y_WFUOyK7IQaTOxxN_w5W$q8|huv+6 zRhW+Iu>3v+W`ExKd-0d0oPIvz7^e^eWeFVsEXSMrY9gGOhD}nmWYR46W92l829>~s z(3ik_L5}0zUf|4UqdFVPfH+M>|44o0+@_ta9OMBYXpa=4ha=Q(gqnd7@KN`t<+3=a zzGL>1be?^Pv$iSOq2^M@qAFZME{vOYK>DE!01(Dk-*3y4&wP$Q{z;@E9*Y*Vwvd#8 zE2$yOreI4#+$3*8ug@3?5Ym!58Bk2&P#($qvU}+kc$JoNWqR*}o-qdJ2wtOQwxSkf z&^&wf5khI`jC!ACH*NIUyP8?ZqPINUmaR?~Hz$m6AukL5FP4LWWwyv;lxHj9D6KQ~ zY+IGxB0)>eq%&*l`y0DftSImfb+&N@`DW2k9nJFGnz*R0f?L3gc!ljhmTzr*2+=WwK;l<2*I4 zP{1p~n4iR_JfnYs+}gkD=+iCyu1SvL#^g45fpWnT&o?5IJDbTsN*&Y<%d>=AKTF1h zsK)Wl6geHv`fMXS)e1kZkv!CRehfuppkqcg=2YBAz;7~4y4E1_8snkIR~#*tz0a)} z_yUP{$cs#l`iV=^;B&FJx4%=$nr;ce0!lDB(u2lPW2XdqI;h16Bj=-P3RYwDRF%!Lf-;py+bKPD^I`v z7q%8bZ!h=GdGh-=AO0>*@25yK?VkhTDfKmxeVxZv2v%F6fGF)yU2$v+Ko(qBz1dIA zNcfDiIiLR29>HOPSd{%bKhnWB1pY#fuKEbv9-;zg!k}q4wmpPA$cOWfE%E(mcg{**>j~#;AbF7t zzU#or%ixgS+(32;`l?@`Gbhc`zq2}$amM=*nP5%4tA$kSi#8&c4nq-mIgCL51%-pB zss5bo`Plm+yWTO?s`1cO(eYy33+EtsAY=@TKOi@GX|6wN42vF2%1GvgCK>4ArM_E z=OYzrrgA`Y`D$qyKFa2qDOOzAscg79{Bcyhc|d@)Yj8~Vu(nb2#9vip za?mCex}?m>VdK)3I=%i`dhhaHOM~3n?UcijU3z(i6nyc>f*U4Ub>|3;OCPW-DxQpq zOrA@4(Od%Y{M>r0iS*AsFA-iDG`85wnc+%saVM7mGFwg5pU+Hqi+twW!Ab>Fv;cbI z{(RB#n|v$aT9nqGo|Unrd!1yVel;}8W?CtHYLT_X|E!zYYo2dyM#tDxYhb~nC$?(1 zv}C9ESqJQcJ_ECQ`b6YWzLBr{xwVB{0JxCS|^2l~9STkSO*z05P;h=sKki^fCTx zPf|Uyc?0EGCBFZAY!x`hl7~XMG5VoqUKU9odh&TsV3P}0v9k@)QWABaCGQzUa`oe5 zP^=4)hA6Bc%Z!n~kgtxTFo#w&DF5B)HtjIWb`w6F7cn}8wY+sPunEoOTc1R3#1MWf zjIgK)Zb{<`BEm>`0r02fkg(sTA`xJwP>d=crsIfxAaz8E{u_?x_izmbY$TD@b&p($ z;G5aHcck(k`+Q6CU%UlLu4amEE~cMl7eCB&gmTNgwQ}ejHGNk8e!!iJ zFY7e(^lYn$X0AQ_Y*y)-J;;5zhgIaroDtK@t{eK&@S9ZU&ob4m{||qEf2*m_OcSwe zsRxtfJ*$3iptgNyoI_~((1x191Lmj{ZhHSm7J*xq&Ei*c6>#s`rTx-FBlrFjHwN09 zh@w<78TNjjg>YdQ`l7hlcexWKH018MEuq??WfBDCu?SW4%p^%xI|qqGn`t*nnn==P zrC!Z%uh(uhO|aTW{bm=wP}Vg2)vaFE=|M zlk(oke4ik?MpT#y=P&K;GSwDP>T4`~=OOs}lZhxSq#RL>8s*J(Y6>ElkkeL$brUMw z(`rpgHo~B;TXU0zL1M9V;H!qxQ@AJ*C+RX>I8ttkXs_Nz$NqBz~}xYJLI80?j`Ht0KkQiuVWhki^E zHE%3nyl8GbQSQZn44eF_%}7cwC%4aPaFD$nPI-gJ_WG}JI}a}3ma`os6%d|Mz@XJP zkXLB-8wk^3RjdTzZ8Jwn&qGe@dJ8CVkoeI=|5!)L#rO1sr>>UQ4@=VYtat^$&$E!S zlPw!!M<6THGT_y;^pj>2_Q`Ihx}m9z$ug%`lP2Cp{4&+?xwfp9gM(z5#mb-WK&#dO zdP}oPoWakFHRGi$`H@|J%BxBh1Q^S);?3$lAL=XHP>#e}AL@{i)Z6HXp0BoGYky<_ky4|6QW%6x}>4s z?Ruu}3_LZDb}IurE3MZ3`XzHtg$`}aAHLXG{n+>LBq8vELAaq*RMNK^hQVY;H`<{Q zt?9U|kM<2V9lE?3>y72<)x0{%TS?|fkogZJd>d-K(0^IDZxnp4fd7a89Ri{aDCK|J z2|nqAEZNo<2;3HAaoG5!ioZ%!KUmjx1LI%X8|!=7i&B-;Jy>xs+cw0iB2X=>#oT2y zIkZhgL*7xkIN3Gas0`M0yv$yLWA-2$f68dAhf@*~rXq60THQlM!K~vm9=Cqlk?NdW z;wmMjlx)EA|Ed)LEy3s+vHi_`$H9B&;l*psTXWc%@@@x^k)hZ2>(*l~gg6em^7luY zlV|G(7W{Mx`OkkWpEa$rbTM5qs(rA6>|7|GUWW*d(6ma@R(XEpE+0?dryewh{Wq~j z9Hs!zW8d=KUj0rM3h0*uW_jCq>;;2}yQzbU*l{zBuu?lb4V%?PRBlL;!J zV21JJmmiP^B-r4LSBnoM7Y8ZrP#sq$nLUab6sQYMM-n{u_V~F5#qihnMrPiA>0aSi zH_q@Y7y$mq!TL1Afb-}{P~p3s6-M?2fVUcpTNj+1+JSx8hV~3Kgk|#3nB~U$A;>00H9W1P4~Jk@gQAjT?*mJ z&*khKu!2+DJ6PLQxnG)^ax7rj95@93hLkAup_7)2$^xhzCOyt1 z0xy5!%w7eq1JRn&bLO9!eJw|5pP|Y$CNtl4n&GGMnZ(~}#Lkm#U|+klkO-hjg<}`s zxBP=8-PhCI$`QkpOu|yu1x0h2cEIvbU!k`eSJ`{iMTu}RY>2SJ-w$#{Yk^YUUn8sq zp78dr;G3+foj4rP%zU5G?1;|pZTCJ2RRu}u2l=gLX`kjMJ%Z=%X`@n5tr)$XY3DS` z-iYdId*8jH=KO_v!VOsD7D&by-P}k^K52UCdKPEMztef`JQp1BE~!{a ze%FskrBS3;Y?mc{p*LHw!6T53ieFFq+>}oJ>2_QF;k_7KeWtNxJaPS*hZUt8@D-3+ z#m^dhs6r!zw-7Qk=J22V)By*D?u9p@70n6euK<=9umDw`Ft@qLHu1Wu_QaG_=G@ml z(Bd0U>2Ky=^v^ZD{)q2>Z?H9qyx$@ee!jCA^4G>8UBiig+5gpRS^dI2jL2!gdULGJ zouB2swfqqWg)oJdH@%XIi^-&{9M__H3V*t5$Y=ImhcZ$Df^6iVc6eYM&`U^iE){~< zLF;sil+zD+2$DUc>2D_6AN_s9`~Zvdu%tP2WCFMCN?0is>-Zd1&uZzkwYH&8!5py1 zfrV516Th2*)z3p^)H6U;6{%|6aw%QP03MN`HP$S#%6||56?wb;PoYUIy+Z-&4)4dy z51v1;QB4lYYfY`wRart1;a<>T+Z{bCO;8>J-s|%(! z=5WtFF+5+MUQxV|i{tjLy1%KX8#Ssyc)c-jxWfpv{rswehA@$e=I{T>nzSMMdW5Fx zJ2pv0s*u2UvVD6k1M_~Tw@UzrL7@FQ7hYOSC8A-2R-b6VbRA+SGb<*0c3ia zZ|5?EZlB=9E|LCB??zDO9>bu=Kv5@+r71}d;S34c(oG!MGzFCLobLGrcJv=kE8$D? zmeD?b*Iv(rjK0e_kPXP(E_5Mg=)b{#zp-I)drmuaAmqp#)sw8uy{IIn4n3}PrG*$? z%#CU@9*_Tu{Q2^g-8l}yCU^a$>S zoWk=+MCT|*LzNu}_DKr`Li{3sqB8*iIN?&FLaM<^y7`i+U3cr_qmLGAR3x)$9<~tEyA9gvhftT&=17^a9fF#4bWZ%wghMfux_z z`)q51qCJZ-*@(=>Y=tU-)Ntst;rU0mLx^UG3ayW4F1TGK3Xktu^OdiOHcC&YxL~aZ za;NFcGLNmR8-~j3EWb&utVzePs)V&rN7ypOh*DaTqcc-d&n~SN>IQYFiFAE}1=vEP zhk@+R;{*7rs}4Oq6*KbW4bO*&Ca8_}C7bUO1jMdQetcd3BlQS-yJ=P=0Y7*H>e-AKkq%V;qNSNj?9jsJuV{=+2)LP z#aH2*<#IHWLzmi7{ZOkrW%97xOlZ~E88pe~9@ZB73BV(>T;$#+&SZR23?+DnylAw< zT5>9RIu=nNjO~gb{zwd^PMCn*j65!tnByK`$ncCG7(oB4(GEa1WdRLF2!=9guyYDO z3*KbGc(m4bbZbdbJn|NyI{Ci-$Q{ca#SNo1axO^|l5nXo<*;GOV4QS?CTEY{gsZ!o zf>^a)XKk02_TS%OH$<6BHWpt; zj-p&@ZXzdHyvxuZ99Q1?M5FAT!f}H&JWd8vfQK zz{MSQUBC-q*J1vAAPF6~tFr~1RTcDQ!itUT`AZT#(9Eqk-nECoErZ~|SsM`2X<7<2 zKXYS-k7FDKiqs7R_MRzqsdGOV@deHtZc%dI@@}vEOa7Xz$4B5#oUpotZaH5PdA*di z`#a(O*Ejtzf910$8BNHU`dL2UEl=W`?;T{Orm_hg{@WBmWX6kCvMt)}k}Nq?4_6I4 zM9;elg!A`S^1{3>`Z9JrbNl$(Jwrh1$(9V>R45KHPnlZaJ`Gs>h8h z!*3n`G;&difI7xvhO{;5`)N=Ub4Gs_c!hrE+;G#h%H!YJK5J!TT&_lLz)R>C>}$#_ z<=pUWKYxZj*7i7XiXxyvcD<|p>G7#mQFEXpx?Pylz7-kImb4U5?1u55iEao|w~jzt z^ezgn3V($Z!v?%&Z)29|y9_3{7IIqpQuHUbh}eUzl*4;Ab|7beO*aarKc*hE!gA3B zS@y9J9iMKp<;&D{a0ckTf2Cco{N{0SBN~+xC-;p$l&}dFe_GO97iWh@bv~w&vT_8o zQW=n^QWJ=b+JbGi%_0$7@8a_s%Y|AZ5;=NyhuJ`vot`73-zy* zi=X)K<#OlleWm9AU@x}))GZ974C@$IcueWxoG^0I7{*S(AFA{1bT4CPN8{W(=bc)~ zU=Q;R%_DE*7Czj64U$76Kdn^GQP-cc{N~Q!Q&DPlR4bbh<13E`F;q|ixXk7;dLF*yM#L?HOoVKlCduRytoO6&vr8r)h47l# zqsH9eqVZO(dJw8q?Vjj2SVCf?dwu9qUeD4xG`$LGO}S4Qzv9AD7~7x6r4f*?k=44J zj_K_h%IRS(I8Qk4!q(fsmoIGSqysFi&|)2T=;N2tz{@P2W#*aKxm1 z8^QFytKbQnFE-Udck+nUvGvo;3i3BZGw0BQAuyQYBA|(Fz22Dv*3zQn@6XSWE!_m? zgs6Y#jkC}sEfLcQ8IEUj*EeTj#BGp8Ww8IhVZ6X_u|fcO2Ds;CLima_oNxF1-l^ec zM#QyMvQqsrAMJ3JZyt52S-j9hl#d7-)i(zdLXiFOJ}ZTHS$QN{_=3q$if*fbYp3Om@feeZXTgz|vu~bpELdCY?@$!G*@y)VGm50mMu~?E?_iZ( zEn;0>ZxU=XWt(CbN#nt*h&VRT@NjkxlC=C@t(xLDU*I3OGg-C<8KOMAY0{8%;iC800fm82428$7s}(}_nz{f8Ay zMh0$|+1KcOQLD2;)SPi9P5xt3u1nWx!VhVHd@wyBNI}L&jPI$$^F!KOyQA?v#h*ZP zmUB=`_0(wH#OK-Jw6XBS7&z~ziei@%CQSU?=(q%xdM7MY>2*R@AtL- zx>q#El_7CeQEzil!=03VD}U7hfkU(Nogg|Nm(-Zg{uK8J=-byjff_UGG>3&8bNe`43tfDzAx9i&h&M?8}eax zt2+zY1-cjqg!r3))x?Yx7X8182?{qv{VU5@TbMjQHVzLW38>m#qu?uBkLHiM5XE+d zDX^Qm3}E93W(TG2K^%@!cLI?3f$z&go*mK;&`4hMDYTrH(g;W0BJ+uYtJ?g3O*;F9 z?$`!C;IkzWC>KSn&;u2uXQ}BHak+GN$*Zhi3N|gMzJ_$?sTR4JWGF94<5_xcL0N6m z4_Hlu3vCt(-tVqm1e1=J(oMwqFPW?u)3@9&IJRuLv1@Kr?lQFy&Zy~6^ZcE?px9?~ z5_32sIy7NdXpH9}n&LD`OG#n#$U2~hf+4)Dy?!7=C*Q~^%Gz97ByuN$A(Tq`BpNUX z#==vsK{V#IO18xA=l=r3%eC;t9y^d}m`U%sf-U^%#<^CmNQ=OU0;*F;;>{bw6SDY! z{getPZn$%Z@nj}QNsSL;Myl}il2j^5Qnwu_cP54IB3)K2i@GUMOzRmfh0_6V3bWEX~!PSin(k1lZMLHryj zIS@MHYfwJB1k;cvDc6Km5}EV9Mjqg|qfLBGJ$({&z`YXg>H$QuO|abDVI9<}stz2^j{**|85DikSxw? za&6C-wN*i%^E)^G_BtlPpGd&_c0DMimI*8kFu3b4F6-R?2$kFT&)05Lc?xw>xmx`3 za#l`wPLk?dSmStbmCtJ7k&;AV-eq< zeW`^NdR`gGHIazSj!z7K>`boJOqh4rI?pQbBgt34jKo?`w!qcB5 z01N=V>1hqGI91ARG>3xEt7COeeG7sEUf;yiS{+V122c9;tVK=L->aTdjYbno|6otK zhq!K58ezWT2L4GA{FrHrl;yW+kpJ2htkXjVNTZ zb@_?k7ev+1JRd#uvP+56Z^R^%PGC%_e!7USmQFPqL@{LYxjjna@zQ^7CXxasJ#FP7 zME2eF1B+7>p1w%Tat^=CCeGBYg`yYA2SgcXb`z_oq8mLk!;B$`OrUEnyKz$ z>_zl^7A(4Vx2v^Bb%4P{x<*n?176Ja!McgP%(C-Wi^&{jZaeb~?Oy4%`4x;42WbD( z7-YMc@+T~nN1}wbV}alw@%mpSsv3M$*65&%x+^`vHvU&rsn$Ph6N%)|UEcmtZ8Aty?m8!2$r&Z*roJqAK%z?UmQ))3exquP=UhPI6r;MY-tky0l zQH?T*iVN&TuvOno{LB;?(;|k2pTr&%>|_{>-A9JF;g%Y?FOPF0f*MDOW+$Ald4TO^ zAPPlL{NN2a9xaFQtK@j6;sd2eHxVO0|0v^d-ksmQuaZaz0YwN|URQ@vL=|RK)4xZB z4u8!GCwQXx1?~08qh6i(DcE2_G46&Z9l z2y$`&U2qV=`qDO>rwW?SvwkV>9&Zf=wMP8I2Qns?!A>%=*(0F?qRzX$okfoRB%%JW*49!|D$v47d<%eC7!#v)a4obyeWIHWpU zy0p3zDS5w5^^(xdu>p;!@DdoNTezXFn1f0?+-K;@l zCQgSN-2DLI`@vvN;rdcX+kL5*W?h;5pBJnKO%~?P3}iPELRX7FD?~{8f34)^&f<89OZA6{8mnM}Y${#wjk;Nb%R}4XVFA}v8!PHQEc78{ z<%(S#GPjLcE3`0j_4vsP-yuw2vch(W*y5+D_2^re*UQ4CKuA=) zZbpg_j+&pplbZ{gAwY>tKZXfgZE>s2X#I7O&4g<(JkDJAkiTDpFD0d78dB$gWWb`u z(qTo{QJB*P#E%e*L>S7f_NKPL4OOM9{bEI=lp|~ncS<^3@HG-nw;}~!MdZUw2%v*O$IKg4a2A#o7CYA`ea4tY?2zB8FpKxM1;N zT;J&NeQjRW^S)owfXu_bl@3m*&wXL|UcEx@ou@l_O*tXu505SExz$kIhSdp0b$N0w zOtAAqmn)OaWS!<|uD3-!auVw$>|<7v_kLFv^B>quMN0uri8_>4BI@e=LPhIG5w{7e zL~hAzD3aYWfPeg3(B{#-eA~arDCk=8qm7oFahcW_`c-C98tn2C zE@|zPbQ9#!)|2vitEt+q8)>Hpptk)7yW76!nPR5atsP{0y+?W0HrQ11$=?|?F=E*U zIT&~_|5|U`V-CuUqr0bm6krzrYX1d0iNOce{b~yYNw%-{>G^~1)AYQkVFj5&!4A6C zu2s9g_u zKd}Pj(smk;4kAhd857NjWzb+4IcZ?hX~8dNiV0)T)@Px2Zv3W4#80;{3K_EuTZ5VMIq58D9Eo+00d~rj|Fsr zp8!Ar;A7_Nu~yan_Q_NPI{2`N8>o7KnDfY@k)K?fdEMM=$FG$@@{Y?|~@4y&)^rNlNfC=&8m2wdLw5_UftT>V;wJs8ir=P~hz& zfeOB`cpHm*L$LRoee^;5_6q63tTDdtG5SI3qXSrso#zd=vjX6%#u;wN;z40EZb6>s zBAR7pC+7psl_g3}J&(M5AH92D zJA1Rrz-gczSh@Ijc7Vwn5o16}}s?usv$0JB2_OC|3(V{0hbjeh{JRE}s8CJbz1+ zt>=t9$QPtFZjj5He0B4KKYSak{}62ck0f_8i}ws7<7=KZqI~8}G8v#t-87!{{3%Gg)tM|Fz{4S8<$Ol^*!W6rO z?7jDYJe|HDBZ3c@!G~Gy{o@|ld#|s5K&7tS{f^v8BJ^LI^^GZH_sjfF%hJi#_u6kW z-B3g^bE+Z^HuL|7$Kz4lKO#bm;vn!Ltt*F5cdAndo0@9J>(I;U)BfDxc4k@ z-41;`{_X?kgtr^R00@cxcBKO1ZN<67c%2D;X2k*tJOty>1#2=>_B?+Qxc;OV%sL8m zHUQuEzH3w@^*UXn|3=;kMGOA*%xgZ??<~yd^(QL-N`|rfE(n={^C;Unx8qwECj^w{ z34hvqGeKM1{jfIs+BN%{$oQOC``S?(?CBx8F}wr25Fnjz`92ia`(QB!=o%;c3k6^6 zIf}+&iw~Fxe$OAMT}9Ko<_yR2dI8#lfF3-N2Y(pm8a2!FKq*j9XQ@z6pm9J~EEKNU zzN1e9tnjwLgRuZ^?|s{sK8YcK4IZfooCm}%fpULqkJ1-6*e84A?*Hh%eP81)w1NKe zTi|Us?i`-+vg3?_8q%+}OHAa4Y~Vr+V@gaLU9O)T+Ah_CNW0LM>p5H@-`*ANKu zcIKEukNl1L)QWi9^R=_Y&+m6$s6YmpcW3Yz#iuTar}%&=-|`_j#?0^k05d_%zAW{> z?+2U*55TPa1ScU6D18~ckTm&e9>8}cg{VQcfq*!tZ}^69_|h-^QjX-h>#l8*fCu!XA78 z>i^5X{L94uAN;`|@Lk9kdO{#F4d{VAQ6&A)e#o>;m@Q&A;1fRl#{GEH(cm@Y#QTbW zH;vE#?1@93_a@=7pc>9FHGlCMGfFdTf(%He@68?|8m%SJF)7UODLq!%TN zVUIW}&VVE5oH!Nk0UrI_=RWt@`@xIP{LIhfofp3Fg`6Lf3_^h@`3lp88r)f)#lQR- zkMWNiJwSq6@ejdxAv=;3%uq!L z8PDf`?ZhGJEBhz)C;QuE832il`UD3ulRy2_KSjX9nUFh^Jx_e_|8N=w%JuBxI`Ildm2cT&t#LU!iJQXiH z_J!v$OBE-6f!BN`^@(lbv>-ALp353p^|_z>xt^0p#j$Z(93hiIMlv7Hj42_2`7RSf z=CR}a>z%t?0@1hQznnOD2l9eepniT9g8P>J;004kRMmDA1Ea7!@P6&%$E0@gNn60kZ#GW_!G(Jp zQ<$fF#l~j-?U1z?qv$_qBkU1U87YFWWUu)ePvRL|CG3JSAa#o0WkOIqWSx@7`#hCr zGlRG72QO5gU;{qDGMEP^$|F25Bo^urwEji=!3((J%f9T(cppN6Vju`U%)Gs1__{0y zDRk}5OF#yY%IA2^etg@0@aTo~r`*l-ROl|IrxMGPPxe73au@m8Q!6E%j@RWpv2{(;%EOB64^4esT^-z85(U9W5`NW~ze3q7scQ^aU%vE94=y+2bv}xo3aZJu+rFqOW zIi|WL-RnqL40lB-KceGH9!LY^wYn_d;zy?bgZM}4L-*J12dB(!z_oy6;bVNB??O`0 z3g-o(L-EkPBHx4N>^Qijsa_C{TfJWs-zzR(T=tcAS3Ho``V&Xv$M>U6WAGVY_{lCh z831Ne&a(3zgbKDNqAkHlxzeiUyJ?Bu!)z2g51An>PzZPK6axvt#vwo0plkq07TSfB z|6)Jbm&_m;jveF$vVm=aRoFGTU@HGKc~vEIxp-r; zJGtH_spZ~DzfZ+~^@&3&RO6S^cpRI>v!?HYIdk@J*$>&?Tb0jb2=PTGAh9-7%yiLu zDRl)glK0a6^w_?BKfeEH_-j0Z9g_{D7%7k6XT7WxZA$&;^FROd75~sZ)Q@!IUyhjf z5pbM6Pt?hQ@Zx^vbh_j@!9+fP;>cLFPH>2fJxTC;{Vt+sT3>n&Sk9ch7GvA>`Y~MT zV(=^s(8#&6=uTM<-pr60zoy5MiD`zRSwQ;OmTcFKYmt57#zg#cbs{0yAU?`Gpfi@O z+ck;KYej84eE@0RA*8NZo;7_nI zQ_=@tEaH3i)W5KSf8|Y$ITp)WFe=i2koSszulLCS z@CkF^r&uY=gucDEIa&TiPN}jg@>wb8#bR~RcjM`PNbtwuYMXP7izoVZ`=PR`PhvVM zbhRb*V6%LnQ~C7tJ^JZ-nwMmMQbt7m2!0G9=$x%U;oq@k$c!)C4^(h?0zHH^a3nkc zR)hQ54)#U!A|hZ+*$;b2{V0)tvma`cT2UI%YC(z5q>a0j3Hh1F&Si&iS&L$T*pt#d@;ca=Pau zxTL;YJ&i6mT;r<1sGQ)c8wr9wpAA;@!<)ZILS#_vPpwAcHms?aPj|dlll!JjRP*7u zk^N9Vn}DMD%Kg|OHXwT6V*7Z_hnN$G#5#Gr!Qi|)nis#dAKBv?%FsGeAJYHZ{V;k0 zSLBYJ(UUx1(}|vcK#I?6_UlI@-L6YOTQECJnqZezxVJYzgZCHl&yTRVJXB}1HybnO z-h0=6cmeW0o4`!;>gwW@-!!Q^QT3c8;#74!B!^+(~b;jtMBpqEEBTk zXo~=#0wMA>f*HI<*Hy*klgx@aKw<2mzC~lSGcKzFog&d)-E|k~GlBeRSyp)$+6u`% zr!z-@sQtSACe;#W6tG-T`HyVN`*`MC-3vzJT3_OFFYDMRU$7128t0Z z!E9I+UuF^tMHS*4w-P8j#g;+V$VG?)T1Vt}11!OF9YI=A>2T5dr1IZ58Z&OP1Wk_9 zg0eUba-{_=!xPf;!v?Wat(2!g3SN3rKTFUAaxL6}e1K{2XpR9o(5~v9QMuZhxihwv zrkjVv8_#i&>}EE{G%fV5dWbLphpJ9n6pX=ZxZ)MBcm+o+19-SvJ4UHI-&7slxNdAB zzbukSKU*skOZoEZ&2WEsdRZrG;S64&l=D6xV>$e|_L%u5?1oa(YhSe!4q-EOqWEb2 z8C@f4p>nC>ALWNS9%8Y0mWwkl!jsS zKajW z_#u65dY2;uFm0a87x@K_U$26$eKRTYa>i*0CsT>iaTg0`2F@2lQ~H|;9hv(w08dQ3 zaju;1OZVgR_5+sS&EhIX75Q0yU-HT&pQ@8A>s40B9MwSvZ& zC%np3)kAoJ4#J=KB)_&ez6*X&@z0c)2@}wp>27z2c+;vH`7x#kkMUfjK%2vhU4Pa% zkRy4)e|eKXc_pc>Itp_j9@sA^(tt725fUjZ2i+h(wSA+0FIMH8`|jNWaqCevKcvxr zw+wKc8IW#pFdDF!p)QRt@(cW$`rc%K>C}n=ST76VD}0wGYJrpT8fx<{kdZhmCvkL{=(|m2sH%4_oR(SM>N$b4j3BJ=)y> zQuwryApOtX4_@r}L`o!|kUQ0dm_2W@LLG$?jk_R|u|aGW(}FG`aWgbj81#OsF`G96 z^>?ma`UW`olMHa&@J=|GHzEV1EgVdXnAt(vpt;+1(s{)(H-3C!fNlU?x-dC^;?iRR zoCLIJ0s@Ea{aK1z`J|l6!T{yT=;F}A)8=91z+O@eQvDYOmT zhhOH=Oe5K(xO78ID~hP129VfAwnU1(KOr4x7UaA!AfQ=3t1B!HXSRU?AN{ z3LnafLOJ7K^fSK3GG2K!WDHiw=XoSw=R`S3XjJ9FEFiPS(H6|d=t9@SZCXpIf;u8* zOnbV6dcW+WgA8EcBgc88NTOl?0{3w5q#O(r~8lxCnZGnk?t#GpS#H z3xu>K{cEnd=6U8WWDFLdKSArE3yZI?^*oQ`^I;!}1@O39s7xRK{_+Zf+43g#uCQl~$cKf#TBo}Zlz zz}6u?4l;mObMAy0>70R{Hyn-XX|(U>&35n-$TM?LU2&A~my={htQSUF{PcP2)r1?V z{s(2h)PGR$n}Ye7`vDK|j;UxdfM)uP29*6}YJ&`5s7JQ!nzbfT8epT$lQs1ifzC8| z91mpzOk+38H8K>Kw<*dqozNE!Uc(je0Ef+Hv3(p82WbTvJb;)qYaCj!Ww3&84^pnH)im<(p2WFXkTuz_ zB$bxTynO!ipDzPAcnwz=s8$7ASy58mO2U|D8tZV7W@eo(C{ghihg4VC%RS-Crbnq`4*Uo|4%vCV z8cEcFHtk>;pxasXv?8z49%pG~5uX`~I%orwebo5gG4cV-vHeW0o|Gs>`}F6`pDhEeDITa$P@^$in`p-5MV!D8)`CBr5JRk#1(sx9Ez0Po<9cnH4|9 zk8@6D;X?|_zjz==knTB^?->i**0?m2nasFdTCzW)Uvj4##ck%EEWw1W6%hkWLf5=8 zUBH!28&_dp+^zA_G1Q-9hFSasv6+X)Llys$@~lSEd8iUm(pT5rQj#9SaPA%xIugIn zgCJ?h7}CFTKXzWSmF+3dW>)Rwf!Kim!nmx5kBQg77 zkRpo~AG`tj&BDN$hK>?%BDgIN9J~sOPAt`J1~hmyKgEt&hFd-rG!YNvd7PnulD%e) zO9z~(SDDBXkuB$RrrlSNJ(KFHN$|>D(vPR%n-!r6v8X^>yY`@ZqkiwO08Pp^$dwaC z*J2SmUht-FMjpgNb>pNcc28DCFb~?9mt3gqUjk?Bs_821Kab$)%ogfJ|M?UHEQN)W=1N4B_f&^W`xC#ko%It07M8dM{+Qm08lj;ugz`=Wf)j^=F3u2vUD=IS(69N%s`nmgIJ-1#R zmcwe<+zbKW9I7 z*^yPv7#GtZp2=0-UwMQK-LW-hkFtYI!sH08$*s~dt3MaH`|~G`sg39eT0Efzm5Y@w zwVwH{r93?_Q?5*Ei{>iH(>dcpywD6tTU*U%s_N7LFag1|ma007rY{VzEdW@my*zKV zSPh#lx0#i|zZ0w_*XmLcGR^480Fw<4+5=`-c)zhI6Rn|a=ogJVgD4qc+0h?%S# z15_DUc)ZlKNq?!}(<)f%^xXY;AhS658p{C0IN~_<9cKc{12c|3Ctw7swDno>m}6j8 z1w^<7XlG@a1Y|br%o?avzigrzOKvQY!6n~wrrEI&7KI#y`qdwxd&vD6&v?cK7hG`O zdFP$8ALpKX?$e+Cblyk9=5nyYmLp)7oabV(sIyJJP5eccX$=biLJ|E1j7NcGnXc75 zoM0XcmV>l19;{Km3*Ep>BYsF}TCOQIw@) zqKo5%$cOYH_p{GF`zcR(%4w&a_T>FI{q)m$2OfYuxFygL^pf*CIW#NkFZNP4WH~R} zr1#@W?~5vi$0PMu!fO2qPcd~@YuKzfEty^VM(L*7&SIxnOfca?CX7N=t*UM(iE%En ze8PhT66Wx~61@e-v+Um`EzTt`u8E8=DN-|wlPKMM;emwiVx4ixlep)9-I2Gx^{v6Hm|Ma7e3u_FzNQxB zttA6Ya7-O@{0mXW1AG7)3d1y4%%uM94KV9Px&amj$g^Rp$Yg-rpz{V;M#*_IabxN~ zy1ilG@*NC+s@hFZN=aFzIYFlGGzHdjX{ZZi6BZx}&h^DFe(}{;UyX)?>_^z2a>^-> zdCX%T`N&5;>|qak$U`3T(1$*h*YLwxXPt#TfTqM&po@w?!7p28EuzU1Wc<_pc;`Fc zSu zwwW<96``{9X0qzE0hCGE0IEQrCIhG_Rx+zUen0j6DH5a1n zw`#s?-14*u0+8EerXd-*x8RfSvIH0ar5VHbqKhs<&q4M>{SSZm!y)|#Jm3NMyWjop zfB*aQntOnofzQAI>g&BK_2WFa$V51Y(OUMa_)wgWK_19m| z?!0?HEJw7wCa^nW%pDbv=3F5N8NeV$sDO|rmjDJ3bd$4rGQg4}G_mdic2)IauM{L2 z!D3NO6=-1qo>(fx0)Mhx0-p{8gy>{)j>=Vqo%%yOEH$5SpiE!0I>+TtuidPQRPo?_ z`J8F{=zyNFl3+ERg0JaV) z3}GNt!}q@Tz3+ej`#JDfg*F^i}c1}MCJ5(X%KA5h#D+13Kuok_XdT$EW5 zz39iYeqvUvzV2wG4lU@A)(|s4aX2bBvE=Hn_T#Vj<2~^cXE#Pg=_A~=N z9R^r(t@Q~ilC+zH9_uS!8gMU|%x>JFBs>L6NCIOR7oX;UzcDTT8FP z7U9%5Kq<6~7f3g#F7VQ!XA<%ZNF8SboSXqHxt!NadGOVOb_mXHB>kVw=pfJJtums>h3 zgo41%!H8IPCj(SSxMcuEiKhS728aPvq#5E_$peZ`Mf`3lPMziV2N@t|c?>X}3>6<1 zp)~W+;%hdVXG2LW&jMnoAJS+2H{5W;2S5118}~z$)|-!ph^_Dd`^9y^B_P7eG=){{ z!rV3UyVB2Mc2>kH|3X^N>p!7bm&{PDb}ciwf=`wUZPXn4FwS2bfX7u@T}4JW=cD9c0ATg1 z|3Lbm{NyM37iKt)0jwG?w_FAgL`O+i7lIfd0J7s4AoLVYkWC!d4dworJIK zCiHPcFar=<6(|Oni5U|cEEt?nK=jaAbZg-ltO+$k)3Clh4sP9#+xFx3G3?a99>FSH z0&Jf!6VnuCwgRv7bWY2_jrl52zg{3KVlx1?m07dZ#gYr8lS&5^@AKix!K}602Erx- z%tW9VU}olQ89+DaykHAXEf6dfZHG2jew$&Ou+R)nn{dWYaWt$#1~373h8o!i()}I#ap%$CwV?Gd37f@@ z!AeA$m^~Uy`3R&$1Q?UI)JCcY*9W?EvRSCV6b$vBlHrcK0iY^VWj-ASnCkv=3B&+J zCng4HQf3JSmcp-sIrtJ9PkaUm!LDTnOsHbE=HsHUz%+N4iy9^j}VMW9?&XcD)0a+*9@38fMx*y@(x#| zHUJ+EYe)ttD(o#;v7Fp!+O>iMt{Q@}G! z!^GQa3Ag%>f{Z<}6IlXl3)U~JfoMJ60|ni70;(KrQZk`^r;-|KacS8Tp2-B-AS9{` z6lTk$QBD^M^BxdVPN$fD&-d@g2abjwVm8YrZKADc$|#cc1g~)oxO$7~-A6hRCP$! z;$rVQ8UYQdy_paZX#GTToy|IDA^f)Q$Q-lj#w-_}A1?E>3esQ%)PF3Da`3twq%ihE zEX()5poDLwT6Tz0hy}5^BJq^tvcYRcR;^}zcXR~vVZOzl=$cb+*4EG3vGSAkA`m&& zm%Z#|*IaWA#C^^==b-06>+ry%AN}Y@?FTO&_qfOL{<-I#d->&;Uw7Sg?1}y6m?5Vl z=&FKQIB`v3NFV8@kDK%513r3cKC>TbsT@H&X2h38rrBmZ*gI#&Tg5kE4)-v?%l5-F z3-3gfMuFx++&#zu?fZmiwK}BQpMG3|U{mG+D1m0-RVPtWkjUNT!-ZQv(*||jZbf)H z{cLSCyKDq_x+Fy}4&T6cjV=YqtoRQ|#v$;kn^~=sNjpmViSE|9s-%fi&AEolZ3cmx zzz%fv)uba2iD1#)0F`vvl{M5?VW$MgjR8zOT>M>3gI{KP{1hufu3vG*73ZIS{+VZ< zdFrXBau1wx$|+CS4_@%jS!bPvk#OaeSHAFtFXY5|9N%R{Jg9ncL&7r^A_#HT$V_xI zsL)Qld!gwxs-UbP_5k|-%pEl3`iy^2fj zw^fJwA*&E=Qf)zi-r9ibEN5LR>udrG5$DfKAi$h3txBIZbFOwcrF*D6i0C1pQw#tv zu@;UGJ9zdsf7*W3-u$AAF5-&7RN#~BjP>I7nh<@yUcV|rHh9!M&zmfnqk&skh)_N0 zau%W(#%7J25lfy8T>f}J%={6-;P*CT>Ui4vyIIi5ycdX~K@F!h%u$8W^fJ;?iEFb`mquI{#qGNkKZjI&HD|p7DKNBbyxCUpn97^hK7W zFfsT`!(2d^C-ob37WF{j)tQB=8K6EX4=k;mq)tI$Rhl8noW*(!a|zS~U8#u_1A|m+eizT>iB+!H(t@qCBH7T2$f0Z^f=b8$?1IIYK1C!JpTdP;TRzn-jqlLq zi*ZhH{g`1vYE0Hy62S*y z%Boo)r-_Px*=3hqydRbV^Iu5+SlI4rGBQOdia85mV%vd(;rSfCw zZ3bABG7R<{Qh_koI=09FGheqmQK0;FHLjgkwS-%Q{T9BuAYTmVANP z54~pPq9mXmn2#v~2*kzKutD69{L8c4Ca(fksMGMvjz)mSFosFL=93v(-U2+88LL%< zU}%4rY*-IWV+vDCPe`u>^^n7GR$A_0Xn7zN$jghzb0i#pNwX89suEreN;Yw32}0E7%i718g7<2<0t8b7i!%*QHsWyTD2VJWT)LY=XNgV|Myg zyi?3XSZYL|65BQNgYekG0KDM8yvd*3EKSDQ(L{czv%?Hf%r0~eB`e3QYb=jjIXo&q z%1G$I)}rYi#j0hb%zz3J%__^u`{~>O2MckIV*nLD{mxo=_ArG+lyIgErvjNb#&vJp zl$G+~+O`@ho+iyy8p~=~oDDN4Jfs{82$`g1!7>11-upbkANA`>fn@pQ#QRr~_H+up z>7uY~SN(^HagJ;?f{(9D{rYM6S+%sHfP1xw4FdjhQD5n`sx`>a3k5uw)h(1Bk4q<}ApwG895O z2?G@QG4!U93TfGNkl9*+$)<_IA_kF~6{LdDK{Rt$GgWv7c92yacLU7YLN5Wk_nB1@RChz|h<&NEr4TXcY1TJss6ck5NtPn7{v9Nx z0y4BYz0rNENMAg#y#y8pSd8Gw0M+=Ku~(7;^G7tI$a0&TJ6U~PE!fH%lL3O@4j_JM zj4*>6m2@A(Wf2m=?P6l+eympp2wXP3U;iGb8QAU8@x|=xr4zG$YN=EIk7*ZtCHN}! zXCB8>U@f+q&14%{CS1hw(GPFD@kXfsLm&Fkop;^|C-7hHgsMl_z@>U*0t)VCN5T3u zCI0QD%$FH|RupFtcA29oV&$ zL5qj18m(K|3o)$8{x&bpojYMfz$fyJSEt zAmGym&<$E|#xkO3kYP62R*^GLv)Tz{*evXr$&9l+T8~^9n)SljLd`8mqXFLJESgR* zaWZSL#nOZX&2E(LwNnviEPPhsO$Ol6x~iG2p|>(mc~c7*DIkn9KgI9EW-1Qw05roU z^H+9^56b}Dib#D(|DzxM=tn;Ckq>|P!`ue21jdq=Ke|BBW zmQ5zQxYuQU&LlRYb@hZTWnb$P%9~A*{i10$6L+zti9WQ2z?TkA67yCJ&;0&ev84m4 ze0u#B(-7uhq9jf2Hrcl10y@fQ+7|JJC2R;XE5+cqONK&{Xttpj2-={>#Elh;sf3z@ zi|Z=RJuh@#6eFcT>jTELQj@^gEA#^Cd(se5s3db-H9^fS)8ubD# zYTvO`g|0!WYz;eUVL)saD1itmQ>P^_wnH zLgH+v8E(cLaDNescv9x~&Uk)Ffua@FQ|!1B)`_$} zQ%Ajg^d;2SUVbqDtRAe32dp&8gT`CMH(LMYUzotm-U_(1Ex^|WG;e^(05BVb!JOG5 zzKbA$EYW$m0Y0`LG5{=rC14357p7*wOtG%}@@^KG*8J33A$A|}gQS6n5cZI}U=24M z4PINPYdFSBAn+}f=AcE*%dIpieP(L*jWFr8HSJkucgu;=?#*kz%UY~i?P0dyBFoDZ zP_XGfs z%+gFFy%6Y~{E)8b3Ev=C11!iTz%%L|XHrU+Y!!OpdCcZhis711)oR?0F0XE;71drU z^GjC}yC$`nd?K}lHXMjzipRFHuDk$qr^}h+uS+{k^PP-S)&NV=S10Bj@xh@3*6yWR z`ffx#^ZO?ShtMbwPq>O-9%J@Xn&N*c;LZRDE3PKHb%F`7-x{gO36h8WP=i$ErViZM zGOS~rA^aM%=3|&G8fxWY97$lC+@Lz0xC%IW$N-rr;2aymH3)q}nOp*vl3PJ;6`|7E zBAbN)ik9q_u(@bCDxjPV4_Fw$kXsCpzX?;LWbO)iCYt-~!Wr6b4QO9|G-^MX!?CoY zVCkQIG>pI4ugT;S1P?!A_hKk1Y(vvOmL$;GrfGI8o&aff8L2hrlJLhNEe%ApaCl*s z2d4!om=er<_(6!?iq+%t`@?KnoHSgr~3b*Q~QEnIM~+7l<3)XXgAGt7bEy&v(E3-3VgI zvUo7IfuWL6hO`0Z4R8+w%m!@6$;Fy8_{G;SAmE`A61R|5mFmi8VYwJ^RxG7}W`R}0 zH}e)}3v#1QT&6i6bc)s8X(pf8u#6jk!<*t3fHZ2;ue^rQOT+~xrqes)GuK=VcjuOsb>|RaaP^o zu|cv#8`_L07@&x93{YZeDcp%$JNC)LqQw0Eei(N&7d&M4is(v(x7L1vCf0@)fqiMH zJiQ|J$;tv2AfMxBZ`o2^Y6y!ZzrRZV(%MuBjKN7&v!9B#@)pITAXlS^uLyJbvRHy} zMpp9_2(osM_bX$lW2xqQ{pXeje%lJqQt^TipCbf-i2+k;y?2z5Gd8EO)K0G&?~A(5 z(Ws}etI8C`ie+ErK?WeA!5wh?JzgNiVNh^pM5zpvu;H&81PIPof2iD6T&CwqMgjk4 zwB@f@$~`+~*`T_U+Vyz@7)h|ZQ|+iUH`y8!_z*eP;0eN2-ubMB`@_vJupOd&-jxv8 zZ9z~RE$XrEr!s(I>NZeA%Ca1Y1BxlPXPe(&MXYv|xILIlg~D@6F+6Gx@ip_58g zx#W&xfHJFV$yU}ODn~hIcH`l@Y%ZI~I<1zd^lr}9a8jcxX%lE`K`_~Mb`-BM-i(FK zCZV}yxvU{#j+q~s>CH=izmPc00S-h^=}m^jeU^4=U590ZrQ5)Qw!4s^;#u3*FbH$2 zXh{p+NLJiiP5@uwcgkb4Y+!nyW?*$DS!{c@rqRvjmR>A&V^9j$u`buMl`(psjNH$X zS_`2npq)*IW+m;`W5!c<3T*ALbYHDTU2j6ePR#W%M+0$4olU;JbqqzU@-@U$k@w6@ z_M(saRe?PC*{qUtIv7U__*Ms~ExVaN(-wpjqDScd)uFNIAv1w?TBY7silwarZKPrj z5dieb@)ZtAbTl>xCKLy0=J)HcV*;?B3?MAC2DcvJ0^YS%G_`KlFl-xW&xY7$G-+ar zA8fj=ZE(xvVV^CFRoUQNEK&=9Av0-qaH&`MOu1Whvm($jKutR8AEUyorat%F7`(NS zK@JzZui^9-<8|9-I^XL(^#F=J8)+!{T$@~83UpX27BSe{!qlL~j8isd{BpJ`5Mtj*9JIL(Sk2fKi28_>DQq5j`tUzMnfwJpnzj$+vW+NXR zeN(ZXmX+z2W%W!KmMWaPx}b$0 zmdn8$z?PxMpq^*FIY&4#_$TTX%M**wYSHYLgFK)mQ+tww8RWBNkm)f7N4uAoVe+;X zqz+J%N<>5z6LTqXR0U#hc_>R@TS_d~OS6F1)ES^!wrJfDM?kq%V4Bp;cg@vhGokhA zSzf$qJTb4@EDM=8z*MQF@)%$V!_Ba_TG_z{M^^6E8lx=6StBnGSRXQxx2L0NDf<-e zI~_?j;LTmVCuaW@D`;eZx;uIm)a0w%ASLH*Cys**pm4Q%!2hHshH6c`Ts_d3Pqz<_LrlIjyR!SFzl(^q&}@q>rW1ucmno9>a#pkW~N~Qxb|VFtU2!mIW+` zTkycfE0*5z)&6G{$OgO0i*jYo}K9{E6dTsV+kL2f>Og$N)rsHdj33(mWjK%74>f$utI!~km2G8I1viI;6=f$uY) z`OFI2xdc!<`6TivBwaz6%i)<}J2jk&Y=Ygd8~H?ZoHz!;Q$y~?2bU^V^W-eJWfkRd zg?wDd*<7Ys;A(Y;IoJz)VmMK|n{K)ZO_Yn+8q?xgxk#pFu_Dj9BOeb%6RwjMIkYL=W@bG>vTTW}ZaL>6qSc5v9E(-}Guy2C2d zVYMBl7+D3v5$coWXlsp=74GH3`#h9W;i#+(ZL=^4!${mf?=Iyma}br`A&)dfKs#=%k<7% z+(Lf`KC6E$(X${Rg|wFeBM7#>(Vh6?H{N)o`P0yWRd!{WYckKy5nh6F(pDW>l%Lt7 zM*ETn^RtyudMf27mkL_TiRxn(rN1PTrBQ;p=5_U04!eO=&nf}np1BLJe zl?Z^Op-7G`)yf2GF{lEkg?y?LR%9rH05U)=U-dH0+i$iXb`#3xU&izTX#{Imz*Jbe zsQcUi5dEe5(Io%_i0vb|l~6ol4wNc8yObLUo88-Mz81!H*-F~PrUOkF8_OP)P#I%J z$7hGr5{;RdkdI+7YaG`&M@%xB}UAjZ`IEYPCe{tMo6-7czxtg}lEljl%plQE>lc@@+~ zL9c*uv09a=3zbVaBRkUrqd{hM@34anxsSQf{5OZ`*-nP3)6 z^X-PYiDlYYbBLZ(x}~M6sz4Y9;)9f5Se3=B7TR{<4tgk<>mVm)$1QCGoj(F3*EUYo zRHHP4nL4xZQ(<3E9>@SwI#^yei}B4ZFYwPV@2sROf4bb}@=|n{+BPNxLhnJZ0)MgA z$3_VP;aiHiwttZS)7FtW54NN?_aXFP({jQd z)FxgsNn!&Xqg%hnw#v2;tb(u%_}R*Q=Jy*rpDM4_o4K2^`O1;K3QT)uh~RtvT|5!Uj) z6w72*xuP?vJN&YVy;D5cAR~Vg+ccPD`Awt3?6=wiO$1U=P-i2y`qxiMYIS@);~(MU43c!oneL44rgZz7BlVFXR z--H%TA_&^5^BUEl3brSK5Qg8qwT}&3&YsEzeYz92oDdk>%aNaPX#+=#tFeGfr+?XVE z&wW^bJ{wflq&1nOk79P)oVl*ErPsE7av5MH#HS%_30KzAe5`X}6*In`s%af%CVHR2 zoOqQFSKd%i&#Jvz`y6LnR{g+Uz(}MHLia zLx_R9@4ox4yY9OE_SR^m7=9&s%^dGK@21Dk(iWo}QoO;Lt%rJ|gE16U-qk9rWh*SOq`83Vov!j+ zc3HWV&{f!e3gse_*&YVMDnIa`qf#%N4A)ZS*puCC8Bk4zA!y}9-D!%krFv?5>S1Mm zda|ZIJ!^=q9fR2n_b?kaf?s2=HG-!U$rmIibQ`1#ZDV0&#gq%6lIk8+qLKD&;hRm& znKpA~s?a*r|BwIpkN@X>@B&Vd4MZKA0TV%~*fHH@#YDX`&15vjXUy0U$mtYR;g!3Y z-l+N&%+of(w#HDFTgVR%Mg9!Yy!phT%@;^=oFLO0qpdtY({>9AKNDbut*stt!lKk0 zA^V{of!nHoZAh~%!(6MY!z`E66J5crM?A5wmzHpu;9ZZi>&iV0kZ&XiLGhKkCF3)P z7TCOBjF4A8CV&bIp!m0hvRE5`f^Jw9Q(+}SDYCz{va+7qF^l3wlqlI)HkcZ!03bo% zzK#)ZK&67Ib>$aXrzh}%Eh|I5V8^)$nIUQq6#q~E^iTiSe*E)4|1)gx@sEF;+kl$^ z_K*iGgDzlVu%@KZO79I@E@g*7aW!Wl84H<}$6+(MlDB7r+nK#v0`L-`oISs0@2T)o z>om2X#^&c$%1#`BSq5zd+zVdtf_kik6jVB$?Gc1*ns>F*(+*#=L&pqJEiJGNy3N~l zLBLKo>5@@D%x_r-=q`bK7$7689MMWuq<%}<3vfzgxwJiDX` zwK5SAGo>=b^~_GxZ__8e&}Wv)Qjf9i7u4NSU2+i03znX@^aMOMgWB2*U8r@L;DwG< z@tgyPEP7M^=G4y1g`V)`v)s8nq9yDQ_0JNs>8=d&dg;5Ryx8R_D@wN@X9!+-P>3eC ztiHAFDfDf=7gS;&aCx8`0Kv)eFbQK}dZyJA3T68^9lcfGR(|ePE2Nwq%|cO6(}SY%%=|_i*-+UYt=(7kyv4e#|=K=@VND1D4Fr-4ZT2*!x;h z8g$H(Yr#ZCkPgQ$GobUUd|n3NFgP$+)3}DZ@@(c~WsEli8)x-~SkvK-1glt#%$^#i zWR_DDYE2(7i-t#-sc)YJ=8VpUqK~!%#iRc~{r~bW|AIP{C2;4RcZ#{k(jY`u3Z2=W zh#kmtU(sy{!E@S{n=CwF)aXjTL6#k4^RqSNUvc;i(dH5qftW9Y?iTY8k=RDk8bt=pWVMF_QX_17CUOW0k*wA zwh5iPSy5W$sG3j6-9;iNXp9%PxfX1bTF~_A*8959lIJG_)DF!m6EQYs=L<_@OcN4j zGzPeKKSE#2?GVP6Qh#O^P0Ww#2Y4>h0@=VuaQsXa`i9V7l1!i7T z!Krj6)tm&GRR#!sO=)TqHQ_!T6Jl|q(3wnO-yUXet0@Rhplt{p zc@N#A`lI>e1=1N>%3!OQl|7{#TXZYa&Rm1C41}_)cXCzUG9>e{cFfWlRUkdE3;Kq^ zI8C@ZB4^||GWc}1*p_@AP}v`*tIV9m0`}|}n|Y7{%p)qLw8mk)S!Ols6)rc1uQQ_F z#YA3(7ExU#N3(<0(l@A@n5EWUBUlG$rgnYgkp(*qh^2CL7JQgA#%jHM?N(q7WBVUg~p%H$?Ds!p&%VUjA1pA3*XQ5ylNe~SO(7{F>>u1Ge8 zS=njHN7uHs*fSu_{b0(Y+TB-akoqWWn7luSFXu2Ryegk|uDo{57 zyTiU13NRLiuK(fvC{wUNSPszHo00jOTwqjHJTIoiz0YiG@gS1dmI173Mk2D4EZp{Z zkRY^fNKpb+LQnC(^!zE!rtHfljkgE`Kh6?n@>%dU6$Z-Q{4!Gtv(_Z)+3g`7SQvoO zB~VjPFTE5Y(<>b2{7pph*>xe*nQcw%)~75Rl#Qpe)m&(^aiKtakFx{2*=1ED&fy?&#r~sS2jks8yS}W%i;iX9Qpq!^1{& z?nM_=2)o?|1@_h749y@a?8pl-A<;R0WUbi{ckG8ilQSE_rX%$;FmoZ+imFYV0Cml%q(OU9vL2Vqt6ketCCSM|0>PN5#%FUps3}R zr$GriwZf8!4JHq0157(Op0BJ~VYCH8uD$e(uRU)++`~X|YQqthqo*9sx#3RcU!Obm z^N@15_jXeWo77(rYUT+}^mn7MJWn5X4R9*HJlImQ)UiOt7AWJYNR3CD_EeXiAX01# zU|ea&0bG9}i_)ZYoK-q)xAck?4LpSbtmn~gq^9wyf6ty=_2pfFYeKS^knWC}Ce4ce z%(yPn=}xFEl?A26zY_oDYi;v+0ynQjlX(i79h#btnC-+%`8M&!KEZXr4NXXQoCI2{ z>Fj};2iti%qrZmGT4F^!%>!`L{PFx|SD!eNBL#xI|LZgDRqutMdLpRN1bZ%Bjg#HY zO4hPg4)#Nz**L*R*8Iop8WXRBexHfHvpaEhaoyTo(`m5*^JfXn*5ONuU{TfLblq%) zO9GJ6OW;&X2(=&sO~4FR?M{<&7s#MmGS+o(f-QG#)<<*5U7R6GiOx7g>bkH2}u1=#GB57l#JX-cwt39j1Rzy6}p+f|)Nbe*`?bT3s35e-epOTqZGrP%`rZF)CE0tRC&^3(I3#Vsr zfs0cy(0V~?mMR-qVyG5NACRo3nZjKq=N2tlkU;Zgbfup)%O8jx1P?k1i zA(@tix>Qh^h7?+6&`dMOPD;Q|GJLpeNR|C!ddwnx(<>{LT6=%~o2o5tf9P2%aTVez*>Wb}kFuk>^5e z)4$9?YXID11Dr(s$KrK9tRvde2GG4E02CZ4-MyaZ-nlX8H4pTrcNg(k)QerJJ)bPj_VH znn6|O%bz7(X_C{auRdwoq9!=Yx2`C>w?c0e!=DU3Zmu)RigIZ^4fn@ds>*n&UtF@78hfsi;y9UcY& zxaW6EeP`>L?%0EU>B{nBLNb5?I6!(sxzYMTh& z9TEhC#mY(g(tsyu*E^0zQon5bB~d;EsM*`JB(2#+tBi3S1A^7%eK!Piu;QuCI<0!? z6gJD9>sr8MWB_w@I30*UxGR%$MEfx)3yIiFL=}1KiwvGao3fzQQWRg8?=YPvc1x|7 z-2?@bah@=u>&-PG#!|?;aB9~#o0QdnG+nIpu4snTR~!VmDg8vLB$eDiXW-jxWQL3;mYry{jT9R z!KhWo7o5$?f4w4V+aZp$H$ZrAdga4Bgdn^GW>D6Hs3WabpZc`;+gteDXk5tnHrCO>g1se-q%4x`@kw7Hf9Kc8TS;2RL}2DF;+k1r6&dA#F(FjKMvy&X_MS{GJpkQ zx`5iCnIn+vAO@&zddmQ_jppnDIEDjz(2T zODm^YWW1c5FfIDpF`$_P&w|`%dUN^xrZ>v~CI|+=CGNIJ)?uc3po#U{f3L{*}9_E%d=T+cHL|jP~W81 zJHh^^Q?V`$^1K~|;dz#c_(%4ifByOBo_p?j=biVAXFP+OkX7&**pm743(UbPWUa4V zHf4%R3}A=Knabi;n%2us@d2UpSThS|>K6Ej+o8G~_J$4Cxs1##(mU=A05{v8STE{= zDH*EX(uHB-pUs8{!M_N%JsaCh6{z$i^9!KAADOw9l@O_YzHLWiC?aOzdFFP&|QA^K{6>`!Wf2Or=Ll>utb?j1c{ z_~Ce|DOUVmvnM@B8NrGFydO&==-G&2_F{+u%*9wN;0asZnE3^>dD+$-J`J@XXqGhe zR5JI0nVZ$aQ)B?^q|30Fkn|y7s@bbRPMFaQq!6Ygh?z1t!QLt#oxVF$DGiN&T@KY;al&1L*l>3CtWSMgKwXNBl$m zXPR8;Ezid=^-_bsDZH# z^3NM1x;JaUkt==bKSmEG18`E->)3%o)pWLv($$e@2nP;7K7Oyc0SO{znl^P8&G0xyOg7VlK;N%Qoj;jn{D_jc96JTN~7AcNfX`K2`A<_wD@r(PBcf6wMCG|JOz!Esas9pl{K&?l_qqS#nsI-N6 zgPoa}Rx{2O1Ycl8rJj3iALiM0r#uQgw{QH)ViIQvAwR{MR%x%(bP5c05qAyyRs6 zC`?Kw&$N-q=s)N@Xg*N?8E2gFl&3s}s{oULwXh0Ug}GUDs+Zgl0iPdE}dJ8V3Z>`3sMaXRn@BUwuSzi*x#n$)}3j|?+=g6?1r4JF~Am6F|~N|fKq1Z zHnJVoi_TmIj#7X3mI3UM;SpQ)p=2S=+GNId2Tyk+|Pu$4G|C6#edBCAh!u%`F zg;_Cwls&X@G;{SIG#^O+^wUp=2YAh$0J%cREY^o~cd< z444GQ;#(}(?sOWU;!#3Uy0qJ)naE&dG5pk$QWol8GD#;C^M5-UsfiOJQw9hEAkd|T zSYUO8-{v?t+Zm*sISw&Efu7kGF7VfxY*)MDisQ=fuOC(<74(fN&=&HbAc-=y+_ggQ zOI&GUB`q0WoMQ|y%a{2t$^%5k=W7yUg`szHy#tN;=qD&PzW}zD4Y@=Bs>fPbed`5k zjpjbF1mrKo4Nan$AneaO?>zJ$NdL6cPMZt>85I7LOu)6bn75?ueQ2%A&Z2oH%VSBuX^)p ztwAvYP|QcKx1Mf*c!5#NXsJ!cRB0C2k%C_{k{D{`GzRkZ1)5Tu591yX zB(uHz^2?!h7@!*<6-WkP6`Y!>(YBIs$97*i#w?{RI#@Yat%|G*GYwAX0F$#hm;Ey8 zOs`8Zty*`A!6WlS*byBjr9jTauiBHj-3wH*k;UM)tA$-sDJKI&_Y-S&f!&*6u@n40 z&CRUFZHJCU89Nw}2$Jo%{QkfdwGQ(PO8xz^hJKKsv-j<+G|FFGVq#bu)h?TbZvv?y zFq>vuxD0PV3AM}a2GBNJdV~cmQk$H5GzGa3-G^Oy5aeg^s?FR=qhL(Q8fEyFD+>lN z0szrt{!Sy9+YAW~F>`SIzNuLm6}v1XaT8`)P4%^3wHZ~!>lzahLf5-sOt#jl?0w#n zUUtSxXM$usTx(TtU+>8P3*>(~fG?KrHFm)`Nc|zps$4Co&Rg&2%ynC^@nV2^17ykM zkE);AG(Tp3f3fFqY6}DB9NStr0{+xdE}&{V7kXU~&z(v6{SniQb{FKH zg1;2ki6HIRf=J6<^}FZSAS2ss*)m>xZ$dq%r?lkK)vbzMfW{4)|<_w%qqF(@8 zr%G7>A+)T?01kiFwxUa`KeK?agUy3r@Z!=-FGc@>nOTSpkIh#oW1k=2sqF<<7L;kZ z>?Iq|;i-EeM*Y_B`7H&gN$8}yHcJ7R^K8X zIUy7R!S(C4Xy7dD-b()p8d%O^wl54I45kWn&TbE-nQyUWH92a2K5I2=z%hINsT;ei zGZ84zPHzBJpinAIfSpzOyx<*Z+o}K)c1+ov`FuOki%J$Zzl~2@KU#n`Tcq%lH?s1( z=7%A>FCAX(FRl1zZ4*wk-b%)0Yfc(carGk0I0*wxtwZl;Du>p2ZEpSgG$*EeaaOd= zn?1K(-s?qSomrd*^OFv`s=UH#S|ONN>1@^jU3Ms z$_4ts5?)d3EO@HyJFcFQN+(|x>jX;5xiVpzLTU=!stDR_9WssJ$}r;I0#-s5&6EWp zn9%6>01GLhH84i+s2zp^suFj{v!3-VzQBc2dXEZIWxk$A2a}g0z&&#fN~^5Bt0}wc zKROMAW0>F^A%D#7Lp3U%;Af2#+-!h@VPFPC5FCD`C#4uQszHemmn_uT8ny7v1hnhQ zmKo~VxCHj&*z)`5oz@83HKi`uFZE9hRtxzHvCXTX3t1c&YiLAoH#@7S*+hSu;MLP* zXKZWoK8GELy^QGq55PStOlCJ|GV7)3s6raE-m30k^`oAV9Wz@@-q0S>^TT4; zFN7JNg!+|X#fBfZ1${qvf>;t_C50s+!brYEt8IdZv3_7_syFjq(+rCQcL@kVxs)ziIA75se6G*N z)D=n5KGE1q zwiX5mEX*d*B0f|zxj@0|;+C8u5S^k%fpA>Bj&S?^VB772m=e(`z*I`{RKw zx|Ff7odY+vr(yt4h>yS74~2*Tri%X=X||7nZqQlARpEI6lKJLC84GP`hNY*QtAO;v z0IEO>z-IbS1tB(?&@=8GUJ%n^z{Hd-0r|`bvV}@b7Bge4xwSsCu7qJy6cOJ&;t`MF z5;*0QQ=amar(AHs1y@{g1;&JaQ@y{Mt@$^M$$1Hy@v9xYc!9J5`0KO*gpJ_4Y#D#$ zW1JH*jFS_Jkb~sEoNM^3Q(#Z5g!<;r#JCz_7F!4jV#Zv9f6Doj0X^F&%&6G{8nrOM zca8Dgn=${ibPF!Of7X9a3poF2$*l%k!uYQvt!Q?$!MeuS0%s(SkejJNLla~O*y|f{mNZ=DVx)Rn2 z$Fh6a!yfkNM?V@Z=!`SYz!b&|z=B4LGS4UTKfN{`*Q&p8cPliWZcvp@w?k^ssIWI9 zpXUfUGyAhMxCGRKY{1BGR-rpxgbVc-GpYl2WjP#34}2LQ9eyCklod-F;M)QX6LFcb?7W~P}csZ{;gqG&4!2*ex^Ky zgT82ZRys`c(9IaJ?rb$klwJe|sx9HUr9#&eABC{x1iJ!G}&v-D$t4Nax6ia{UnXRx* z=-sM73lEef77cA%#vjK3a^}>6>U3lf0McIo{w0^C!)`s+V}QE9rS?qH4`Q{#|FTmT z1cOR1Y}eO4)GEeGBAa`k<9VoCVAA5)d=9E~AS&rx9NV`7lrfQRS1L zvH_m>#3xQikcs|G(Ri>n&>Y6A^XS_s+k-I@oZF#vXs-?-DFdlPfN^ol01UJsJ4se2 zUY+h_0I7ev=fj3j3knx#l5*OVMC{i!9wq}ALN=vure=5vELzY~(lNb269j78({o$u zzGy+y3|L~@(+nuZnlYPv%?3*4x=xVE+8-+TQ+vuwOJQgnWP_Yqv(KUsX0=Px)L!}w zg$iXcEvLX@Lr-dHbypEWMyi+%=Co(3*^rqRe*U(j5%t&pVkh+@{>>e|^2#f(z4ltO zz?o$X(E8mAv-YfcE2Ba6RE=!`k(E%akl>^_(IEL_0B-;pKs$J0fVB291r`RV=Vq{Q zX5i@0DJ4cdwW3M|aQ8;4wi#xntZjLqthLvlI1GdtY@gwR{G{2z+orZ9gilb!?DC1| zXqyweotgw8wwGbVJjfZQ#p4C4Q3sfEt@?)vr#0`f1&J|8>fLFlordf`_uO-z@r-8(BxI?( z$hyYoQUMzQdS(XLfGMK!00MB;Yi`+>OXV}17E6NS5&TfUHh^7N4&DHZ({nOFDv zoLOC<;MZH?Vr5i8R-}GuMe*;LDX!7?1n~?$u-cmCx|r=f^)sewch4+69&575hAjB~ z1^5t-i-Sx1kR7neVlEa-x94S5BjIvUg>$SIll4G5^!^Jkyb#s@s;jQT{Dt~o{_>ZH z_-SA7G}k2=&JcmMf9V?$N?zOG+{ysufCZ{%Jum=*UoQ~rEEFJCRDglgY^@wD3%K@5 zIYVcFX5tZ)u^2wPp-roqD`_Z)A{WGxy*zX2vP>qV>12;3y?F@&%pAU%#Of`SC!}ug z6XQ|8vmm~upocBj&e!}?B8Vub{!8w6(HYNGy6GuGL@H5($(3Krr zSU#&ZGXSwzcw5@APY*m`he9s_8`M@py_jJIVM^(B?I}Mxrgk+nwvS)1sri3``<$N8 znW3KZq-_3~f1AB1sc|Y0jbI@%082HFV;n#)9=lL1Z0om~43H+Xq!^@0&xpac7Tddf za&o-{gRq_1L|p~d(-8+n`Iw+>5VZf-wKqseyXfmzMBxhG5 zZ#v!Bwo(-;XSzWHDop>02c)ef+bog1#iLAGEX4_y<^(EQ9?@ij*{ecM(7=%M8q!V=9+*ms&~h7O9#mhy)Ev)Z6t|@y#>_jK-hCSw&J1Urn|6t` zl)la#wTqnIHY)}fCr9%mldH=S!PS z@%Sf%M6h!rhCKgh)B|&7AlEv`$aneSIRIu8-)$4`*|M!HkB}rSI?*lnM;@g91>AFL1+zm{U3tK<&2KZZ>uzWi&8uJg z&um%Smd$4FOc-Kf{^s5Y_u&1$j8`2RD)H&@vdR`j$b4q2hXc(QLP8i7!FR=8w~`q0 zvT8igr!9(y`i0(Swt8NJP=bA2x(QQ{O_R~j9s^A3pG6(B+FQ7TvLWut1}&>8VDW>f znst;2U|CdgTZ)V7%94zM>jRz*BfJM~rCKSB-J0x6S0HmTz*K=+NgDsGmS|h&#TWG_ z_@_J1TRwM$2AQ{CMFr-Bnik>JmpE8>U}1yG59TGHt*j=wEwmeo!D$8DMD+$q-A6zrrWwl7$g{ zT(;i~^BGDqyS^xgjobKlhWRr3gTR;!u)r!$K=y+78iBjx0A($;hVG3;YmLd2Gw#Sq z%*dQMdbWhA;NO&5^IZi{(G4nI+GK#)tb8IyO$M00_APo|$)T;*pv)HEGZ*+o_^ISi z4KSB{ZI8FDmKs}I*#fj~fEeIldb3-Bm`B;Y@x~i(z4g}HZo7?t;RNmh?LWbELz9Mu zAR{IWk=aVwCiUCa&Jz!`s+6+x{aCrmv*l=QxyD~Kb+KCL{ zNkEY{Y%|!V23gdD6N2F^1~3rj4Uh_?4d4}@j%y%n0`}+lUyPm!pl5V!X;K#T=K{|I zD9De=slM9a?eX( z=`6S{E!?U3HQ zaO}KzVA^@6fR~4C3PWfalMTv2DB6|&Q$S}4%NxivXRv;T6YF!Lj^@3|Jb2@YV;*X8 zfLX~fk&CwZ{n`NRgBCFN0NQ`?LH5dvQQtpv(EPPYUInr-fZ}{%0QDmOD(P>%nRUYD zGu{K%uhgQ{t3YRH{Yh<|$UA(Vb7xCoOXZ!>6=`~lP8kmvN}6miFWamD}_ zIH7))4AyPs&GZ841LZy}2wHR;u9!70ONBdY6emZRH%T*nX3GG|Z@a?OS^7m|%ucw$ zrDYi}9rfxY9bzm@Vo$M&nOWESMmg$*)!V=zA1Ai47i=Zn!bqBDkU~GRYp2YrQFLM} z$iUsf2>iC0ikvXpYmWl8-@a-z0MJPVFeYK7PAqoFv6`gMTtBjy8p>(&}02H2`Vi};7cqy86;ArI6J-DZ;3SQSsuHI%&} zzxiPupb9&)+*qm0ESyppvGl59soBRf4YmS3waO{}6?TqUXgargNwUg*gSvKAjimon z-v0Iz$D$E=9rHs>kt2shG{vATO)>4Q+RfTblG9>}OpAxYY1|~ay=xtpyTcpCf^LzM zRe|LAgO|WWQJon720n_0rlIBht|N5y4`scdq;=1%lb(4QGaGcGq0H>58EKhy?%T+q zvc`~$xglKZ);H>PU}LQfpB8Y`e-Z{*x}Zz?Vu~2n_kkmS^V zSnq_*oF21-p5lpsmd7lmC^*+C{)4D7z&xQ;LkXD$rP6(Zez(mspUTfNCIe`V8H?di zc`(Gy%578CM)NPPO*9f|f>|;%HigGk6FeC}hqv8Rba(Iwk30u|V}gfG5bez0(7>&l z6P(QQyjert880=|v;HGYhtMjQr2knNGr`S07~?HgY?lAi&I@wLy{D(a+=uB93(`WT zu;pC=oJ?>8^_)riTMJn8_r?41IY-0)iWSRe?D=l(Vkjx9k$U;+tvy?0vw`d$6En-- zA}{?bGiDM_$Lz{Hp$}$Bv=>5nepCF<&7WmPUIJSezfR5?hwi5MFXlA~-5jiG3Riw1 z1HhL|h^as>>uHeEnD zK+S#6B~|ucKJw}Q)7>$FfprZ{Oa$vcX6VeyK&pe=Rexos3QE;r=qBXWq-~pCtq2_g!jYmc&n^U}F5+MnT8`bpwMq zT5Ku4xi8>VZ~Wjoau6*=;`P+gs$O7UOC?Zh)&^WOfTenF=Jzib@6tYFCPdA^{>0xb z1ETwF8QWG5OUz3tp5H>q&On=IU3ii8@@fpKh(9Hoj;Zeg=SX8STO{#cc*Si(vD>2ElgY(Y3&DTh=J342Luw-rEx7z>RbAE^e-p{^!;76)Dsa|MDo5%ZoKU=ja% zAuPw#JNfrVBhPdIl#nUniY0M7Gdb4JR*Kqg&na~b)eHy%#(<>kRmO1^4UiW@_b%hN z9`1Dv*hUTY?D{9e1*Rl<9YKG{e#jcqhsq)M3of|8CL(8_efC-V@zke2wYpF)1g-*6 zg|*#v!j{h_PpfTF!t;TK1{}I`jJ{lJhJCUCKBm4iA2@ zL#BFW!e0jK!WEP5b$LbcTO%@8`iyVP)T{z8`6BhhOdGWGvVde(3+2zLVB;YA{DL;1 z;T!cY$V&_UK?UJl#^&!UhIYse(;0AH}EaQ6)R*fcq$tj zYWq~Ry#ZtZ&VyT$Jz{4$X`U|Qm18GOs0Ul^S}o$6#<2d_D2eW5okfT!wv2P-q@h0^ z4Ot`d>!5bpX{SBuNl!ZElvAGYgeUMXuTMYyboc?@u&0PTpzVHKE`Uw7Y$FTNUwP$~ zwo<~@NF`DO`2z+W=Wbe6jk|0k-iB~d9ZEs((!f+Hmo+EPBpXWt4E)Z!wcTbYsc7P zlL_Z2jvG%D#|@&g9&4u&ruer$%PMtf{nlG=z2lBM?!5EPyY_<@x8HvIZMWS9Gr$I1 z1zZA9Dnbj&W3`eU(nZvEQ>F^DYX{d>l|vOD4h}R3s(GCQM4)N4VbkkNxtT>dsg>d8 z$pD->mp*)W%{A8`+M#|(|H)5&GDQE_$3FJakACzcANj~f><6zO_qfOLCwSoLPk%ZJ z5(F)}d=A0sO4o;|?6KWYDnf0MDGeklIKAO7$^9F4p0 zzWYNT`VgD|8^8lM+;9W-03^!~Ar<&twvy-BztT`Z2`3fHp?%t{PX=J4<;7G2D-9+C z=rYrCnnXXVw7eylh77>DBJ*H2I1q`BdUNKPXFl|qak@Pi-xzz06? z0S|Zp|MD6(fGbWt^;A?N;bGKaROMxZ+=aT&>#MH#j{zL~0`J2i@C+9b>qYz^HK)zP zkO8K-ZySrk-m~Z2LDHWQy2>O@-sLH=YT6$(AsX|{3R|j^XKC{GW-gSw^xfGu^IQO( zX2fRO+js#d4S8h&DV)^b2m)F}Aj6uqw3`SNI~{O(g{;O${G;t4`=S1ieB>h^``E`m z{_&6V??*rSQP_Yt2 zJS4(Ap(i%2e(~lM2KpD6(!}3gNPp38)7Jx*%bPxXQ_pL}?^co*m`+qzduz@_lJpg;4BXL)-BYYi6z_R&imNc7BRY+0)$yy7u7tI4&7Y8pD zNGwPTAjDc+>TZ`JU8Rv3!dfG2ACE=}K`^8GBmN)ts7Fct_qoq~cDvmtKl#c3cRzT2 zzx&p;=T!jo1}@9j zFO7FWE0Oxc9V$zALbhySi{gav4d$4LMt;#W$BDuCDF*0{^Ik@%qyM1jL*SQft3dQ~ zR>i(^*hpL+1lK{Ji1V|~It%HJ_(#%1>j-|R|3CiYKmPsS|DAt%%{{=M;1FzLF;e-K zh)IyL4X1SG$_9?Q>eijAVP-tHAKD-Xz+oe3p$s?O#a7*GmD3{rE8g2uzYH)z`X|Cl z*{M?@u^uV`oPXUQQFwTjL)CuI5Y6-l+K9=-^?4yopS2|%(}h(A*ECTkR@V$EPJr7P znwUz_7P@qffDqNGwhVx*fvE0Dg|N(5UNH==Zr0cQ1yugk5~dBSnB-7p~=htdUIUVQPz&@^W5!yo=| zG=3BwL_UHa>i>WC<3IoNKY8c=_rE_Mc>LoZfBNaCpL5PRTmoDj@Bk7W>5i`NRZ#z_ zIkp+ayot5IrN=3<8?2Yjfh^MZvh}rnUKZ=@K#_6X0<#d)dn%+>0){2+bY_!1hi5 zf#@Oq|9d~U1f~|GJLrN7E`W370qg;IKy}C#>RQHDP8}Qqjb-t3{PqM9FZ_-h003D4 zNkl=X=8fwm3ICSrBP!KF!Q0N5o`qfkY&Fmu@! zB0w1qD}B7$E2UkT;`ZZ!%VBqR?f)z7>|XUv&$Il38=AB>-zBw4Gnr&EO=mLsYMRtQ zv=O?I4MEUN-4VnM_e8PaM-eyO6x+?|IKt4!}`B6vW9uhVZU;y-T&I zkAC!{cn*OO$v{3pY@-8M)Dl7$oMtZpMI}6D{F0xgB~{xigtHh=xBs>Ns{@n(n6H0En57Nbz zmG3BscX6-n2I>IvkP1*;YT6%!KmvoB$HUz{1hDw;KV0tpT0ic=FUaN3U$Iin#Vg)) zWuW)`k|v2?VD)84cPzN6$Oa=DkPi@HKe$=j?Faimg_LjuEVNAkc48vi~s7 z<^WuUK>Px~<_SO=pabk7fCJdl4k+Kq+uwWR6)sY(<(&&jx34F%?G=T;b@3IRSqCTt zI-2|mf)pIa>V6yorp4Q+I;6#of^5!U(>VZpBKA;CyjVatNZbT_h_Xdw$`X~b}mdzsM(bhag7}|>nRXOH5yi#@3jd) z7OMl81DFJp@>T`n|C1B*L$?2SzVn@GrAZdQ+rP5ornafi3Ke#ovX`-oE-4zXU(&@& zjk`Su^Q`cHpld99Uz6ZE{7d6^%ugNV`K3k30S;P_nqLuhDdCd?up1H=v?ubzBO(wX z=AdlyD7ECaM%k!_^^(|!7OC1$VYsYA$MP;E^_BXG?+u}?K;sV_Kt!&CV2g&3p2>dj zw;nD{zsN5lfBu%&iBU$-7XjTe@CcN3PQrkgjgUWgkKr@F_Haprc7&A&Ce&W~L3$w* zHEZoy0;`6xlES|H^2;~?+3nlk{&u2#e1OfKbKoyLT>J-_F?&D3k1{!GhGY8LJ!c4U zRD~UR|6~#7(L7rPfgO+pJMi^cmqXhOH3{SdEY|wBwRto_i-jx%E$Svog!TyQp$j8- zb|PkW^M{7kWj$&_O|Uwz8%ua9C}3yAJa~8Jgn|Q>zkkVk57Oy^9}!kNu@I@zx&cQ) z;n2a%9{2h|$Q~_~6kR2sKX8D+1;^QU<>)i_-=xQ}T^X9vpcRN;{1f|#a$^O=Vxbes z6L+M8Sz*WlRxwg^T71w>p&TNmrH|+R#d>KuavMEcYFu`Zhw!k)!Gl%u zDTvEeuyN&_8%jQe6b@d_#?zMeOMGNv^op49cCJBzA+g8+!dJ{@bHYO6X!#bXXXPj2 zQHi&f(jsaW=PjMhcXlr|@7e|7)noPz_!KYO<^YbQ-j^6L#nvQGuh%koHWO_9M}AhGQ~kXi%aAbMS!r&9FX9AHCGv0pO9~t^ ze3v5!eoJMwD{$P}g5=loL$ORG0PNzw@C(1drvAbUFAxRc0|YsOK)LvDOdsE{?Im_i zS{tWf4kmHOg)L;cmqe$2t-i;G8xzyPOt!r3t2SAJm_FCtHs_%QbUh^wWN5#3)k7#V ziSn^gwXi?}BGhBGT=A91%eqDE6>R?{0FsvSjZS87JOIojpOhIF5v?0+^+n>dj?5*MT&oj84K&yhC|ZA9mCp+_1XX86L>M) zLG(;Z&LI+xyW~C^2Qvwd6=Kt0g_2^0u*J(=$-Qn1{g6LVkXa-)OGf;|rcPAz$}6w1 z$G`aEi-hRK+aV_ za!Z5a+J?J$$TXP*2q;A(9E>-H7l>Zi0p)Q2fpE70e|H*b zY1YuN zjd9~K$EU3duOg?jOPVH+%Dd#F`5MCyheiIz<7M|0=jLSKcldmkhSgUq+iuHh!A61^ zFQOz+ZYO-v0Ue3*#1&+*i2m8yNdRyFXMbOLxcHAxe)5xS{NnYwG47T>=Y2?7CyRj< z@#HQeH@C=Gsla7PGeHEa=!S~6cDR|>uVMuO> zn`=y#ZJ7Trf&ky$0a=!bWpyY)Ni1P-i6D5wV2&7N)ilmy@l^8FSU+D)^zV=g zw(k79cJHi~5I25}TjFnd>IQVod@KUG3&!3d_~MusiODDUs={>#yvJ_n72bS^&u%P~ z101xztM(OkAk#m(NNHrO0|Z9gmn%zDH2mVP6g;>3e8{vNx``IMEWAeUaA@;vPH%K4 z3{EQLPH!iTMAvFOT>MWxAs=X9^*98=kS+n{w&!K)cQydKx-D?c&O++-0v6T*+#zxR zyTAB4FO1K{B5_J?j(Zg%?$VQKTMZ^%<&M#ay!V z^v$DPt6Tr%as>sI)yw3~1DuyA$$-}v9xeg7;?m`DTH=D514Ti{LPdb7bYG>sTg*z4 zUl6+mfztwdB<`@I}cD8y)+QQgLzLZr~o@| zj61~okFs%rqt?%tV&$0oVf~A1;C{GIqkkTs&$lqeS2vw=g`+lx)*yA%*>0SRSrX$Q z9{4HBgEjq43~~SyfJ3CZpnqu|_d1lnDns*@@hHKFX?5}-0%49(q*dtY9J_LH-sR|S z_T}J>+`;xL*F2rl9-LZ+4=FEoNwi^0-Z4EQCAoX=64)5`yHE)m$9`!sfN$sCZsK-a z;wxf@P4TeNNXyIt)&cmY93a^o?;iJc$Bh<+cVLn&JH8p%VL*Jiy>!fln~VW7LY^p& z9nRVb-K>ANfBs2)KX=Gq;X>>X;`MD!IGuB7Anah;%C$!#@4KVzr||s; z-@!V-ru$1lcci?B&|SpWR)pkuGyDw`ZynGRSOWV?K-k>8a_OFu z;v%F>tv@VACQ7}nJR#8G0h+=_)D0TI%qMVp%Sd+f4(?)Gnu6?d1D=Md{; z)govh__-VU2k(irhxNj>cpnm0+Z}WYc5@P)v*KVx30pZaQgSpl3R_7$t2MX%U#UKx z?Eu9;>j3o`SM7AMVzot6!W9r^0VIm93j9wwfIE?#lZVWB0>JAAhhoFOo@+%+YTk37 zQkd~hqcD?Z#;BF6&5IW;UqNh^GWiJ;as|B7wT~#$Y=JdoO{8$Vc@si4qPF9CEQzGw zU07ThR0nVbkyT)cc?RyL9AFPGLm(YMS`?Pa*N`l`17DTTjh-!~#Q@Hq6Z2iAY7H3; zeslm&fFtqkW|Fe9D#go?q=@HAxNc)^pd3J+0mT_=!YsRl1QY894l3AGU80IZ&r>NkmYqN0 z#&|&c_Z;cGnm?-pJo^M#2QXOT=gwwv|2J+_PNEPdA$Tj39S*Q3Kn}oiR|Vo392GZi z^Nv-I(gE1p%rTS*7lu_Kx!O6)XDg9cm;|ERzr-Zg%a-o5h5O9IwP8;Yq*)Xn!lzjR zilxgFU|Flo%S{8Ui(fBYH+b_B*soCWGw}Ua%BRvq%b?+Ba)T}Kx#ch8l>`bwiBf~+ zNz*KnqO=mwR)IXwHWTAnDr;^@Cm_bbAfKv;9Jfnj97<38qPlWC0=9vLYzX~}k5{2Y zb9v@F3`TwP1sgoGv5`>r`a4#1O(!NkchtSVVsy~1Q8 z#$xUGI$4Uu;$9KLj>Zb5D*aUiE_JHL($y=EpU`X5rmDz^|0HE)Jl2HTw!OEqsg*a7 zxg2#tfMmLi(QOAo7TkX~3BFqhiYuzZ`GKfeu~$hGB=_u#yfjVO(S*9llBqh=_H>v1 zstgz-aidIfs^P;p8V)x&ly&abOpOnnp;cLeLx5MqYm#o`uRUH>LZv3C3|a;plX0=1 z>$9nF*-^z%Zul0yGO>AEp#fc_leP(PltD#7+X&<1bYi*D-Ja{=iLZ1_mfNxxA)-d0 z{K_9>KyEn}YWXXvR>E0aW!{#FvG27Ho$TR4JJ}%|S>#SkNVY3<gE_4ZR-l_Uzzp& z_QMVQ#z?zXZZN>Mhh#DzW&*rlnJ4c`_r=w>9RR0fj_@yxO#PEmBS%wIhQ7t~*oetW z*Vplpx!Z)#Y}Gow4j>&6UxR&fTRy;-9xrbi%j4O2!XP(-j-roT=z+k2)wyVNsMgQ2 z-LC{tnz%bw_l&Y&ZEsJ!K#@mI64}#1b=H*0QcxN5w1o@lxq>$ja?fX1hxTx|a$;Vo zVUH8W$mAHH@%UXdYe%tVm}zB!unqs6pyA`yYi}NHLI{vf9=qTajfL{5-wb?lJ8_S)(sM1 z7J+Z)Slk3RX+hG>Zt;BAYq?Si|Mm#F9<5ugNq7=1!?YPC8^z6SL%JEh*cswpucNj?Xt@id>3N5J3#_o8bsLrX0`S<+E@CV z-EWqSd7;R@r1qyPzQ5a!V!xME^qkQga|NpmTmEn*&FqvolvEC(pAyw+fAxFs za`!FE{!wuctQJ0b`TdsI>>#n}d{CUCgf;wW4E@W~Z_wx_+CFWby4k{!FdR8UImwZh zEJihO-X3d*4+PfOojcM1hZ6as1wi1IQWZF(Z%f+RtkUZ6wO&Zj$; z8L{b=*7q2vu0XO37iBNn&u)%dzjbW^j`GjO^Dfrww&R{Tz%l-Nv_g*@z@=A}anYJr z;Y8Mjg%Fo(6r_M|Sy7$BrBp~TIq{NJ*iGQWe*WHn)cZCy7o=c<>v(Zf+bIfb`nKED zLBj3@ci5i1_T*!cSd)swV-JDN6hrv9@2XQDQkR=lX1x)GBqi&{$ii7Mn!jDq?6vp= z;yc7T$7+%+^MZFSorm+pDTiN0C_?u0CxW#+E&Y7^wOaxaZljQ14zTiJF}xp?0y|e7 zxM*pPw0?Q=*f>}sX@252k$^B--&+#RE0FrsA@HVEAf+)xYZ@~w#l5FG zR|3_@-imd>z=}&}`iWaQT()Av!deX5k|h+};?y?pkDGS`Q|NnTU@&(<7K^Z0x;W2) zdToaprN_901uIG_tHaFG2#>FkTPBl(aW%Z_EFAyvDCN1M`i;ZB_= zlx^su15{qC%A^lO@u>qi+hv0?#EyqRB@kAg{TsuzD`(nf=2jH61VT_Q+=s~xOSP0T~! zXf_uGEve-a7A&~!m{*d)W>0_|z^jw3u_WAv2N7E@WH8egG@fqfPOHZJwJq~KuK7Uc z1XnKmF3YFq|J4EbOdViRXgNTfc2U`_y3A8W5wB$*yXyd0ELN@bk-SE#Jj!l}soYGB zlSObgLLcxd5Za26xMlVpZdX}SR>4*_3#UY6;t^iSWwX0rXS{5O64n8(*6-}8neJ7@ zA#nroo9h5ki()I`x{}?kyQ$W6P>Z^FqB%tMx&13J{Hcda6|iKKih|zM0V3^a`!7#T znLXAm#e71H2f%J@S5ZA)Hj5@HDi6XJIbGGf#7f%uMubiY(@OYb)zI!b06YEGOc$nM z2DN}icfe-YWm`JBKsvxe0ak!@Re`tb*R_(YM+mehfb`?*0MUCA5#1`DtTMvp1IIbg zz^Gt2`5(C(R!2%U){e(^ELc3#P6n$M%o_2Y*fSi_UkAwga{$jr#lbl!1?-! zRj7 z(>w#78pBumjH3}$;lIw>szNMxlIfaIB}c{~X|8TX^aOkX_I|-Ic*5 z2iTE4({2;LszCgjRQ+}O0>T^}y=4lk`L)eE>4#OyS!9Rhf2(K0d$9!ho~55M4Um8B zR)NKSfeH>uL^&Jfc+^oBk{FBE!?$u1cO5|M_tF8dD)~`(Ps$}74zSj*1K8LSGJOcS znFFL`$U`o@3cew+TyuR+=(@!9jLhDGn!0!1bpUe!$BRpX#imDAW8up}&@~CJ3Ut+Q zH$yN9HUtVTj+KYmOcYRzs(8erP(Btr3s9*8l>4p^6#pF7UpdGzD;>b{lwh0suLsw; zO+(9Qn7d`bATV0Ly)fDJ)TngZ4j7j@&T^z4^mq%llO8zCh@U3ouXt}YsjLDicJ@0D zm-< zIlx+fv@>3e_tDBckq)nWq(%)wIQ2p{BvMYx0o1W zalyLRM%bzf@M@B96t|pGvXco_qIoV%!P&yn&=qNZHe&oR{c5{{K{=wjDUIHf*c;K zpr+4CNAlbLO~Ng0uFb_u4aCDc6H^jg9^529ODq;&hVhaiv-m1M2k(-Nl9+jtvWmUc zF|HaM20xNFN~>tqf8jk6DrWsMO*C!e{X1u~14_-89Zdl3zIIr1df8BFZN9<-uPdmF z_bNA|HF8UYJ^11v#IeU4Af&!DRIXW}xHhD!2p!GrgK#r7imM{aKYZi0N7=zy)Fi&1 zqd-eQAi1e)>R*wkJ4bO>3Ahkw@vTQgprM}z|J@~5i1Brm$WXX;r>#7wUyW@klO`ds z+~`|hR|g?-IA1_4U(0h{eNB>37T0jla+rjhW%0{8wlXkrxNkC`4;TogG%T%R%+IHmRh{xE&8MFV5iTPflws9X{czcLa18I-SsBVeY z>`?Zlh(xb;zlYT|bY6nuTG|I8S%d0Z)?Dik__S#FF!7;3jtP~gATiAhZ9Wqwxx{*R z@ny{HTJ+lr@fO(|CE_PrA*jDurN35Jb9UnSw$IfIT``eE>?cUrfs48JgSSf%<52sE zM`-easXr}=0o&-Uty+Wv&yP{^lDJELNfA5ML3DsRtfiRp#vDQRHGdC0xOjB)n2ifV zHMi%r;raY7%4Yf@1sq-IuK2Yr4lbYELOavDUTlojz?J?@7uDc?Q`;-PEop`To;;?q z6rRp&6J7uA@j4Ly2MlHvWmMaZLNxB>1KzxY2M5=50M!HWw*6g6zok1kIB%pKko%Rz zk!OJCwUccio^GEcyN6`u+Wnq;oBoB8s8zhE-UA$}8|VWj#Ff#_qs*WL2;Z^^qjO#= ztH9#&mx;J27G~o>;T9WA91)@s4^8k6sek@>9TS7gDpMlgArRDgHQvIAi;mV+_%$A^ zK2dbG20whDd@ZKtTN$hvvXGeI09(*pe4AUoA)I0TPI&D^SjHCuennXll_{_7I@BE% z*Jwz3$G(<4v^ch*v+5+raA3vt9h%u$&5#a$zEgfYH4DNjVeX&(>}NmqsZV|U;rhfU zK4DJ~XTUMoCfFKe{=*VvA2M5W*4|Aws@>3?8@R7#ne^*d<>RC^U71D&q-w0LvlB&4 z!vr|>6K=H(1?os$$n$eU{3`Z@t*ak=#6MC4MS>Z1@UjOlxZflDN|>71TZLgaNF)A3 zNzNm$XR}IZ&(9jU2;sJWULhOULE3I7=&wIs{C7pFBAl|rBcrV=~)@|mW`u; zsfnpAaK-m8DMK?14Z9rb*~=HSySRy*bDl2ga#ZbDNnX_5wjcRA{8tHS*b`X2+_`@Ii(1%`l;f0kNVH07+IQsY;?pgLl>vay3#2LI)y9O<3X{x+WyI)7hvOw_HQ4r z?PnFj-et>KMbR>WqM){avpq?s1c7*BEX9qZFv3*%Th@iQ$c~8B%2#JstNwJ{L3gV< zTM)E1l15k|jklqBt!*uPrmadF9oyA9@cq8sW#t!aYx|3xZd}^_kG|4A5d5P=YRg^*;)8aP7ECY`@!P1 zW2YA)T8wGb?=l8%{-JJc!zu>>{qa#-JL+nvy4!yRissUR@NMqu@tkwf(dDO zy2|-m(T}`3vN4Xq2xlsfn9kP7ta8;j{}H1Xm4;MtxN!rvkZl1x8$5D?C$#x>)-j^o zm42{}XJ5q>u($5(*q!ex;J$4cfb3+ z?|rW_n?yvcBumZxaI1X2?B9-UsGg+K;h~;w7%XR_C3x0{m9eya45;7+p%DBu$3dg5 zUZ~u{gi`V>v-+U}i2Bk3c>U~l>?M30zr+J@E9#}%Ios`D7Ff6cEztz;F68o*5Qm(0 zNOI5-_ZbCM3-VOCzO7CSevV-o1sN|2(&o=G0zQ_l5mUyjc|Z{j5)R8XX+t*$!2hjg zYwez@NDwzuI4{N%ako_pz~ zmsnnoP;QJr+_f)6Eki8Ln8AeCO(_TMF2~ zX;suaF;?o(oXMO-crYKUWIS(0%{)!ND+geElf03wPX3}D;8)m= z4>0}N;vZ|$ZT|=B-XS$7KV&iv3ZhxpH#~F9x=}K|bW0zuj2ZS456AXgS)#1Qx8ryX z3&_^MLJ{i|@Vw_e@A-+J_=&eZTtEKfKmPW&zn!0O2#^f0q?i!5M3AN!u5*bJPbKyv zA85*X7RvZu3CZ~rWm9wjQCHsR|9uBa|xrIPgR?LHaSzf7k-q`aDfjj}$0W1W? z7b^=g%_!*2i0F^N!$P_6Pp+*0lfx{3wCP`9ZfH078=LV+A#By(V+ z?wm*p0zgDM9~oF zu)v6WJ-jpu?e^ zW);tMuUZl?F1nb-NSQY108Ulw0KRNXyz2mNV9$1drn?)&0HpAV9EDS__$X^?WEZ?o{pj zNkcf6ns4WycwT;=n{<|Um5I~rQKDCB+8p3o2&xJc|Ez%GIuag+H!R*Nkhm_kz?Jdh zmsmI_1RRK2#PKal&*D0(0<9^p16Z_P2QX+0BVQmfDdWDFw3PG0DbxZ#6 zH~}#6a)1qi@Cq^gIDdmn4#FO+%YrnGuq6+cT-M}!tJEtj=@t-u%Q4ZvA_FlmNp`}Y zq>X7ga+zA<9n)PgChn7!X^=7n?<8$vbS)EA$5)*q+ZWpilc|%Xz$9>h&wS=HcO8Im zNCzMf{?w;F#X7Tw7&MD7$-aA;wVKsBQB7SehRDde2kHi~DO3eYzCf*p*Z{5$P&Yuj z9m@~9TOFdVHzyc{2TI_qXf7|CKgLD)ZPqRcqlD9%u8PA)2iPcRPk>f|I}`7E4S{w* zzOr5XB{{&scF%{~TGIG59hO4}V2|XvlwGj?^SQ^1|CZdr444GK!6hr62j_TvRSIPn zW8?q^V0Rs0AxsBJ)342y!uD>`ZkcvujsBN(Om}s_nl)iTxHo5L0*x=dpRF5iPY`uO zq0cx0FlYh<_KS~x^rM781U&5eM-K45_r1>$h^+(@!oJ1SScbQWxmqV!yysXa*j)!m zgU~W)l5Ng{>dAKg6k$6l|fB{ zEdXyBbXx(-5Rr^RAb!&|bG2ZkwuCJ@*_GoDbpZA-9x&MjI{<(6@!A?F{?B2ENrmW= z3#3i4>gN)+g;L%Qt|hNL|L$mi4bFx5FXNcG-NAKb0uXw|1VH&~3{D_pvL-IzV}F_?imP%LT77zpfPTt+=T; z1Cf}f%p5l7tfR%RW@HjQO9N>JTjAHevWyVCZR!nu9-O@vPwd(p^t8)BpW;L432)D2 zi(g}{v6$osm0hS8CcL>45Dp+z+jj3EIdP=v`nmhMSEL4Iz@fO7)yus3z(KT1s%%uH zsQ~J{)#_u5TlQ9EQc2s~QNSaF(0~H4m}7+CvXdRa*zzb#?E2kOyPy1VZn9 zxG?>n`I(==D>xj8e^^ZND3xcmA6xrwlscQLc%oMAV>l@$e2CvnmM(QC zH6&38w7oM|xyq@vCT>ja9TxhK?MP0>QGMrH_}8Z#pe)6>tK!;nyM}5^0INR0o{bgb z4t#$|uiAyhijD8s{S}`auGa2^<$tR#tUn8ml{7FdzrjvQ6bL2d6w#Wmz@PB2c)q77 zVI*rsCh+phFB9#2=;0#q#q>ED2!7a2$fHCOuwvGud@n9eDjQ)}1>rRVEe_x9UoN-O z-zGhl>1=ZVjbx_??3OxfWstm+rSZGnBH#~G71es93=z{FNFL)B9o>$s12`;kCvPlH zE1|yi)3{%jz}hR&?>fM?Y{b^@I9yQ^KTljWwxYBp0|hO^;f6rkRs`JZ1FQcNKUvV+ zqa71ztI_ZdJk*viM~WBL{p_HIkC!~?n-eFtCZdpV`(JjCWj3&rS|Ph5y^3uu$YL;j zfYo3V!3S6_5+}@E{n<}{`qShFM3QVMs&2B>+?dCadt!C)0^qG^7s|#0))cSR&;Rv! z9i8B<0$r7uYZlclwOJH6>*lC* zhiB0vi>%~Syp9IL6$U!|w^MEz16NeGRT2m1cjNf@?ce_GMiK9Jf&&UHyiZuv9s(f- zwEoxU0R#pWm#+|-r1%GoYm*j-raYgHZ?UpVL&x=%uY5%+M(2suUGxR$28Tw|!2)^M z#9hG;%U(MZJ&yD{p1-BMZ(p=9;N4RAu{Nvt_SBLwk z>XOZw=Xe0xuJ*R={$l0Y&+j~5nUG{3+&{mmNU7Kgso~?2sK2B#Yz@$pAbK48ew9~|5V8+V2DJXr9JaceURvapcSI4qat6u}p(gtFKq-;NW1 zmX)~^k5d!zW8}>^o*Uab?2>sM5)&4|qM}lt+{qK^tG@nl$zvsr4?Z9qlbgg#0~Z|< zuEvUqUT^VQm$PVLN#?frTPx@+G4JC_F%ZeKXkq+;ch9f!*xUqn!;;~?xGZ-6o$q|- z|2+rZ=1%RWqrlwD9;807 z=RoqQJMJiVeqz*n#khan9TEo!rY6~mKHz!f&ELiMdp&h}6hs|l@e&0{7Vj=Db@mb} zYTSn&N=3$ct_yo<>Q%#V8Eu@^9%=U1njx-uokMRFJ;&qHIfYtk`q(;KC)V=qhwJx$ z|M#^VJOQuZ7x*>qO+p5F*+kbZ&3zJP4kSrK6c1?t1p}YkVyxBuUD;D!q)chcrJb`lOEXnAlGonHxIi2?1i2Dv$|c=v5c{hc>naiTON?ryYv5NrBYcve`+ zu^W#L&1;2ELbhy0wdl4cLo+wA%89_!4GvCxb2h>Z1MaAW*VGI)3`bq<>u}O?t3_8M zm?x%9zmy-!Il`ui*~MSm-_66b=zIuf&5d%?nEs#q$)Ei3 zAOG?9zyEz6h9|)*_8j=~m%q%z^X-Oo;>E*PHwCsF0Wo4j!XO>Q+H#7?tM`8%FWH6Jp=3Z?;EnyC$k@WV#w;j|XW7b}C;8uV@jtO<10HsL z_D9SHQ^8>V=<(X!6U*T@F&jLS59cXz0EuA)@Wshs^5zJ~p~zT;oo(?Z%3mHewhES& zPh`dUGaP^&F1Tn+dJc|Y7QCu})7*^?fPEh)fY$E`z@wHA>>;qFp#@n)2A>+jzj?e? zNiw;prfTX81k-o-66VetVQ`*rjs!`6qLVL6rrc5+{vBSijB$DbwgbI5=b+Bpie4rq%R6?UOA?GvmQ*hXIOw(6%W)egu$(1`ouCY)Hj@oF z1DpNWOm;@C-+l8>|MXAYJ=cCP9xMm5;WKrBWh809K)$oGHR*}cB69Y! z>LT0a%{ec&0nC@XXPI~^4293K4ZaSr1aIpA+yo1R9rIDRDbK@Adx~uiU^dJ%H(&1( zFUIb0fQaF%a;BwMxwB-TQOTXFZ2Ey8b_mE{#11VKs?NYN{}}HbJQ2%%`wSs&6M%BW z~u>A9}&*YAIBsvPv}k{wEb@*c?lPSU>pqFOEE7{;z}&3y=oQBKiND^UZla- ztY745Euh1%u0C)$0GlHQgRNuqI)Fa#=W&4RAcxU`wp6F(7L}}V6;Hy0VMhE74&XR> zcxjEJ5J(3QIL#ljsqi^Gl|F3}ol_6l`7ibi) zVKi%87#6D&+lOSPvF1k^Yjr5blzd>RKUZWfb|7Kyg`ru0d;e96FMwwdH$EW=g++Ws z6?`B~u5$K??ksWsT_4!t!x~Q(-DMeTZ?a6+jDg>7IYn7Ai^ zK5)d(*b*D44)BZ+=ot=RPoOfIu>;4#=>R+lE2RU-_RRa1C{qRz)ljelUX>0&?7>1? z24%_kKq4HT3cIfWYAKfoj+)fIhHZhn4p1d@!FDSdU5pfG*p&$*G+tVw!OJ32mM}sZ zP)Q3%5Ww8a9(VgEpg5{PhCmKKxv$0jY85D=yMvn7WifT+ zhc|HwmSUtkKluKIk(nlD2SVqu0C9h;FDruivIKHU?;x|4um5?u7T;G#Y|(Nx%$N9g zNmW-=c?q)?ci9FR8%I>Kr2$c6eDU!rA(k-a=n@>n`GbZ!An~%!#$EV3!^UwAH z)&VvW5H^GL@RE4ztS_d?YY@(1AKpI8Ha?DCjAApQgJMn6QjZ$wp@o)`QlJUb;?QPg zin~Wz!Duq0LqJ6>j624-C5kKhw=k-8E<;x3ofXfD!Fa3wt0t7Ldiee*gi8S0{%x-Y zt*NZp3|eEptkN+&9ob10f}j&Zd9ScCzKWGkr-_;Q*6)HICCZDe7Y< z8A^p6%~n-6Z9GLKtof|ok+Pwc_QN==YS3Ezue|Y!G;Tpw2fjbi_JqWFi&=lvFNqq8 z*g3|0n{(F!di{&Zb4>O)1Xh1(RhZoVJ7?nSE)S`+>L;Y*-6se<)?I7T*{&9}mwb!u zus}3hJ~@b)w|Au7CVo|6F!bbJ3Hy~U-$J6t6u_UUHDZxud!=d0VjqX#DIcAvNxH{! z(fA*h?Hp8HsUKn4yY~lB4c&U|VU3I}dbGKdzI`2_1TKv*>jwIO03kz>m3n`Ma{6xk z&oKQJcnj@g6od~fzCVazTIzB|338SL_>jw9t?VYeL@W3$r6Li}L{WN>H16oIS0kDY zIy>}JdttZ#Mx2koU9@SFLy7(H3&sm#;LHaI^l^hAK$?EK*4CyhoRptL_Y%OtGJv_z zqHDMRXcT%2me{y@u|a*JBQ{v^*VHa{h9Gw5R-aw@C_w41XEfZ zm39JY>wbkm5tcNbpG;~p@do9Qn=e`ZwW_lr{`LB&Z@fZxuDbft=$1o^u94ksmExBw z&^*!%N)1ewRH-~?h|M&lI6qczIeP708NMIZFPGcZ0j#REzqtLc{|I+;Q!{OdE9n?H z5WpvQ;^IIRqc|!k2d-XNky#4Ih$q#7HeC+9c+1O@6H>Sx&=f`Ec<~Co6#v)n!a&buuuDaj>qfh!J?*Am5wm+3t!a)~j zVy=|S0tC`pGmt(rA59Ym+k^(u?sJ?lIY7@1b-=4RO4~*cU`NZ zMNPTWvKVNcj<&2)8#dAIm{tS-#Oue1dD%RX5v*&tZ0RN{v3luUE3NPwb44McF?k5+ z172GHCM2C3rgIG|Hmb6Ct>*X~g=vb-7IJimyX9Aztx&sV)&?f`WU#In!HiH=3Ex-5 z=$1x^pmx#!LZDYKI@RlC6}MbyZ`ib0IatMJ)(w)%X*4$6|Bi}k`YT$>XC^$Fk4Xfp z;*j{C70O&%uEq|p*Sf)ijt-@rXzEh+2}sz?u7#aq`qjv&8oe3wU3`B9N&^E8V)Z=@ zj=%o(uh(JZhis781SZIv=HB=yc@#GUTJ1eYL#$O8SuOjB8){Rm8(jo95@09v`pBMR z^}5pfxr^@#x!U-Xb)>+EkG^mn^og6{Ro1Z4v$BH5%ZyydB{=i zb#;s#LtCk$<#AYkS(9m58!D%&wJOa)(*of-YnC-cdR6xH;Bs(#l|6a8_DV?#zwwQ4 zeDj;%{MNU=B}yJQ;O86yylgQn+%PLF*eS?hs6wa80Wic-9BZXjintVn+4T zc&*)Zd8p#CMhnwg)hcvIp51A3krYdb-j43MWOY^ShP@_bPgx>0>{iN=U$9+}j2$}; zE0Y5VJ-mf_59aQ^+xCxfA3C94aZ4#1%9$X!2!_iCTFE}-u^Nhv@#^4;S*`ZOhQIJ| zDKjj66?eFw-_(dv#OB9aBMK6;jNwH`OJe0etuk@cJxMe0;fj+sb8H={Ie}JnLD6B; zqdzKfHzjqV_ppBUdrTj@w?@t-ME*KR|gOvAfJ><(XwiCedgg(GhN|me1PA? zVMIw3tCSXd0{GUAI;7^)DVtDH$VkWIdzEOH%JcJ||2+P{Kj{NJfb&+aW;LP^f9A(a zHgSmXRnxG(QIT$wJWCwKxH~D!g7Sj9`MSADkqR2Mdmw!kcF9{m#KIO%ESTQNhqr5c zh`ry9|4ki$hYb}Yt-+yEBb&VBo9yxSp$Hy!{Ma2mZ1Bu>j0QL>tN+{=O^tM^C24_THhV$~3J+nE=JzpQ{+y56VBPcA6Trfy+kdl{_8cra z5l!Jscoas@hkxP|pZNI4KmN&2ev+@|TV&ukIDFOzRycN(*KHNAh(S6AON+49U*}Hh zX2+u(6<0z+adt<=S6WZ#sL%=4ItD8VMi<{NIt{~;71`~dZ43vfH>3}E83OUI*eljh z2qc-V9k)YKT}-tDyF41t!WN5(IGFN(A1={~SEynI7CW2U&~&~`OLekO2S~i$HjCS> z?G%d{#6q(9a#yN}*%tWG9RNoSQ(fyI&@m1mYDk1z$D@pQ%?#Y?@`&a&HgaB8HZ{x| zv%|!(KP_HPm`^-j{DgmEt0qv%0mO3I)2aSoe<11}dE!}!gS*PTAD6@WUwP$~mmaQ{ zUw)bI!U=H zpc~Y6GMiMo#xu~X$ft+}yL7OYXVC%pQl7W?uxg&PO9q7UXL0A=RSvK?8gUs7Hw(5C zM-+bqtEB1o6#SDXKyvPpvqv<>b=!8260=rdgov>j;{X^pmZ#}!^oj&xo$bxos}8_l zVGU`)?^LT9stzD1P4Yce934zi$qSd`Gx=~#|7U;pXJ35rMa9_oF20CEiQg2ECnv|| z1HSKgA`*%VO=MLkMArsF8~@bfEYFKv7OPc(n5AUVc(vv&s!%4qdbefXfXkvgI{`um zv^Q&=zF^OK_c?xO85HZ}KDl|zptUu&>T-1e9tQ_-6ZP}gdJY0RS-&ND69$&6 z?KTInw0Nkk9S%?kRKKqwdJlncO2MriDaL_Kf+J8d4;C~Le}rjUjPNm&-<+GYW-N|W z>S`^L{a6Q(3@p3n`q;z8f8Y@>XWt;f&4;QLJ_NruiYifDvPh7CKBz>;r5E zeQThGKso?!hLsp-=~^a{JF$d=nGIh zX2~&+oIJV?V2sGV80A=rufY!%kKI52{PQ3D;0HhSp$~oJBOk#f_$R)L-?SoRgl!-s zJk!FTz1wwzv|~#Kj*fwzP^0>q1WWD6KgFHF>KVW309R#s9l#Sn4&-CRu@fM)k5gJZ zu3o9Tc|xrdC&50lIiAa!vTzqK4*{z{oVq+UU&nJ90<8m7MR`*P*x+ZWo39QasO+f_ zh#TY8m;=-b$N{cp(4eN*iT-Bo15K=&qjd`hLV}Cig1jw`*Q3EY5jV=d#Y;WX0F&U& zfU$nU5_e^`KobCWySD#B_eDsi3*^)Rrp)PaZ2v?)*ge+&+;h+21~>o_5nrkUBxym` zu5SBv05>Y>I=i{SF<{Vvum#XXdZk{0dzfzWXm=eTrmYZD_AcZRQ^w1w<-0Q_OW6=h z&oNH5FPJ;z6OxlT`2H6NBx50d-sDCQG->=6ffE&BJ%K#|mR_ZJ-Qh`9%30nwtpd3h zETy|6#e1q;E1_wtEwf7mz_l{s;Z$)@#P}gN{W>c|d!$$Z2P{I* zb!plyO4+un-ImorUtIXIvDb}S_U5IUTKKWpU{xrUp_hF+_9Qdlt`dNaeni!i^#o9n-1rBV;ODrUNwC|0v$?5yMdf*1 z!Z{Zl7LwwCDkbHT14O8uyb7MfpYv(%6p4&*Nv0BYW)eo?`(@HT@crSO+fxrh{nfIbBJK?J#6N}4 z30~T*Mx9_KbREFaShridDkgc{Kx2)|jkU8~S^r&pe`uV)1dt> z(ZnI%MJRb4nj?YX7yQy#^AAn{uOPnV154l$)2|t3vgHB&c+&TNy@yS=H#I#<+itTb2>o7^5u?_2%*F>qZA&naqoo+m4O> zv&$7leWOfOOKlpoxvsQ~`PN#0lSgi)B4(==^H&ly*nTF&G8y>nXFn^{!Y*6=FUJoI zD2;8bG0lsRtVZ$4rc=j(d5q=cSk1GVvnJqw;n# zyCJM)sag4~YHll+7N5#ax>a#Htp7?Kd(cKDuGP?NFkZL(ZTbRxp;D|;Q z^z9<)$`+5VgvQz5q8=0{TkEf*)U0jZ?1aI&ljLS+V;Kl(XHgVBr>38pB=1 zH;W&u92cKyXzGPj$VqYC`**&qk?~ypphn&ik*IVcQpo)p>Ad;!VzXJvUXhin*tL=^ zd(>8A*$w8(KVz^PZiFQerpE{JQSy|qZ7*^8l2BmK?5}nZk0Jj?&Np>Y3qy2W?4RZC z34`Nx{63$l0|?Fah6@Y~Ld*f8U^vu%c1W_(O{Y(6z6QUM3VbmR0UW;ewXeyZ9iZ1z zkCU&B(KX5K$=;Y-q6){nPCn3ZaL}xSWh1$ogOD#oZA1i((H@o%_|%aXbKJBGu27=Y zvAmms1j6Ncck4;wdpjQC03ymS=n4VQSmNsr5SR2*bkghn1$l9c`tV)}{YI8;e<#jV zfvhPW$46}sUrDb-WDQ+RD3>S4;*v4tAv2MNlTmuY09Aiylt=4Ysy9> zjI!8e3-!RXS=f-H$+E8oxpetKA-DZHj_R@!jwxo5X2?U zRFQ@}|N4Nc=*eixnG^TmVu=@3TIjj+Sxpys0_Xq|zhU~Hf4KM$e!@Q~Y^VcZKv+mi<#KH-vw`u+|(;p3;tZyZa0*Y{_9v{*HQS|6Cm;M0Bu+) z7Vl`U3MSe~RAt37$FS5gC%m2mXlFrHLn+y$*f8;`<9S4W(ax+kx4|^e!-Mg_0+@ED zJC3_0c~lwKlFrUgERsG^)MG<(@RJ{)(GdraYDAJ(Oebs;jcv ze%nrVxk5KA!kO6Swbx!d23)@Lc;x{6j!}@5l`7*lnpkyjr~Wr9*i9;tD3gI4;E=oQ zEG^AD*l1EWYscBuj^oH$h%`Am0JrA>xN0$n8ciy$9s)bz?jhj5qXX<5vuKWUsH#`%8WOcd}x;4b$~Eb21~vD9H1(> z_GizVzcQr!5gp)q2rSEk+(-3KF>&8-?H3y_>jMWXXvAu@Wx2Oo%=BqGMDkM}b0kTt ztQxBB*|ak`Ktl{-PT1u5Aum`A32!c;z6yEeZLyje#+m=c^RrXx=^#mOk;;=k5DmJ+ zWjr-L&;4`fEQ-S-y{&pf=^R^+OB()QO50h2GM_wO@l2;T7T=$s;O4=rpCHhnn7ESY zUe$aejL z1EHn(%fYs&5~j!<_j&@zsAUATZS0DnQN61T%+Gn`IIb}rhegcS%gl5D(}38{u0&B4 z_{5NkY^mhm?9~THu>yNsrTUgcfW!O5Hqy%8r0y}hx?Q-+jJZh7E&hNO-c?gK>5^2L-`r48}_3nj~ z>HwDisz%3+8c)32l3;XeN~}?We^yudInT?3@GX1}rh|DoEiNSCpqeomwIXToeGHKW zo=b{r%G~bj(Zkrus-jic zP*Z6or{aBJwWH+Mc=%GA-%_w#RVxo&g1fQMGC=ZNd^NYnhdW1Qj`ueoF5c$q76*?v z6KD?=^p#Y?ZNUPi5q6qlGzlnSD7jjE0&lkKDcVE_*fJt&S#CA-Naz(qzVc7@W{8a|e7Sg7ItGFY*q}(U!(gk%+I5l=; z;hfhcT1ESg0(YNd*ir}?+r0E`0T2)Ah8m`&!p)_`p?}jp{_f+|%yPPJPYD}t^WWb$ zYRUoX1Mp(vf5ZrM0F{s>eRs5vM`c~4dbQwj(0GvK?68Po?g8jOF6+XpCbaY%b^+x!j5YmgUe3|yY8FpfT>F1f;hF~< zSMXr5eaLWD$ zu4DnX_SeMBUDLl7Iu3TrG~7)J7Y%x(A9t%jtCZ@MU|vd7s~NLrX-2TLU&-vPx?UNM zK+B@6L}InZ6-0m?fQCcq!sPlu@4A^{?sOufOs7jW=FP(0P}p z-0ox>bIzb|EbFip0$0p*E{KkKn$NNz(>e@CX5WGY&QW%xzMIG~kip_Vn{mVVJ z+y6eQX@HbZ@fkUX8kLvm7v6dttDWOZ_kMuAB0}5wuO(sbiR`Z(I%LjiZX-Wvx3kV@PYr$=%Gv1r(6eZ( zE_RO`AQouz4I`p$3ohr^o*uh{6dKql6d<@fhg%6?*Wd=y1-p*FJw-wsRg}ft;vetr zc0fKCRI^O#*?r^v!tnzsH0o*r)cVgZqUaiZy+@7cSRM<7Hwxv_EHMXJ)Bo`W2YaFx=p9k;-lhEzp7xY=^xVt_6ns#JbFYG#GK8Sokifx z$|62+{Lt>SRft3zLG0$AF7f5 z@(ksJod2q4tdN^64=GNyi3Asd6CY%H#mWnWs@!hB>6mt1jL?Q;M>ZlGMI5ww_yOmx zs=H|6tH5J(Lbgt=pX?4Ana|PLIZ!UU{V%F#@%^jfamW{}5W$LH#5;EQzyaK=;#YQ~0h^-m1IRL8JHZh=GxuubF%U^C;(zb~!PR2QfbWuaR4@^^L3vNXmWz=>7Y3}L-#&WTh zmW976@3HFEo=5@sjK{p{|Apfaj<3hpI6FGW#d~RM7EKi+8C=G#V12{kNxA&hdt0uk zTK(60&g%IrzJI4%y2EYl)!ESb1sx&%r4S_rXa)2F5HgemB)NcG;3+(CK+rroK^MoSt6>EZy!v_}^FK7-R z`(5#m(ZMDp9l4d)HiFm@N;ke^DC~z0fLU16u(lP+o`?%pS-A?SK7<@OoQ2V_?m=j{ zt$1cEV{J3P^DEui-S!e+F_puybh#e6btew8{%c>au8byzF=pc1Fx| zm*zj->?QQm2PC+4%^*bI*L?d>v{r| z1e>kd^%JRn4CdeT_vA4`&Y6hhPIt-7DbW+q_gck@HzZ4`@K-H&`>fQX8k&V zH8-6$TDX`@IFUlHHhy4-M48DHT%O0!5S{%nS=dXx-5 zvb4(%UvqJzKGPoOC9HZS;2xLOwg^^1=&pM1qIVKh%mG$5Do~S;uiLj1aWr-4c|Xr^ z04wx|Kwab%&%h_^z+DGHV*Em3Jt}N8*_;D3WiK2j5Hivc=7hd`6iH_vff6}|~sCb6M-3!N#E0w@TL4nV5FC-8?nA*;sS5WR`=wad#v zh7UB|7n7O0uL^35R!>OOK5k)&a|`C;YyH`%9Q=;A^Rai4=*8mh5V3qpbITVwL?*sU zhZkm;wec1BSWGIW8C4;lqSswFxa$MKm^E34zU46%+Px0Yxp&tAk|A8sjx$_2fPDZ7 zc}m-kvcy%5G-|3n<%0BFySaBA!1kH`X>=-9G^NzkI@%L?gQ(0$YY0_xHGw` zZRR=I5S4Ml(M>1E?Nh!hWYtPk7U16RFobD|vh}=Xo|(I1y=<~nl)Sdq*$xk;e}U6F zypr)jZIz`F_!P~~(K=WJfwARPiuA4z1mKb6r(*PmK&$5M{m8kyA&}p0cxg=4F5EG+>56#xJLcW-iJFKuOHX<;vEZDD6+H7;;&XNgcwM-2)Z3IG5A4M|8u zQUCw}0000100;sA007evKQRCRfB;EEK~#9!wB2dYW>;0{@#mXEX<>kn5n^sgLPCrQ z8ks^sM36}k1O$~y<{1GQFNjPEh$7>aSrG)86ap9#LLiU?kRgzv_+6-V0vv z0-wMA+rRzT$3FJgfBn~gr<`)ir#|(mkAM8*?|=XM-}=_KzWUX#e$k6w0Pr5edFP`Z^(cS!`@QaUue;v$u6Mc1U4HQwe-Wsla+}AW{`9At(aT@{ z^4GlPHLrW!>t6r**Z;|%{K+d{`O4q@-QNY6H-P*B4|u>Y|MD+;{0?`x!*RzQci3Tv z?YG~4`z+V~`|p3`kw>0*;)!19ZO?edGoJnIXM6C;PkyrhKK$Vi_qb2+comra$*f=e z;urt^@Be-yzVVH3eAAoWD1IEZ3tS{b)ls-0%I~@4*#1KIutM zdf3Ar23Pl8E(m$ZLmq-Ue)m@|0mD1q@s7Xz%fI~4hd%Vz%k{wze(=5TeXn`F0jmLTL_^?Dz`W!oFEMKXdlquc z3*FHge}V@vk=q>c9>~!hv5W#6Zgzv)?sm7k{rqzIg10wK*q=QN%O>M)`0^v3bH}}w z>pu6n53sP5-vI=^2R`tD_rCYNahrGD`ObF+cR;`$AYuZ5LLX>Aj{tGA8+->JEd1G@ z{TUp6cO^8(#5>S9sPN00Sxm1%`RvZMgtr+7RbGIKw>;e(-}qa;H1p z>4XzbIQH0Mk2&TT*u3?vZw)YDLn0Kwo#Ed6<~O5(QQ#2(PkY+adc0{8fIHstj$U%~ z(MSK}PyXbA2OfCPK?mLZ<~R2X@c@q*^%CrhxxF(@VLDG*E?@i?0sIMXk!RfS(T{%g zZ~yjh$@wQf@d-SE-SPc9-}%nBzy0ml<(i_(Bum4Wrx(PnxKVN?F z2E)aKreGreyD?jjB?B&h^WS)aVBK}OeDUAJ9h%%`Wx!j(eXCpDitOSN&|_17f)^B` zr7!_Tp=_`Y3Wenq5}3>%y%9e0(;q2jcbWs{#=9nOAYw)bL(tFt+|N-GKr(HUf7EiB z0tUsqAfc`Q*K*zB7Pt7BpZOUOS}}}kEbo8oa^W)|A-wq`IdSs1Ig&2-8_0vVyyY#u ziX<43YygIa!>=g%$xnU~jsNPe{tDP8h}UrvhBNC}tu+Ucu(aV`d++7DNBr*br|i9a2d5u{Jnr`%3}X21Cn2Q#0yCp)#mp^ z9ixBjV;{4afA+JVHRaEI<}<{=3Xk0($_fB`Rs(bYo4@%Rzmo)W_Yz}4KD6T{pVn|( zbf4wI*^rO9F%>+7Rgx2{3e^KCIuGMK-{V-o(<}paU3Qj;D=1}WdY#a&c zEvH`VzvfFRy61DB``p=QpMBwl7hZ6|1z-RA*D;3`k8I$ZxC$ZDIk(J$TuZ@9}Wkd=-j1ExdA;lT7S>L8-qfDPMTWf3L=pz=#v^%1Kp`<%>R zW>1*~47lGyWcmHjasfEAbAy#(6AHX2M8G4Bm@XugxFP(yvxS4ez!Atmj42N}H84?NKS|0etdlCrI%iQ`Q=y{rIFC@^a@VGE(U^@c0?vfQ(_TF#~B3Xyz|aG|NQd_ z4*@^`ssW3)DyCChFay*q3YI;9f!cl`z0e{a_k#@*EP6IA_=e&%x>un$PHhL$OAvx6 zzInOYiujWu;G{Q$A-V$|`4WJDNzK1#xn8(jDC^|_^D4}p*<+5UpMLs3{KG$(AR#~N zth2BWm2aCXV~R{N*o02nit%en&onmjz4jm<#+9Y#i8*4t0Qp%Yh2prh|y) z;?3<|vO+U&vKojnvid|6ejyBS;AC)Mj_qk0L*(Ae_F2)5W6zI~550MroljiFOHklv<>)CNp@ z@itz5#F|iZ_~C~iyj;FOll2iR&|zqU$D`Ol*tX2KuD&p>UXy`kNeIhrgY z(K_sb_0mE8;2toejoWZuh6i}i66yeH!GS&UlkUKIS?VT;z_Z+052*&&06#=|p{ZGK z<4%u5J`xzwvcvY6jcHmbV;aJ}78ub2UD{%y6qG_#DhY=m3h**qvA(H!A?_#D@Iyg- z>s#L<0AKjR7pQ+XxYJ7LDH;d<4GnMK{N^{$J@;Iwut~rqr~`8B1m{$0nhW>02$&Z_ z$E5(EHApq?hoYPr1k#$8ZI&K1i*~wRf+&~-_F%)}!wTKDZ5tJK*=3jc0+Nlp$qiDW z2Uxu;&Oj29=M`Rrs8#?#v^O_~?;ry)0x-B~Wmb@_r<>ssC?GQ=M7Pk;1Xb=DKDf_Q|?Q0N+`!BxuV#H(bBA)lq{b2*y z5Dy7G2yZya`^`5)h(^Q~)TEV!i z!XddbDO~>dfB*McK5O-Fj_7V8DH^o!Ac7J_H=lFPITu}Y5$2-{2npH1fk;T2b0v3vLKYp=bQ zE~C*lhB3TXU|G2Hc4HXHc;3|(yVV5hGl8-f{RmdPa?CNuut{hm8~|ddBt>Y3>7kem zm?Tr7odC}E@&NT_@XZ@60p<}jFfpQHR#qN{3YCc`{MA5I5nh3G ziW8$7ov^`9b}CA=)y^LE@|=wMG}=YwAVUDGPpZk78Bt57V+b!tJ z932dP?1(8nNQyj*lMF#7-RuoC5YF%{XbBJS%nQ?Jv$mQ+5#DkS=D@XNfEM>70;5Q1 zCtdIW2~d%<3w8X}q|7v%#Dj*j;g0pejP2+=oW~fW2pI!yMa+)+O91Y_T(Dsv1nL(f zq7+6Pa{@9m`YC>f1djjmafk1>L!L}3gnS=GA zdoMZyo|7VTT<=M6T3%^7*YcQS6mKAb?IKG7QHYb#5uG|9rL-9C|Ms`P?UOp&7!M7I z5o0mO9IXK3-i5t92?DsVCbqr9yBYDQYl#>$$tN-Z6hPR{OWFYB0&CY|s`L$EqnP0( z;~vLQ>b4Ldra?`f09f7fDo|8J2sUv{x;A%>XTd znH<6eIn4bB^@ubcWtwB)vD%myN}!xqopQ=4h;0Q26^8a#iU7gDjPKidGYAQfl`x-} z1r70xg2{k^*dJLg;AI>GqZ5yu?(hcSlTSVwXW&=L()5kxHslA17osj82^fSM0xCcb zGmv0v-keq@Kc8JL0OL#Q7VBSi)m7WKZ^r>-z%K>@6>K0G%C-saq$PI{*0=Z@&R7{19RLXBIF!3HP=ZB^UEz`&xqdVxn99A7ygAm6fLEDC$_0~rJ z1!P)j|NZwT02TpjGF3(4nkft$m+)J%d_vL2oJo~2Xr^4bGzXN86Bjfc1cLAR%VipQ zrrSDlfg+zNRJ@4Kz+(!gX5ya0+4*5o$q7GlWUohfm_&HL zSQybapIE^i*|)8+mKW;`?#at%vZhR3(!|i{&1@bTib4f2(opTRL#{2eW}CHocmp)z zP5>LlaG*6bVp+OP(8d^G*dQmKHUMZK9pd1~C*@%s01Eg3J?9{EB?*N*0G+TBFE52z zZ^v`#10?TGSdP-hLNiifRRR`7aSg%=Z#DFj$;jEaQsZj>tPXfn1 zhY~qJU@(hr9cGjNJ4Q6G0%_LpVBdTQIfAH}&bEzM>=30+(;zLqNC0p@_21D%DxZEz zkG65LJOZ`z`Dd=KR@5BrfT1j48?##a%)Oc7ZyE}*lSvl=pzzuPL6nJDRZI}h2>^2( zQ&RuP=T&~UAe;MWhfgjS4uF|>t5a3t4GdZURC$wA;l{NB-1Me5wJH(-Ke_>^9;fv) zv;a(2S#(}PD*=px$U#zsPiTY?lyVQ8k59rJy{#B6+*xQ02uUw3OpDy^?}F0S15PP5$K5M8HGA z%w7}LK!w#hohb0mKy+ItfOHJhcLE6Mo-!8{DlUjNecaybvCGwVEkAOm4Rsw4*d*0j$tK zqXW;}&7w7s3{%9dgnmRy_j?u&y$S~40e{o+Y<<=aWdu&c<^FH<{BrpxbCjVw89?ri z=U{K+pZ^dDGqFTkK(U%n5E$E11u|n74>%gjQ#c0nK!-sJ29)&5Da$odYcMybI|~tO znR68!;dh*oGd>Tr_16#x=7l&OFqbcvFCD&mEeb&d!=OEu)dQU%1+(HUST6jNf-m|q zx^~LZMrzJ<+=BoUM~S-m+5yv1S{gl;MSiviUM~QIRp677Lu0(+o}4)a8Wd#!80x>X z`ZjIt)$YDrz7(}eT9N@1Pbnggm$3e=D&uG}R@&4)wa7;^>TC#$!1;%l3wP3Uh3gd; znY5d!rPZGbN<%ewzJKpE>trY8UT(@*IhQLKsDlo9kkxSb-l{_Jc?9G+HYf}F2$s?y zcoF;sFB1NOb0&@`NkE`{hF(ah2ylmn?PM%vtT@A=ly%+^r~s0-jua5?&qBlQIUaJ% zxTmF{kd|TsQjvv(0N9GOfjc@f^>4@vFTBtO**?i4U~B@A$GUhg&|{I&<#~IcfWF6? z1i%D3z9CW8#7@5AIdABQ{?*InotFX}BwM$0&pkH*fGmiBP`k{I z#;nnl0T#&!L4%HL4E^He!r9~WoUqM_TP{?_JUAUwp-xt=?w>@4i<%aymV0}YB} zVkp7sDUVnX5DR4=wfD*z-e6<9&m zMhg_=7!i^o&7d8abgW5w38aY>BZ7iX5^C_AKR!D7FQi!5@uEug5bpgQWT7YrD`0f|K8#nvV zr|$)f6qef-Xv84&w$OpcpNjjP;QpMgZ8WU_g)ZkkV|C;;qQ(4fDPXB$bXo&W@{kq| z3|$zpSffrh%`xK;Uy_r%ESE1>utbp}op75s6zA;6B7%!>&i2Ddvso{q&NiSEYl}<^ z8lBSNT23m45FS7jjBZ4WLy?`G3FJ6tuhJbfSGuDhxe2r1(BHF8ja5>yCUti(E&;fu@VOZ!eTfFqHhV4zSKR~ZNnjflCS*E_>QA#I@YyOjZ|i?M4R>(C%GX@kk|E&;&tMJd?;;5N8`2x=HD z8#0FQc2Wz87`;F!7$hob4%47rO6(YS`^%PV6#qIFi1GsyPzqebp!r*h=t3v&Y*$1K z=mr?^BPE9t`RV9UV&HR&d4NB%c6@1(Ne>k+TilCru{FFvVy8=ls<1yY5M!l@b8Fa6 zk+hB&*TH{yqI`pLJ|^G-oCPzt4ZsSGTac9(8ZJ|zVC*ahmoEhcxH%J|OuDkViuIp8 zM(0Nzm$v1I`zMSAXPA!LARhyP)3RS^K71CS5zl@4)1S^3n!}TP*@#$RVoJp4~glk zq=7mUG>{)NG)QJ~Rt9nd*nm`6Cw?pVx8L`y0G6JjwDUmcMo9RKXIby;sgUU+@<=50 z@2L*kefrM$LH;}sh2rGoE_n|_`>$7d35?*gmZu_Mw^#y(b7v8CUhCzZ>43`W>~~5i z_t6$}6O&>07~=Zep8&L-1%N?OizRdTa+N~h$4*$2qRzYl2Fq={*3qvpi2R0QxR(-T zz3v2X9qyn1pp%n=f7%U~^D%LFMI01PR|t9`q9tCnd&_|vZqq4g;*33LadQb9>6g+4 zt#$3Q(Itbs$oMwRSnaR(Ua=rCNUu?Xg`%`2$d-HH-m6@q0y$aalZinLXcMDnkr$ur zzvEl;6eN^2VaGxsFrimP(s63{Vo3vEx>3Pb2f3-QdqjJS@XNrHKfyZ!0Ql`bq@ zraTEZX9AT&oIi)*l%E?zGwa()gQ4V-Cofmdjf~FOc)2;xVBz23#PrZu%*Fc1xnr+# zk=#ZkvM7oP2MHNyyM}MP6ATCg6)0z3=>l{u3KB0C)|y`Q-9VivCvQ2{yg31I<;g7~ z0}1lC%ppk$ij%Tf4rj5et-8?ecOnOp4#+0=+Er{4TO282l6@FvD7E(YiHa{EDY)3< zg^L5#YcWRln1NFNnbRP_nTGb)a>waeYT9ksY%*y`6y`=U`ktaG>9EeHZ7Xdq+&88lfd+OTIbrJnuOwA)@5E$&sHfv>k%*4&5^qa-Md&LdY|7T|_i> zi!KwF%64s$FI5BlgfnxT62xa{diL38f8{G*Aq)n^6#({5ptf!oyI&B0=XAKA9w7#$ zk`|6%fE|=hhAoiH8v7y^t^+xcuzpb+E?<~H=4htyiR1kUlH!ht0Sto{XJcr%!brst z!zyMosZNoLB*%)S^BZ)wRaw7)-)wOa&c4bQ|HVlYf|uhKri_6L$3=7AdFRezkdpY_F$ z$Tu!&eA$MonErh87J(5+Ko((zXCTLn*bxQEl~Gw*y-(0$vx_gj_=+p8*tTt(zp~%Z z8aa@xb2(hq*RY5s$}J2_{dlRbCrrot_mCW9tgy9 zlXB`R1;T~B@Fj+u2&)#!;`_ad((2SXPsM*bzTba~9fAikV+u{50HAbHL#9I};U5Fh zqp5Zf!W&@lKpC{AX_YV#0l;(TpMSpL%!rV{4~E0{mTQzM`XDbmeP4Q-zm}szf6)=` zI9rI?kmMVM=j@+S3k(OU0-4S|_uK;P3O+yc%rnbGz2=&0cJJOz2AJHCY&zxzT^I)E z;1*+1e6(aasGf2sbip1b$)!7$1Uj#P`OU1t@IL1nRK>~$D}*bCNGIWS91qq@ zF1h5g%Pza}$}5Xk!3~EU-8DNHDz?;qSfjJ^s1%&j83my#+%0>(Q{*Crd}d_B z138=&g32@$2v`#1`<9DJE8?IS)!eujTyOzSTF3W;TzLx=4_MkgSFXTLUxd4e$X)Bas`Q*vX0b1D( zpUHC(nv>dFd68=8m>>=@G)^d8?wsWU6?W>}vq-xFxwmiMe%*2r0MmyY<^z?@QUJ-m z`|b-E42&+2M%8wtn`%IU_VHs2l?Wb(Y&yLIAMP*S&?;;iC_#%LaHl6FD7HQDi4naN zVZcW^QNkxO5IDcXVCnj>X;do!8vum>WMaPfFMyD$d|#8HNT`s4H)xRp4bm|%3qmNP z+wfwiZy#K)33Ma(Xm6P+VIZdsN|=$i(M(fxsq9j>H7{aAc!&@h7sZ_$hoOQ~J6N5v zR{5cG=H`pEP!JoxyE6mbRg?k6hIiX0WxUcC|MU3%@(&TX_U_tM*Q%<{1U# znfQ3!MDq3!fIIBH5(e)dmy{Rcs008bVe8IeOW36^Ak8#0F-&vUu3Z)ZlZ6l%hIv#* z)&zjMgiMr$UaKX(FMZD&$T?O)!7|j!ssl+tZaSdpkl*VjcnHt6O^HizUNNC%paUI? zAaL<&1QdwI1DwI|N=FA|z#IJ63Sfq2LQV)eR!H~c5elHrJ4-RktfXMtm6~diOtf;l z;SVeqNw5M~jyiR&P>dHA!Gim(A=Z<&7G8xmWhxa#4Evaj0gA?1DdPh6<`OdBw7NRq zfRI8bAhfzs6JJo3t0bYlX0;NK0oVF3;5|}=&wo9>zW`6VADsE@@v+~lG!c#6Z$^n$ z$89E?BeEn_9AHHP20km)g{CCrR8`07@RL{9s%YZHh8YNc=m^qI0NjA@TbzsXuU<~R zxT^P6W~Kr&EpBbG@@?dj$|s8f3}i89w6ve3wy_f~H#PIZ$EgpTLn<(j?~nkE9>*16 zu7nwQyq`^h9N2?wvwu8m3MD9GV2{8&@X9G|)!lSJQ>tNwfQp)MYsrn}a3Js`#}vW= zq4s13uwZRpE??5_cmP?@lbD)(CmNj)Wsbw()M-OSpHMcO0R~T1 zF`-~aBm`j@6@{{4afrrMbU*GdUCWY!V5a7;om-g{5sJyE!xTnQfW@C+<bHitkSmPJDmq7MA>}DkC*Ff)(WwkC_hT|bkIZFwm1Bu`h3Is| z$daiZK^s%=$!IC$t6Gx<9e96du7<0oO9B8jbU*H=v5q|Q$SD+OIH;#Z2x0s9JPZ~5 z$!a9AxhxAOwg$d_xk_*|yK*U^!l&=;n7ea=d!fFV;dOjJ{=gYf52Ohu#Yv@8ml)}0 z=t685D=0GmcPpN&07QIKSbv+mlI$>jMo8+vD7_q@gr~wd-t7JCG%&-wJ1eROW7yhe z7pgmgtcaa?nJG12WL_Iwiiwu23{kmtg+EojqW%3Gw7Y!i2&`H)IY`z8B!LvWPf!Nz zQ3T`lD(%=TVA4P^S!t4jN{FsOM^U;5iCe}CrEcNH7|ek~m&=Xo+`KTL2HgSb@sP^z_*jf~}n0jY<9<|t z%(CD+UZ`knVRnU@;*CzUU;vrQWHLuq(*eun%Lc?#Te!0@U(#VEwkJdRSPJgP)6n6+ z?uo6fP;^y#1<4Vq2u$BUcLzVWNHFtZU2-lMOm1jJBdwavE?^USW0>HWm8n|tt^(wWGJ%& zkK%*M_*J(V%oPiY$xxx7738Kkz@Hwq2u!^hz?ijxvihc$a8Z4Qqhhjk7I^;OLa8gf zR}HU@z>0SwoE7;Y9y!p!1`MNMw$AvbRyNt|*vEfcAMydvx$ZG{v+gWqPPodBZ~A$4 zb44PS+bmg`Om^_4^7*nUrXP2{dv#@D=W8#xtsOAtYuyJr(JzlX>2zTo!s?MSI8)3B z08kni@fs+{WtpI5*|w^rL@}8=bADIJ%xsIW=zMLeF~{+RH+SV)MV_LFaXfuit);59 zK?-zqGy(E9scfD+Zj%I8CUoxqm+ZaDY!2GuZ8}m3-J^J_XwZR4%T%a9@8VK$Sng&F zXE_ENw(xiYfO}w`fj(f%G2peb z74Fe)3Xd_iD?k*P3|f8ZB!3RFD)8EQbBQ<||L1GL4@`fGfB)rT9&e^*@5CWhytg7# zX|ICYD&SFGeC9YBxTnmZqDsOn#JQn6J4}VXsR{v`_@lR#GEx|$FYfnRGxxSEKTP0D z#Yj3|D<-k{@~RkAJE;vr$6E!TtPfxOf-~?$XRD+X%oS6i^(zoSwRBQjn(Vq(^Mr(C z`9xP3uc#wL7s_fD6{ht_($ZSdi7#NPJlE00+A%V_d~!|!p+YM@TcuhfWpx$^ggM@^ zT)t#=l*bq{D`q&$DV&>*+bYjrMZvanZk{;)QeFxi!lQnVLEGEBYPqHiTm2ulEG!>g zuE~Y+R8WcE{$h`BD$~R@{VJH7Zsg6@@f=l_gZZluqk2zYM)gcf2VaNSl*Cgy7#P+%w1`x6F9xm^pln-o zDHh0Xtui^4SoO%HN>;1@GCNapW%MS`4_mGR1g*f8lPKb5lf$UeF_p}%!cl=lCSO!f z5kVF9Fl0ts#!_KeCNtbwzEY9>6?@5Ym@W*3$d+VOY(ll~Z~**P9|}kn9xE{vYW!YZ z|IT7t?h}Jv_@L#gt3p-t%OD|UC7P9EP?2tOMY>o%ow`prO*(bNe%u3-yjDI`-+Esu2y(?IOyopIS!6V^>Zye@o@}QiWAf$Y9RR zIC%@1PX&p2o2N|2+WVR1GI7gDX;p1Oa}fCxgtP+q^u1hRHxyo36}r3J9y4ltISj7w($W(m+)Frb9rj%<4NqAZBU8W>n($+EN>&;Y?eKEJi}4Kd3|$gek@T3U9pwX(C5g!aLHq}y@_WhPber80d7 z9(dr5Zgiu4_SwhYtMcwG0%Zmlrh(x+Rq-ak6tG}}jx=~ZF0Z;tbs&q3zz4Zmr~DDE zR1(P?V~+sDms4HG+JyuinN4_e$B|V;2LH4>nF<;$BeM=veKko-Jp59z?n-t({Xbvh zX7m&VKM79-_W9DLzdkxx%ap6+W2Vg14l5^F%rsG|Y7rv*e;jRNx#|s7jBxYm6mQS1&7fwt1&L!HhM#Z75#nsRHiJ$n18{FUq`|i6h0jTnB zVOM>z8bFt)3<{sfjQcOW^wMqHwxNr~u>GYA=8LXt#jc2A<*q!1C}uIi^cfOa|FBy3 zF$;C)T-ApG$L113KsVaht zQvc=!=88+Z%!2J#S)CFUS_g6v&GG*_U!|nvT(p%pZi{6)aaUX6@~z7nO-Z$1`VRpp z-~FJ+#&~W(14#ec*S^MhAd5gTw<4V9WUl&6so{2kMI8APrC5=V zswh)MZmW4-m7dxNA~W)LbnjyPbwF6|c2)JD(vd*zi^UUu1K;A{~no*cH(i!L;URtZ9K@x>RLOARPY7*rpr zioBJ3sIginwZ&rPoSl|G#~pVZMMiBE6jNV}LIcwdH9?$aGgC0LRPSo6=OAuFm_6Jc zGXH7KHL5ZVax;y%R=g_tje~wmzDnXZB*>ye`f}@v&$A$;yU}7?6!kBh(j=QgR*YI{ z-y#YL3Vy}S?UzfH@@iPbszyVg{fwX`xYIxxQwp{}Rf!M7*_E%f(*!112kGkR(Gr z0T|u6jM_d&ZzzXd(3S9$ zeB6BHasjd$O%>h1*{uKsz}i^huxpmfm(KFcuG&}=m|dNEdbC=IcoED<)9xHphy@Ia zDe6q24S;CMs}L3P@YhX*1LLL(KuotjmPJ=rK@H zF}S~#x2nJ;B26jj&c6!)>6oIfSdb7iv5~4QJ+>kl$Q;T*YKuZVW`9yayId9}^_K$X zPB42p_9gZNo&aP8)pDyWuoRY+u#kN?x%S#?ueh~sgj>E{{8&DDLGj)t|{DWxQ~D_^2&6vc^*D=A6H zPleY@$n4-Xzt;4Xt5eqGtJF58#G3qjRf1@%J#sh|irifM1^Mwp9A1#Ql?RG8_{?%c z=4goAET&|mIP z7VW*Zm@Q0`8?jn3bT*JEJhUeRg(_6xKEXp~EQ=9wd1^RsSI6x5ppwh@7{D01b~RZM zC72doLYRxQhmjOP{7D=yJ$%74e?{5a!N(-?Chly(l&;*B@Ra*rnd)R`QFd z%-Wq1!qw(2;YqEOk3j+_AEW%tPWPslO8F}FM9X?)UzA&%-o)H_fxWg}eoarRr&RF{ zx)Ka^U?{+LQ<1QigR&VjsoSu&Qs=bx7K0fEPO%Pl+_`gS89G?O*eFVq;ct6BVqnqm zVEu#3KqDj&O3jccehtDM?$tP0I2=<4L<%EOqt%@Qpbww7mZ$o{5)3vY&TQfGF>{gx$60?QJv z+JLKU=GnRxElWWnVM_;uTS*YI(z7T;!Pm(mub-hiaO~vKf7?E0%fX3H-wOb)xD^2E z(^G0ru{7idTHt3=XR5tbAbJ&T?F7mUp#)70Goedudx{nC+G3EZ)Lp;v&L2BWDCXI8 zGH5HHM$Z}=o8h7wlU0GQRMmyGLv@RTMx=Yj}{##xS)X??|MyIC7iE zvpf(h0Dut@-r^)F6!N@(KveNX7lw5yp`O1VEwB;I3^0 zJf_&HL)0lgvYY2nq{j>Tud$3R{ z+)(XHzhH}^smtH}z~0L}#mP)<0y0punVxFhv|^AwI|qD;pRfW@O*{jySQ?6e`Y#X8 zJryOdeGuEGqRsvaW9b@ns(eV<&t^?l^G$oo<5iuh=x6aM74oQ_%^c^ogY4j}{ch#2 zp~wWi@U-Rf#l!(X<5t$H4pHUMkWGPmH(7NhJ(cy6i?OyQ=M zr&>jng@U$WTHA=7fM&~P2~@Tz6D5yCm2>hiRB8tISN{XS z${#3*ARdad=X+Ao5FcBvj+v@Pk;Bf00oF=cDp?ksh*UZJN+BSjSr~8m}uqfA11Az^J;Vcwbf7h;EcBthHRdlt3?LtJ` zL6(wVv=WLGOA$tNF_s~SO^a|#P1^~hcOX-oVlIDzSGpsl;r^P_l%b1TN{g#BP8GHC1+xoq4pt$J z%%_S-*9f8_Xj46)J^+=$tWzlRm04C*6}rIe;346u&W%^$bF;v=h=?xC_)VpIrsz_A ztg7TO)t;+@-T7ku1*&6O@i5=ZxT(QJrT;3vH7ARATCR#^SGzMMF$KyCa!j|ic6Zb= zRf!5LZHb82F~Q4LSFXUbj}zv? z;7tTGm+lN6Cd{V7*(edl+pl=O9Gn8hI-98Mb53R7Yh()r{%f}Fp6lOKwX>?FX7tQ-OHeI>4;2tVm^!>f2LsdKf6GXWexH6F_(V9007l|4u8; zBA1FEsR~odzD98cdzSf73*>ZUwZN+0Rn3or;|psmCuVY>+l*#Ff`RI3JKlaY7&_6b zRb#;~Rm+-)fkI|*2xJzjUHoj8b0MhJJAoohPha4+bIv)(Y_uvw|=Xs2nV|3PjxVqS%{qb3hSN~J@n zwMr|rHRS{;$b&g5RaEF~*2}!D_?Zgf!%n@~vH|>Fg}LG#IvcM_N^&(J+${@L!yYX- zO%CC-V61%4E?=hXS*-^rGq~tZP))_zwC^xqwN3pvMR2F6s3A%d#pNA27idtFUKy?J zwW`BI6#dta)nPWH+_?1uom@)%U48ROZ(#qF@@qs$E^Tl7@v z5JfsnH`NL3E6fbS>p+vYed0lY4HdP1>eLyNAP~}+dlhyka(i821(~WRspfEnffPB?K|~2qrF|3xm5|TTK^-V+J(wpn zW4+LcV(h%6ntbcV1+o4*gsVafJyM|W_~1MGsZ_~?MO6s~i6J(xXpy9lfX_M@E|a~m zP`p)68En8qvzP*%SR$8BQELf6y#iW}N=IxbDmtYd=$|$)b;Z`VL?i@DgvU zo@^n>?yp2K@Up8r-pX|bjn&wy#|%P)&FqlAf>Eik%=>8zQV8m%P~l4Q7v{MxdhT^C zm$^qehp+COhyArvl{(CI6jh)+BvSSay8{k5;KzUb$A9>TfB46K?8o-se}C2*$m)cTQ+QQb!l{b{ypVOTRfv$=GbQ)cf0Dx=OlmT7Rg~xqHm0_3C42rAkVBhGS zYvu>6M?r`!(tCovvu=%;^@TI+vMPgzwKqf(`dP@eNX)B)C|EXE zN5#;gA|sP{S8U513n43Dy8;vS*ekI(m0gNLnU*=byDBn?B{tKc4V3L}i^@p2r!;KRX{m_s8=#N?ijy&>6_)P$^5K2Z%XH!o2 zGHg~pww1l`fw;e&Vy9i%wMBGywl_ALUvivh0(BHRx`CKw{?@9a-9>SWSwV18K}eX% zm0qO=?`O`|ak^SyL=Jw@$y4-nL8+YtRov6#5L*~e;R)VWTfWK>OqO#2c9Zd3UEacM zS^?_lF*y%#Vyw*K32@J$-s$_q`j-w0X#@{KDn$rUfQOulwRmCan(KBFFprz-VqabL zm}z?K(N+~@%A;E6!l_AWP(*~8V&Jki&B$%p2*#?FYU$A(wq_kvV+NV3oio+&Q~x!B zNDpQPms!?HMe9HjZtKFs=y?ggR{^LLH+`03ji!Q3hQSIYv;#qgSTC#bY$FnMHaZr7Sig^{`_?o>} z0d}REBpdmBYVp)EmA`UIP_4PY+#0{M70C}#9p8Kpbwr+oZ>sGgbv{R`i1LMGzF8?Zt(EK53k)|&FE3te2clt z^IP~TFgi}{bfPGuESHk^^QKgitXP$ztg9@BCE6SpSl$^Cow$Kw)4(4E30K^~9|$)f znpIVDkpzPh0IPq;I%r>UCA!Kz6?m&g1uU3<9ROY#hHWk(@ytxj46W`z2P!W-p)NQ@a|6SXk$rqbGbFNa(t950R z)Ia=qIo*Hlwbv#9hKq;r1V!al?L=$WQ*jaES6FND?v=>(W7QX9shnW_Qra$IC?sam zGP9SmF3+B>Beb>yRY#@HQD;lO!6lbmLZ0CtTHxF}>%Mr*F~?N-xq$W# z!rIrCWK&)4%5m2YFmL@-kY~^rMPF75NGi!%N=p75U>6*D$RUT|jk?W}9PnF7YA0O7 zKclowPwZJjk^f>@q$|$2fZBo4gg{na9a;y7@IE+I| zC**Ki#XNFSs58rXHQe&JS)pPt4iC+ zuHpQ*ZGaWPB3bFl7OU#985EYQJ_K(Qt6Y#pNB7mA%37UN4->2lT~`jlO59K%1)ojm zZ-szLgvgJH9R8GzQGOt^!FWlX<&%m+ z1S)G#Q5M8%@h>oh09b!Om^oBV@Fa)0fk`|acL;;~&7#WKHQ_Z}C3dPq(@Wz1d{fnn z&*JaYpPlKK0)BA<%$G%3%i$^=byx)R8*0yr01FuUnrp7vzI{6)c^yVHE3ylwZ~=YP z61&3d+zf*l0`8E{zU25fC0sE3X4@>R~vs zJ*CpuNzGbX;BG#|`jQuVWp>rxGFke?OueeQZnX~RbOJqUvepVvErz0qJ0e`e50llu z$T?Q-zi~S-nYKV`aCj69D`TBLoAWxViXPGGJo(&su}-c_H zSSPqlc~hz@w|dwd^iIh89EBL8Wr(Z-9cdMme~EfiX-|YoGFKQ|Fx=Xa>uGiG^INu*+jYK{?5S=R`c`Zr$WlkD6B9Y zx)&vd=#ISfuC@qG|p})j=4>vN(bUwJHQz zD$u%_^OjOD6{)Q1Nr&YBjrjgNyR+}KQ-WUbaqks!HZvbNXp zu;Y=eHpE1U=bkDJvUbqZ1AU^wj7u8v*|(O}Mwo+@HwAsE6ttA5aK(n8_3bw7bz zJy!d=q=BU3f5jSB+-l2qdA9QPN2_;TsR-)=euZ!3dn_2FG81h!iXHBRVfvB`CJXy5 zcChgN8k3@0=V-M}sGB;lHx)^y2C^S~K{Jy_NE+R~gaF*|hBvfFA)qLY5)~Jzg1$u= zC=CGDvnJL(1;j~z@da=fAGdj3$M+X2{{!Ru^Uq9t{}f=#4_z>G@e~uLQCMuH^bxok zg9WZ247^mertYG1O?s=jSERbyw;8)xw>CDTv}`U}7x(~9%jxO#ry#$HE171pAgP{5 zM9MJ*6&1NK$4m>0C(Qr+a#h=`F2CiZ-O%`M81PZ5Siz&9m%==_ddQ$1NAeMRc>Sq!&Tjl1(wW?ZxxeVj?TF_=}qP zJe1v4Bxxig19UVw+)Tbg6au$j zywn&((+W@nFWUgmlXY-(#GRc`m4T|DrR*~Y^QjlM*;Vjnp7rW#72iMI4oijhr($|* zL{MlUMPhELr9xmNJ2!hM;Qg_n(9C&0PSJ4Wq5x3Y5; zc`drBDh~%OmxXoeU*wycH2jLL7C1P{sid%~^i;47bCe_2VIpR#fPJOQn8+0k=+Gz4 z*Lu|urAbVvA52yq2p$a4F;4YA>VbzMS(3%KW<3`8c;<3dj<@{DYN^}oQH~JUUfHWm zHV-Dd#kQ4*Qga;>dA3*8VzoL0ZK$eqJXKZN$#mM&2~zH?ib}QdGuBkv%Pj1y{XWYz zQ62@w6bzrqT6lH`b8R*l^9ToK^r|3njkW(HCwRK>65?W&JXr&;TPzoCM;?#?4bsOG zgFXcU)-k%pR~O`5A&rVlRzPMQ-#=Y%$5FE`E$Yh%z?SsFyyg|=?#cjgCmE>xNu{;W zud+g6Sj5m^Bx%N93PALw;I0VWw-K~Z_FGy?3=fM|z*JO$MdUR#54MN~Vw z{!vx`EUUOkPr9Q>&shg@9L3zN&sDR7XQNMRDPKw|tQ2+;T!qjR9!h+gML;QJR+Gk4 z)q26_n{_Q{U{$c+!-lWQeyMSFEcFbgOogO$hqQ&%Bg}Yd*5ytkMtZl6V>Oau@o3W) zv%KcaZdY-9#Ur3u^|JF$dS~jtFJ(7_=t;k%31eqm_AAfa^JAI*~t>9<_&d%oQHP%T&j`MUxR&1V-$^V@CLgTjq3C(KL zm3JJ?NL{7ljDppmYpT-XtrEwI@*v>_fQ0i7YhSxu)m5M3(mBHMWi{gMPdY`p;DQS( z5>xm<(FE1#^+I!mF~HPc8OA!<1XZE-RWLYvxqO*8;_~>`t*~po;i-yL)2*G{RniAV zN)5}Z%xO{ejYv@Ehf0iL=yC%pI^DLrOgBthBl{ZL_yn+l{Hb;%n^bAKyx8FS%+*S| zq!v^md9}8Leb_9OzL@)IHC_t#bjF?R@)p7REM%7DzcWhv;|XoYB6+EDs^qCGQ$8_h z(TIL?hFYRy)vVl5CUFTI)s{;ep=GInodi#;Q4ZYJ^bW0EjGQWh)MKl?R~^`4qafaj z{Lnzw5RhXpsOTi2eQgS*h}@~4m1nGMl@21NA3Xu6gf}f!eV&T*pm$z*kWd_30>AM6 z7VaN=qr>cMt(Mu=%uKHu8yDhHmkK6MT{15 zQ%sTBwvs|Y(U*ptu;F4H%x8KT6bM-^Uz^T$)j30^;Qb^3khdK338D9wMnl~e*A0>a zLJE&V(ZX?)^HObMyCPV~0F_q5R;tC)N3Z0Qt_WscgTIaX!`fMk?%84<#T03<-10qfsG%oq=Sm$E?MDa;Kkudabp_sZjEO^`vl*s&EoiY*z$73}B4fr=xpOiS@QA(5tf= zQc*U#%NO_L_^x+O`=2_$*Es?Had7+H^6rb+gB&!v>2gi^g|QN=LYLbV#_E|;VtQc| zC3)7LZ&Udvm@1>Cm^QPjW@=st6f%5)N1dM)U~Fz>ZO=h;_9%OC%AHntxdz&yuQ-rA zU*qVgx^e|2>pf9X7dLdYTrTB0w`0=Y+xAtYAP*)uYfoRH{Q{)jX07Nbpa_;yC1$y7 z(W_NNbyZ0wY(fs;+j6XPz(HHe$TWPevw7Kb;294=p3Oq`3+SE5O;S|ON-4YvWA8nIhFrtvGR!$wl^82(hX=^>WP`M%E&_r?;9b0U!*;|I*FKRE^QRv>gQ&MA-hY z?8iwSs0LPz7YY}JB`E69fYO=fP7u<$EM{O|?bxy7JKy=vcfb4HUAuNwQp6*OQm+~c zmx)r=FP=t@x@uR6)wpm~5Rt9d;mehRz^<*;g$tN+#}T=YGAKG)DT*F@)S-UU!Fx7w z0SME-wyGEykpNg3IxxzCFg1#^6z2e9YWHzGCZAm zRDzu!A8`Y#>KL}l%CQVR=wpY zFhBaMu`Js0Wy^0t`6+%2VBNfDvys=ljK6khZ`^z3$(Uw->k1TY-l`f{21o^0@{xF3 z{RpcTTsQTKSya|LJ7-$E*4@ZHn~8PZb=Q6W```b!fBUz8`lo-|zJ0r`fVs z!g#OR&J`Fn3cBE*YLFFgS8G?xV?E1oX-@MJ+zTbDY(l3Hd1%s}6{g-~I@e{bdXe7l z)g|gz*~&7+GO50P0x$_EbzIB(ER3v-o80g&>d=p9Qw23|1GJUBUhvHB+V|$|E-Qrq z0K@z(h0FkV+7Y%Ztx8#a&+%fF@{L|s(=_gLm&=5)b-tsD0%arBT5p;=j4hX^!qm#{ z>&U5lI)A7x@nk=xU0lA@>ac+_!MAXKCSPHNCOg$zix!@4a}^o)@?4^wwifMY{F zWe^*XmJa?fcR|Rwzm~5f0RR5)|NhVa{Ledg?(E>zpy*Ojg%DLn+n9(&eB`PwE8xz{ zh4pJMVvYsN#G*B?So>fId_{K49iKYkn_?slUrfK(S$ShS`wZHbqRRhM`xcXL^VDHe z)@LsK^4YT%4BvUJ-@TvYK^7HgRq^t|D-Js7AO?5sdvSc3E|nK9w9Y~?;j)$0w?4X) zG=c=5B>(`x3I;VjD5yUTc|($tByt?J)$yR;&DTV-+AU&RI%Sl$G9{>L{SY2=`xcrq zjs5DBSm(wX3gX3T8LSHiP9ycM`eI;Egr|VYIX01!b*8IxokR zhgDbQA(%kypYMI|d*A-{x39eNN>V`$oFo=M!e?ze9j~FIP5wOAr7` z!i4{#cP)>_0<|WmDRLEdep2rHCI_M?DUXi0>0P=RgC20e0T`4#7z`ZcM^Cl3>54-o zjB=flHSN7R3D3_3dQ`{mb}d-n%k5ys$CoLYf3SN0`9o-Z%SEN;NMrHh2|&Ki%z%n~ zV1?p*uvGr?GV99W7*BjnuWHd;Kk9;<>8F~#){mq7-3kn*Kk^fFdQis^Fqcwi;%S$1 z9gAo%fB-`Rv#9FMRaaeA zW#1~cTL%h#pCU0=TyX_CVI$FEFx;6yZ9jA46zOEjQ)!_LxblrEc(HD_S1rvlo-2cw z;2B~%ZRVJcC2|04+7g*_ea7i30zm!mx8Htb0NW7&q^gZ`{gLo`ugD*tNkIPEZRE_E ziX9zERBV(1)5)6G60M_-I?8`*xm-J$f*H*popKE0m~xct^odFl>J=R^8I&mUsdc8E zOy!wc@niHnfRo8lD1j-LPKnI4R9)P{Rnn}15VW+a=b1?h_-|o$1b`mdzFgLU zPLa#i#)~DXV0|;K8w)zp9b-~rq!ef=LHTB8n$!QG{E%`3t6QAzXM=%|QY(U^uw`Hu zxSl1P4?RnMQv?;xFtGU>1CbcqSsk?wudrx&Siq|JR1xa!DLYguLcL^dY~jD<+P1H) z2rG8CYpFX>ef(;s)H%N);IU*2Bj%)c&*b&FIZL3%!$n3E?8RO+78B%1Isn7%t31fG^ATsE<&@$oiU+u5I^OZn;)1cU8a1dq__c zRPZo1>WEQ>3RBxJbPaV5MIL91mMoGFyShLX%`7&lR_rYl9bH%FFsD<=Vg;z@4fLKI zan%4t3m6V0Z=O769Mk@F0`9Abn8LR1 zRW5=5;&Z2##MJLErmbMJb)5E={E+GY(AKC7flBHVzZ#$*W&7PuK-&XkF;{hGD(R*?BGNeWVWtwc zWxJL#yJqO3!IFWtgSC;QVzXY{;O63~n0&sI0SuRGp#xN_GpS=R?Ao;p-`F^s8f-vO z)wZq1j7G``i&qS%%1gmhhztAB&G|zrnv%^h^~!4kSs(do3|d&s#j`$rZz7bA`F7S; zitUzzZQO=TP+ekLP17(y?Z@3oPH5lrma9a>igZBf>>K@;GB!lHso||-)~VvyQx&qt zV{}Sg3Af~jOgLca@FcCsjx4vT>Jx@e_Zqi~fR)+Y6lGB7IWsQ@vcpLDh2?6>8L8bv z*?PDwpF=zf<891qGF1|49dJtq?Lc=bPZ1{woqF)zR)_k|>g$SQ#0rN@IkfU2>-2d2 zYBLi{TuxSzBy)CFn1+Em%&P2g#4Fy|%@yz{F`&G}2`Yy7@?|kSKE{zh@*_XeCVnC& zDp=HxtvY@Q08zpH?yoa5%>qTx1xNtHDq^!PuD<%}-Me?wn)O?tdbadiFxK>2C~6>h zY>fvjX}-UJabOFD)Qr5bgFz(nX(*Vd23t zU*ltUCIIMd1t>QNwWv(U0Vm#Fcidr@(k%5A&JqKUA924S?51MhN`@8X+VL|yfWPbo z8m(uE*5u<_pw{Q9^)i1WG)f!&Wq5oI^hpuFxREH9R&s{D%f!w(DoXxW8a9~sFM$v3js_Xq5$5 zwLOz8#I17JIJ?~ZJSRTeV-!zc+l2~vRmB=3R+Of8eN`JSbFCt;b*HN1uh*8tN?+pU zqCtxq@*~!yl5tNP&5C(d9n8z2h3>~~)rX`S7$lI4s3wSJXj5(w#R)lPYT?4Ka7am$ z0i$?NTaKD=(KvISII$8?U7^b=HFOFw_2f!o^lZ7p>+Z!JvvlMB>?yidmc>vC=tOu~`s^QeIf6fyjrgaRO{G+^al-#1;WMv88)$wN8FW z`Csv8qf9Ho61ZcP+AEgBoz0KRn_^3fqbwkzhGeA+wkc_$nV7RF!(EH|B2GJ<4xufn zbP`0jfrc7*DPFt;_KK_JC!QKU9b1gwy>?Oga60}Z+?4=oQM1gMn5j}5K&raamf|*u zS4c_WM&%-*>pG??>pWw|pO`Uabyb~sUCRmi=}ua|Mp~{39c{&{#Y3m0)mp0pID4aD z^elCMYG*|iAzo;K3bR9@>AHF1i6>T5!%|S?z^bESm%0X3h8_b|hNz+eMV_PVnCUTe z1<;|W!_>*g9l$z#t@KERRa)4=V2)7aPSekESMl^Z!{UUtu;V7l;H>60{Z&7_l9no` z3Acq6Rnj8oo;#@nG-bN%*s;T^SdEgp8MKCH_ZP@iR$Yk}Y0QfI*U%)3sC~S3wKC6z z#KUm4S@)Dh>9nY0f-Y3*ysZ7%&T2*I((3oZ&Pe1$AdYBdh4K^Yg zD>DPK&ds7!iBfF6vnl7LCSaJan#P1@-AijCQVN|arX$C|x;1h+ge^+t(b7Ka;-PE? zl5aQw;0cJWiEoXhO1GcT(W*d`6Gq6i35p4-*pcE<15mX7L z+!Ym8aYMTWlugtuMRY-4waLRrp6(w`#q%XXpFhTd!#VF5a5p__F%1B)I zOC;{3ta8F-MHlXlA1Za2-YgO%-%Po3>stR9j~EotG36oL#?IW+A*Q^F))C(gU?nPx zqQ+xI&J;mVdU$0EYEoTuzF$G>e2L+|Kcd%NG)Dhs?uh&NvS#x2zGao~(eLyu` zPV(s23ow6lHH^#PDf6TbQ7M!boO~@%F$SUS5HkU}ZKLbRR32hUb_Jew4qG+lQmJq( ztkz^GPj|6{osJQMlGL(-_Ur**+}kUqvX0}O>aF>y zA$x!J^X@0^U^86(+3WZjYZkU%ycE{# ztkIWpQuCKryCwZ?vZilb!vT+oG9nq2MllO>K{+x|`D+6ewA>E0$hJDYRmz4uv@I?N zpthd=T4TfV!U|npw??ez9OjrR&7F5vET|3KbcHHCdg$(Aej9=@HQ;tM*@e~25 zNFi&G?hoztM{AE;jn~>Vef;AeukKUfCx%Y;s+Uoq3XTOB%>_ACeJ#=`2CN!wk-wZp| zqUP6~X-aNNv9$<*kcPmN-(0S*e)X#rXlWl@#g6hDabzWNNG5ntF<@{^bw5i$qrJ#> z)tKA<=FWp?1h5u&sOgKbpwB?&UT9N+`wZy(=tKywm$(QsS&~z~WLknEQZ;`dFjZ1g z7;RFMi>V1&K{aSki5A&kO0nZzyJkF5GJ zbqFuknjR!4`SlBBC>1!rMI}XIT0;PjXq6~iKH3D2ZKmN@$>SYc6u;S7cP-pTd*xX# z6+fSS<;wC><$InEQ=Jj6Lj?_lYbX0|S~?d;nH#Gd`MAGOoO+hE>n}ie!mV+Cr`%KU zc`66CldHvLJ2ro+rgR-&^21J*F*%ct4g#lNVXvG0!~x0Q|%{FFO;=#z=m!I zLb~dFTCeO*T{}&RWy^qdbqrb`hB0zF=&YLo>jk-K%#PTm`elB76v=KMjokWHjS>L( z6I>O|0T^oIg|ObfQ>0r<*86FDVzK<*Z}HX?Zkla$CJ zFnUX0LESZ71Sf11zWcBL`mf*r{`bH0o$pw<0ADFw1U5BtUKzl3xq1qs_|P_C)2JQl z^NW|UJ{16_)o%HF1;mr6Qlg6gF{30ioVQuZKCHY-y>N@9Ire#R0S<&!am zcP-b12_~*{(z5P_QDS>7D2v02RCgFy{g#EG(tt0 ze5nCuvQ&+aTAKl;$h<z#c}t&#BouUnwj^E7Ul%=8R~3QSb(86m!j zU9Mfbc7eI_b>3WzN&!nX$1QI&^`9Qia|Jn_YnCHYS-5u9<96Fp!G>jZ+uPo@KFXaC z;kg<(OpEW9@(PS557o<9Pq_p8%6p~YJJE-$D#uKIdXAK$#L&VobzF?T$$)_>Dw9!^ zT4`r8ZAwZB@^WvhVkC9oo{kqIVv4Lv&XZGKF`u?Kxm)s|cG?A=s&iM=y3kZ+FvVS8 z{Wl^tvC-!Se`Nk8+AUP$sSw zx+?=;fNn*OYUS61g&!BC)PqH{)$p_xIn#MGcZodJ#GL}2E%%kHpBz6!5VN$qtNiYk zyz;?~g;(0(Ztk?Op0y9FpJqFjZm57)+oTFjllFF*)pE*zI^EW4ELnG9FR^Q{ zQgQ3vP|mEUcRU#=VOD}D-CM*# z&cRHMZQZUr{lfL6_` z(3(!F(W5RS76Ghm=5Pdb%z>gicI>$N>Z`Fb&Hzf8??5jLwnO-w2B-@KFzDGtndEp0 zDi&W}3RO84geRx9FBL^g&C~*9%3}=!wT5;+GPV4xNN%9k%DA@0H=jVOsvB^5T?I;r zDai&;lv8h+BHo9jY%*ihN=*XZ0I*RVs)i%^7E@JpNnIWyzmYhoSoZ|?p5F(JgpLd!$DGLbfL6B_P@)sVRL1`p_R;0f$hsyNb z^Pcx457Y^aARfL!QCq|9+qYw7B%wmq)%{CdEA_j?;u=PnMt-gWk73QYelICGi(sa=ud)g%Ph_$aoY*3OYYCgT`D+zT%IY*1k0W8O`l1qwwXCID zd{$t672)gZfCQD@#UfJyk|X(BHPLMu%ZZ7NI%$*B$!j<~3 z2&9?TsibJvzsBUUSKt>uiqw^>(<%^eRdjIza0Wh zkIHsaRYU2N&>Junuq#vy;fAXYXEiD};Pc*iqA0WwSAr%1I_ad7I>odiKi~lmfEPfR zD(m^GtFFpFh#1o*sMyIV-{rxI%@fS zx#k*18W~8Tcu8WJP9Z{-W2w{>@chX%!4E$a1PTHSMKBZ67x&Tmzyz*i#JaLRWw|Q+ zN-VSYvaRz>%alqt<@QA>2tj>lES?2v%pDrt3|f;d%n9?*xv5SnyrA7YkVb4T z*X}v@f4=Mv2fd`0_hnh(NlO_vGhdjmU{Otu{kZ91C3o`FMd3b?5elmsVc0$cx#H)v*gg z@`z`)W;d5=ldM;FVl2 z(;qMdl|*6RX;@}8uG@tns@-6kSh==E67-W;cEIrhrEHcon7|UNlP|YxWPhg6PDAw|X6HcgpT^-kIxswFvQZS7o6grz+ zn?U8`*AO8uDy44KhCWLH+=1Uz3#%eFM5ubsXzY=aqs$s;($mwlE9?UTnUh~-^7t+B- zDL13QDinnWtZxyx?z-#917;%U=7NYc{X{NNMn^9fu40$s;MO;osd*VpQfg*uL})Lb zs`ho&-a$%|Q1gdQ=<4~9i?4!Fxgy$(mYm&@bAcFWRQpHMw@h`!?$f$zI)@&5sAIi6436QC{ zofEyKv(tV80Jwt>KG-MV41jx*s#*zU`QUz-En@zVLk=l$${gy?LzFv?Ej=J3ArJjX zaQXjTC3mN6>Nt%xu^>4n0C)xe`7|Z^63iY?_9zc@qA=QW_*0%!5}Q+^e1LJ<6p~Qr zNY{&(t7M%iK@N%4)Q3L&+CdC%GkrIZC7>2wX7qGz1gmr7mVASJk)WF16NGs-;&ckc z;!Z@FLVBe#Rz0cMDv!fPY37B5SdsEWlp2Bi@k;U7H^2GKD`x5oBEk`s9Dx%Ga={h37cpX0*ULJ}gSn38z@|Z79%Fse>X1^3aEDF> zGP(!qO1N{Cr^bXX;S)%GubxtAZa#@b)zd0C&`O0IHR)-=tcnknUC0?ms%bHOw8sR> z*IpQHnaG`|cG6iHAGja@xY?)(iAAtQr!84Ne)m_bf0LWsWTNC#{MB!I%m1s z$Xc(w86f~x@OIsIV3L@@6_|lXCaXf#@q$+&c6kvvp#9qDi+1nS#l>q=#*0>qnSa1cnJVp(;1YU#j2vs*}DZxRtcwg8}D4l zv=k!d_sTWbk)SFAokUI}rpd8r8TC8-vPaDk>JhAJo@LoqzPO;&>*pJ++cT3Z6EUey z;!UvaN{SqNRV@_qGYQO#vam|iVWolR)Qf}71)kjlB==VqyoLq`9B_b7Wb!KSgzc8r ze4T~J=liCr$QzbQq{;BntE-}EUOrXXs!&p}5PL1mP3=#U7}^nVoUvSgbr`zIsYk!z_6P zL&L3kAztw<^)&-bZbZ1P&@XJbIsR))mT6Jsb~%}?kgau{9Mgt*5=-b=*Ne?c#0;bE87B9aHNVa>ki>94jx?B z8Hwl-v}WTqq%nHu1GTU8woPH;{!CoxkKzqGo6I3?;Ho>}^3K&J?K-a|ILwydQY|K2 z&3Hg`eA7O%#t_p{xtclYm=WA^EK2$u0VtlL71lBZyj;#zMa~Op2yj+*&gjvm;C^VT z-;NvF_$FO>xSzN8>Y%he@f_1Gs@kmo>B&0Eg!QC>mHdO8Q1z#($YS1ZARm& zilES-<)9R2N^&N&(W{CoTQ@QSLrG+Y&PJzVeAaEH%btwx_@oVZjCrxk*apC}8MH*r*ObL1#7BR3-QwI8iiN48}qU&RVaSgE9D z**T^OUC`U1P^oZ4eQNd9Zm1HrxTp&6lRusNWU@w4CpXDVsw zl{99=mY|a3WU}?~@cou+Ja6H@YWvWVRW?;*@=w-vVN**}&lED6L$@%p$Xup;`9ZS= zwT_Ix-%HD=8t%tl1ruwp&H2a!)5(z5REG^Ne-u zi;x9hgo~uK#?e_&)%}|c&oW2r7D3dDg)BF^f}xen9|wzFW+6Z|vaXykVi>gS%64X0 z1P5U5`WY9H?6#CpIubpm(}K~<*&AD{EQmr9#v=Dx?`Ka}af6saR{>rX%gB|Cu)XzN^6Ja34_)2HLRjD0(I%Xe%<+&_tCxoX<77BAE;F)6BIN@kd6TkuQds(c;R zt>aM%fW)}M&l>8c!vv=1~l%>zfri= z>8GDg42l><_|6$BOyX6!uClDkw3x~>mD#CS`P9KHQl*TLcJ!5oZIx_OJHDN?eu0n^ zqP*@l>A!v~3U&Pb>!Pp|D${~fU}@#ls~DG?GSyB|k**Gyr)n=f(he-^D^aY^m%kSA zTkhq=OLvs}e_6YipIxu>uH%o?iXPNN_ICE(K6KZ1Ok$@Y2RVu$4Jt!mLMbXLl^B!( zLLd$jVunCK2MEN3N~q-^MIc6$!vv`iD$&+b>ZWy$auX*`?AYGfK86nZ2k_m`NBgIn zXPY#n+=Ex|`@Hva-)mj#TGv|ZI{bbhyUnr0oAL?CXUKaOKm#eXFr^b(D~2s==B>%# zges{9I<$Gtg1CeN)kS^!)1Ut07r)q?M;6v6wWsIz-CEKxQR{}APDA!aU84#SL0xZT zckR@(mGGQ_{NZb{+kp`;<|FLw94Lo$6}gyUm*qZ&X8sZ}ct<XeDwA{n(_+qz_8>r$qr+0VVegZ~!ihI=frR<5YTo<>)> zon&Cn5Tyd>Owxn2Uw(nKACWSS1)S9)KFn%w@19h-nV$f8Cwm$@vigrvz>C3c@1dYk zI_IJmii7ENs?*O*CXxj8+~ThaS(}!9ZqZl80kRJ7v{W3N322J|wqbQZsRq^X=FOY^ zeD1mD`lJ&-^yWI)d(&xfzaadxhGQJEph+i_7{Bv0yP4+5tQqaYks!jZY&%sfqg^s7 zz*!^F8ndljYjn5DAbDfKc(Qk&_{1k*`HZc{qG2gMWg&WT-^cL;*X}D{`N|6~yzu<< z&u0eU_u_YHFjDayac7J-!oN?WQw+_g+XvK~1pJai~A%BHZ1A@EZ9@XRyM)J+Q79B5YH2t3}_ zjLif{6>e6j_+gMzT!?(C)gVWxNyp37%$F_!O*UzCTRNm@m1_bJYENrm6saisMlp@d z*uu*p1Ku4owp*VWtq7Tctv2Kc4h#1kVP4*O6ORDl!1mW0k3;a*5@2 zx!Ka&dsov8_*pNN_1zRg_@F9RU2Jc+IyJGo`T6tJFX~`XS|yN_KGkmm7=76p@(!(I zfI%HYc`OEu-VlTLQtDJ=z~82A^}3cffm8Qvf7<`>!w;u6>}FkCxpr~@JJN7-6Y&Su z5ongc7>}HB3TT`V{3$;V&3(fyX>CfVYC?|VNr_{&v%mYFGN@Nyef3-4`c_hCCe)>* z19+!yWSDv7kZ5$k=lX0rn7#^9CVd&_NE(|$SW0aMP+`yU!u~0iZQ$!t{mk06*A(^> z&q@kv)p2W&@(Aq*?MKT#V0ek?xT953Vh(O&WBBXZQiz+G%F6fvU=Z|6uP}b_3owyD z^ao)nuUmp=F9mnkt9w`T$04$QHOU?8VVTfNgdh?~vjvugevTFW?reg-0vua?sVc#i z>#u+P>rDeNVc^S~LV`YY#THir-0=J1GO2SgZ$BtMQvPMh9umTc=Eb&4153@Pd zLL8rZ$OumL>&vZMx9Suap2jHADSJ98U_~icbNgTVnp|E!Ux~Fp8_s%|l67-!?ewtI zv^am7%8`#Uk)|r)Nvv{x;gZ@3IM4{VCQWoQw5@JStmweUdthgk3N}Nel2flNE{`N) z>YmUmdR;vfCzj)drfCH(4tZ7pR#V$Ru2}k>FQ(6%VhM%W_a^QsaGnf z@@8n z1AJ#dN7B?9cEsP= zqzO=O)3*Mrs4ua$4M+oob=ze<@x&9^jNVvRQ%6J+ttv;fYc^Z*bJ{ ze{JxRk{WFg8|p=+?@FQuwtPh7l<3lX@#gm3HikP_p)Z9#@*h5sAG8Sq13U)CgsdPmRns#NpxK9Q%x|098FE9)bVh7g6q*Df9 z84W=yC+LeVF*8vgDVs8Jm`H=rdRu*VMCrrE{q_Xt5tuY>Mc{+OGWezQ1)D_eUqXaZ zEppK~asQ#~sGk4=23|KVH{}rks56HS`*mA!Obt>XlJqkwDNX8gx#9N@X^+Rf zdGcN0_qTBxet%s~LDSS0uG*X!oz0*Mz#I_3QN&}%_`>;0^2xt$ZYPbYHlZQG?y{v+ zT$aMLWC^4?)U}$SkAOk8qa9alPwR{IB0IPV0LCxTB>^cp&dmuh^OPJwCL2e-d(@Ar zIxqAY>ShWf1LY(KMs0yhQa}S>kN%I(SHFOQ6QIow&4D8?NMVGeaB}1kIDX>L004jh zNklYP5qYZCG7 zjVI(BAY&zIiYiNyP>Lo)lgGwX;c#8)K3pV)#n5TeV+INDCzc^8AIKUI1l5$LZ)#_$ zZJlaCsOkN;7N-Fn16uDI#l|=b(VZqhHmN-fOd;foNkPpUwy(6mCBFTMZQnR+ndaI7>rTs8lgGjFh|tJi41vAfOZPVcTF3fR zIyA13(Z9(nQ2}hT^asc99~^Z5k{E;Iuz73AOE8 zpI%-uUO<6)ffPs?b*(mt7d?5t>>gpS%kY6cj`Wg0jpGiB5$p*JEXXzyjwrH~Q&gwA zr+GL&0XDR!)v&ZwUdG+}oZ{8ZbT4yoI~mRq8yZJ*s~IL+XpM#lBt9pH49*NdFYvDL z8eleo%HpO>=$7M#0sXbS_MiBPpJ)cBUP(F0s_#yx6G1JjRif^~{*7^StmoG~NIu=4 zsa61vPl}hb8G@fDi{%{8m0=FRO=wVi6a;o~7{179+bZw=CQRLFt5Z8W;&&Q(@WBVu z#m@cpB01LaW#mg1>i$Gge;2+*nZuVQR6IiLY=;w`R7Xc-0iz52e)T8~N(29$;P+pY zFRI2;QHfg(7T}^BDKw;5X*Li)C5E*WB-Vt%=`=xa-o77|ZJ-Us%qc`FZfEF+6F)G5uF%W6RR+h-bE$jsV zr-#@+IbAe!R$$d&w3;^ni88y;B9KOQI#073NCb~)30p3Neh{f6bxRNa8Vt zw<@t`R;3KtWr@2hCz8#9g$?PO;Jug>L{83rY|yB5u3x{N(CSOmQk@Fty*L!jF#(Q{ zw-UUe(4}$!+T`GHx}?OlwkIV2R05oOKQl%s25U)oc5-VHK6Jk5Ga{)SzE6S+2`k|y zyKbt{?|8>M-ucdVUcGu%(~;B;^mqq`TBg8H3Z1P8m@YmLS#&jB+7I|>wF}L~URopU zf;cD{^+t&A<Fi$+q9pX@=IU(l8p@jl3zSu^8Wcx z#jPQBSz&OKI0s9z-wBKhq5+Uz0d23xI_;=uSEr9cOQM8`FYFz+3Gw{pJD2Rp;rH_b zSwk8i_|-N`Kot8|O26902HP0Ra1k)VWi20;j}Bf7#H$+Lcx6gQF{oCq--RYDR>ypL zq~EAlC6)?kG%IS}ibK*L)ltn)X)=x?BSHoI*1)Nd24B9^NprwyI7PC51{X3ufu!At zH>{1CutsJpHP{4b3*E`>+O=!wd=vvUi`vv+wmj7<=DEAuWhTliSFV@<&0VD}z~!V> zN<8X!6+nQ05jJ76$gDz^&M+hqoBpN{Iuiu|{cJL{Oec}1cmn{A6Ix5pX;N7_dQs1* zp}6t*9N^}58;~D049vNRZ$m4iX+|AWT9N|%2%6K8ox`{p*nj1Lft+X-WgV5+HvDSd zB_k*}(kc~qAeFfA#HSlJIV#EwtdnZ3C+B9=xo0smu}^9D;7QG(_3)l)2msrmF-1xE@ZzcA*>~} z3hhXn2wqDi(N3ah3#IFz729DW8`lW#Fd!GRhC%!36=>BHZzEV2GG2lu+TOezZ zon$Q$v8^$6WDD|%r_6q%eG(G5=59Yt7YXhV+CXW;uBs90fKrZRCmBJC4pk#JNr!#{(@ z>hzKY!Y-KAx1op9(@Z-8p2{yzCook3nzjB&tCU|2SX`Y7U=<6L8U}|JwoR-DY@4!7 z1#6gg?>>d0Ays3wD_YR|FFq-w~l^YFbTFVs9BlXE-TlJ)k!C8tuu z8l&c0i%{Je@#ln2QTi!U`D+Z1(|Fw>af zm5@RMe_TqLd>;Fy)$_w!(8?3GZ%L_s#OP_eob+=Ne@ulBo*aWY4mM2Q=k zrBtBXfN(65ApfuK2s}9iE2NV6B$>hlXed+Y(Gugv1i`=|p28t8ZsE$FrXk7>Yb_Q% zj+0|LAXu8DAqiJ-3P>~X62v^s7U_M$=X0Ufh0F@PL^x}5mijzxynyV7a4swevMC{) zxZ#-UVY#(%2-Jb)LAxmgW~wCj?PSdFdMJz4TjdU9`&EjFV)B2HuT-!Vp&xPD1dpKw zGM2I@kjTrDO>nG;NCmLBM5$B&l+}*KiFL;Ycztm3v9l}_6Rfm=1ByPYjj#sL`VrXh zrHT@!_sR(d;0|2>zaB1$$M8&{`RUY=(Im+vALc(z0wa)mElb`K;dEgFD7l0~(TJpx z5>grt=QQOYXx1B0{4UsUiCyXeAE+ezW4)-XBqT9?J+*E$;l4DuTv8Sm#T%-omd2}C z-f=?Rsbbg7v4KlVq?LpVb^!l{3_K_e&P!v3Y7imaOXr4?Kd?kp)4;L2Sq`FPX*s0w za8Cj;NvF;u+;Fw091DQqKRlUVkMxzc&3y)L#s3aOdBzve|G1R zUo}z!EK&_g4I6wzCWjxE5j6q0l^Ty4uYz8L5(g9qu{h;QZ!H2+<&rt)CMbjk0+5WV z&ZUdnwH`Mc;P?83vsFE~z$FvTB_#^mh_{&Yb*c*;O$NOuTNXz?=1LIxYKNNWl&@}S z6y=D7?ZG%s%y32C(vzG|Fo+>-IHHup=x)?9Mva1^KLINznVP41JCRCuoNN`fiv*`v zN;pIejr;6oLvUhghQtPN3;G;fa={UdsNI7YOFp+k&pt^UP@iNt*U!Wus_&50$kl@M zPq|tBEF_%VLc%wPU$-zci8&c*S;q84Y`3-k%YdQ8{66Duq>T%ObpJtUgH2~pD=1= zx#2M(BH`0Ff$QGQ6aL_4iSDdx;SXK#UGRk$vUZIKl5*wAf z!NSZ3APY-T9=H?Ftjb0w7UxER1@l(0)%>xQXE*s#=1jMEN+^`qRI99eLrPWN;Pfov zS9UPNYH;nAT?||wssdMId7CL-;7~r6kYP_(vu9HwH@y!5m$m|82t`oNzuR~DYLskp z-~h@5*4dkQ@hP_eWQ|U@&>{fT2YK0Pwd1@@heS~8MfGF~^poHe(1?ag`sFf8SiqSV zo0E(rh@(u*xtZApt8Inlg z?pGIfB(yR}w4c#+4tCbW{@X_MBj>AM>_zR}mq4K|um1utY%CDM%B@#)Z#NF1FE}S_DwDS^ZAx`T2eMXjgUK3lxCE zt#1H2-(;4!0{8(EWlw-|qw-MQ6VI`DN)Jr`gnL1RKlj{oFoEGB*@~n?*?ScXN>x&$ z+K}N%$|~`ec}lo^c4nH%#<#_1Dl8z)GwE=BI>nN*0)X@z2%&IeJA@Rag)4OwFRX>N zGg-srx_~jP7kE=ZDtWIgnz{hTx5?ZbP+2Ce5XYnCi!~kDW)jYVle+1S<^R!rLgoumCFv@&^W{1E*QBlVpm0l45QCMcq9OWjrCLfJ6R8pXqa611faO#-LR4< z@U0hWA*2bJEi#wnX(3T;oY;ufK#wB~v35d+qyRF5GR#g~J#WCIEgBQ2TnCR&-}3qery|%O=)_PKGtC$JP?W z!z`5DUCrhSSC+0{4$3QWRM_3s?|q(FAZ-ag^sVl10(8JbQv|jnqf?Voq*^YD(w$hA z`}6n~6^N>NPRgqj6IYZRQAv>_|7!OP0lY`7Sh1f-u;mzTbFX-uSHZH-Ol|X%A$p4habZ4Sw>;C*{T^f{XzyBPS{>yi&weOVts0gJV4tRcR_V zkctO-3$B-xGQ~{@jr{~|2(jz%xUqsx!@g_fb+)zwa6sX-O5HmoU|4GAH%M)Y%z5K# z_VRB^K!81SkvXgihp(Lv#8IJHktmM&Lg`=Aru&VldLxz7NUKCVF`l3ygE$KMx^#+gA}_Y-gKt%O-pNbuiiHDm;&VdfV>`L+bOxL7H#L+h>9GI zi4u}}+B5Pm8)Y%}THGUAF;XLQ#?HQ*6~1&ebJDzSP`r0Hp8%ffmP;+^yOK1;gB!M_ z)=(k7hAxP!MkOIXH#I`whmg4Tpbu&S&~hYjav%DHuc_f|rlqyno|I1p9OKEh z>cG*dZl(;HNeSNPh5`@UgjB`ouO} zlt5xk;|fd@Rw1=Z!@xA~1ORcdDLn$)q_vQ1IldvwLY+Wr-wk-}n*$(on%H=n)kY@C z9$UkDW9F%2VLP#{MQL6$iVI}L52+?lsT$C*f;-^VIof_sZI1lDTT9vv-nen&`t|G0 z^P1Xonj{IcBNpzdra?nllWJAoV=%5rOcFJnB?6`W9a^9e|IN%Rej^~7Pz z7Bl6j|H=3M`|qzm4R)rh9`fQfg;0a=+X!%`>orL_gXDGTE~$d#6D53*5o90r->g2C z`F2?*fIS|-MoAww#AA9BH-Npapx)_CK}ojYI00_nyeUd=R;TxwYF1E+7$VW-_cyf5 z?;oP01H)3}ZP;pX1N_)yk97zZ2JV5N7h$_|GpMqcgWcD8>r?UOe8O*|g_aL)&+zyY zezR08S=0%)Bwj;=;XNd!%r>bJZ>|Kj;VBT`=g7Nzt8^O%a@Vq|ps zVm)d^9(dq^D_5>O_~3&nLrrS)Q)AlsC`d|a6K_M%)7tYi{c1)!bM4x-rllOgOl`&m zV=tP@G~tBxaj46Z=}}pA+EZ4mv>ad)7-5v(wV*Yzp^`(^gUZLR zc;$jmKpLY;tJJ+EjBlRnQw@IF33$2Acbh~g`4OC$f(fa3BFOq;(ng}zd;plkv7IV3 za;im@P&Ay0gE51_miV%)_*9x~y-wW^-zzt(0@j2e5lEWDe>`6b@PVVW1$yO`SK0+7 z%sy#))GzyHz`zo-dUDScyD*(p+;UrG6k$TmXUdjK4ohVnK)d9DW^`4-ugVsmxr}A5 zOc5>zk7hzv87&{UeH$cT{LVtnsJ>o*QKv~#sLf5?nvt##B~9)sqXr667XDwmb4gE< zoF{>xi8}tzGz0}Q47DbFHmDIvkEPb745@NoOqeb2(%`=O)vx~Aul-s=OEH=N4PX0( z=1hx5OGi8BI@PSp1SC=c2OYf9n?zhkB9d8%s1ZFsn0%7uqiw#8$NjZrEA@deIm~UG~Zj!I_eT z^ZCzzz7K0{y=yZH!BdY?poTeRb$XVLftgfr2kCD!L5^Lc*o3J&_A@DNo0(NzA`qyx z-HDY^o|1y`e{tvXKqzjKK&5yoFhHr~Y|t{8%o9SQOPJUaWOHP6c&L|hbKFn?H}AU^ z0rE#KHZYi;fZJ2*3Jf10!B|4Nry;0cnLjDbDR<9I2>rL^T`5d@o6zcPir0T@MpoYz zs9*ZCSs|$&KTSi={GEu2ldEYVaX_XxbVQq7(PsS2K*c1K1Cyx*N}{?aLHA5RNDa>t zC)MxqYSqN7OSV7lzvrHN-u13`)z%CckBbEaRT+5NeHL~*X zmYcN1B!+C6Canx|SOgh3i=Y>Re}ibv86fLPR54)={taBSWkfEJz;lw9`c;F`d)Y!O zrNXeSCTTo^IDirG)T$Z)9ynWGlhUgOq6R?zNmgz~*U;)vpln?9LHZ=N+O)qLU9W-ZOL>FKwYXUfc$(xWDAax=+&%e%7-dhl6LY<-XtQay=RJ+Jt1zeTk zs@qNiNj_CZP?rpO9r(3{5uGmVtTrtd&z1wPq)8qmkC3VoJ0Dmiy}drF$5=s93YzE= zNDWJI=?wpA(rY$mh8#hKjq70RTX#0%V&oiLs)yUc)h~dBZGF);s~u8b( zb7=)w39`dUpR0y$w6aN(c!9ZMb7(Bno^G@2TM!W*e-B5=p=@;N{;Tfq6`-WK5%`oE zCuxj0XszJN#I~TPe0{x^^BeNs)T(TD?d4nLiYpmZ``HI)kweHLNGgL3W1e zXD{V4vFtb2nSZ!oJn|<|n7?x8QauEIQA99%18TJK<^in5tp*9SHQjDo0<#S_&~OQM z4NSuW!Aqu^`rssM*C^tX>PtcW`1wNRKx#sU{BeqMq;WU2wMPnPt5$teeQzm8G@ZDc zQ4VL>TE4Ivh9s1yGHb0!viT$BPCBFthsG7|P1D}_M@~^gZs6s~rC2>GYn{G&V1gzY zsi2A+dTHGsp%^~D8d+-_%O2kRQSwg%ngBhGzh(I_oQdt_QUy*@AgYOIwB!;(c|ykn z>u6-BF|4TG)f<}wd}ZBfW5cLJ+mywb>R;fQq7+bwM;~CT^tr0&n!!=){D$;JS#UbQ zMZQGnL}&6JQSQvl1TM5Hc8)P%3lS8p-iX(Ismf^-H%78bnKS5#(f)^!_5CEdoE(4V zeA$7t%7_S>`qn1~>-M!_p|`OrsrjZy_LTj|Fj$wVP-2nEQL zCG|ji#Uq+(_N&)9sY4KwZQcsd1W-hK#Kx+dignnOnj{ydsjeJi1hP$l3?g!|x(`H1 z&|SSzQ>Z~tml{?E2tiI736xxoXycVisEfz`t#|`&aTB!%rn1V`oa=bBR2nIVvSiVI z{t~2S^22LD)`8b#z}+Z{+h_K!ljFaNf#lfTNLU#d)4a1l}o`Q`rm*OxmTe1X#kY~0rQ)Okphm}Z)4C1yUtPW2Me;On|M@^XlM*}p^ zSoRe1Wb(w5+l$`)?sq@($Rn$d8*51e+T`rv@)Usro}d!QX#ET4D|I}A^;rj&XsMoG z#{4e1rXvDdnV)Q1=HCPmLlB;1ZZj3>f$7_3-O2dM`RbQCbHu|@%Y)fBHD!$?mi5wA zTCBQi3?ixi5g-W=@Z^* zg@ygXu`Ru#F-tVbsL`$U_uhN&J@?#m_3G7!AAT6QTBc6@u>i0{BW$m#bwyYjbxVX~ z54Dtj5hkn8St*NPS7Mb7k;J)KB-1JiInoZO3*&2At)@sEe5jv4U;q4kNgnQ*Y6DiV z*Ndc%%1u{nAaQ6V`QTwv!8Ed)dw!ESO=>@lwEV`68*)D(d|&}IMuX3n|0v6l&q@Fr z23w7Ro;1*KyBADNLU_lJD2xo*tg4xTnAhtT7RZD>GwoEy)S{<~!^rZDX8VyN$u&}; z)*^;E#?gh16AW#-@(atrg@_Z77xtLA2Cddzt^zc6%y(~9vx zc8+~O@tD((Itgx^p3=|1d*?DAmRh9vz$yvfeN}c%9$KX=dZagyk5cZ$)Uw{PmC|3o zejScQD*$@U`p`rdHaGD+U!jm=jGz_ftW=N{aXyp#2`xf8CucM02S+ziA<|gQ-mp`_ zcyIwNoB!{hFFgVdWu7}AX4>%%r9J8Qv52h2p#cV4iN_psx&oREYQ|4mVXtmzS|K|N zLAjCq4B((Wk9zZDi~MhbO+L6)td=#*HY4p!M-u`VJn2%rVRk;wqav&w655X)0X1rp zjiRHl;(A>W02x51?0i0@73Mb|+OWxrTR{&8f4`@!!CDa}gTZ)k#Y7 z%hG2+TN`0ySOE|UW+N7iQZy?s=5{h1_dN2M1$xkI%xv4|IKtvMX<}H!W$-0>n;e1n zgaSVvv>o_98Bq%18d3S#UYe?W5M$uvB-Z5H z!yB6{6I1u;Pk$O4%JBOcs{YkrtC5HMt0+;{3jBUPF`QFS(6Cdf76%ezBiq-dnD2nd zg9LCT)t8wkbDiIs1=>+znG}ugQcjLEx+6;+S7fIqU^_^ZF^(;hLS3w4Hw|;*91IL1 zED#t#uR!CWd=sRgPKxFc7!^QluS;(A@wlH( zq)7(7XJW}-&S5pWRRBbm0wo_xc5HQK3w%X{Cqs_-;|u4@64Ar}5`!UA+v+lCz~)sm z*@?f~)FCZ5#C*Vwg3q|oAI^#?-PTtus6kZnlKv#3zMkkD0Ax~P+@Sr2!}>2XN_Joe zB%l@Q;{-G_b9gu8lGyB=*mxeUWlF)TSg5})sVj%^kH-Z(mONf$%Z`j72a|gblqiyI z#)*B*&sNl;9L{M0@B9$~kE4+GAE9g->1?EyB+V8$V49NnzeD`~S_{2P(0YYnCMUg@ z#Oth9Gl0^7JWxf|cN2m*H{TKZ;lZAzF-OlvO_EkP=)aV*u@u||yCldp-ZVHRLxPaW z3}(4MyRG5ubr^xbdmYuKNr>y$KGrEyA|q7bIatIiy8667LCK5aH8ENy!iT=Kn| zN6ryTu@MqZ3XCnP16Z%F%P9}aFiA&HP3P~fr$?F<;Tk6>D2~pJIHZ?m*DrvH z?)bm@C41AFlYvYTJ0-W6{sHm(k4V74 zp;B%rRNTbP6Lm%+(})e#OxaxWPunY+40s@k1#%uR)8qp*`xp{YFFRlkk?#beNEbT8 z;x+=be4U#Bw(o$z`X#-|Bxg7j!QyK3pj`Oe)G%;M zI1;2wa#~g7wR9ZY(@NNBq31{mOR)73sC8qlRFds@OX z+l!p3dPSB}+P2xA4EyhBrB@5zo$x@_qdC)qX`z3p1VOm5K0OU-AJ_pH*T3^SzmuR+ z9T8|?D*ObEOVV~Eko_f^Df{bR9xe%_yj!*jOZ(wJlqU;4pL^O~z{yySy}D4?tVmZa zzhHvM2NFH`)Ud%_N^k`AW8Y8l)WoJIDYUczIGMFj02}tYA|7jzqTw2e=1Y>nY1PM# z2ku@;Y>@2JMHPm8d7QyKT)o>4fs1{+AO#Jg!pWu4?evym&iu>I?sVIHko~U=Qo2D` zFB+XFUuWXzf%0}5&KCFY0>2-LVp~bYUp;vY?_$sCTvI5aP&kQ-QZE@55?9Tnid;^M zl6euF+MmgUWTrG5kj}BH%Z?Giu+%Xg3?+Op-de{#@PQAA;Ghw~d6;k#6f7Cu6}u*6 ziA){r|GJ!%vbc?U+t=EYssS})_F#S222%^31@A?}J=DD<077P0(@)f8>8NVnosrb& z3DqOg92dbC&ll$Hngktn{$eZ}79V+yXpW?usJA}S-r!DeCZs=`Y&gbIEMo$vxA>7d z)ie|OSE9&1N)c$#PY#rIIDtx2lLrg+u8yUJeXU2!g685)a5Y87Kj1{WAS=Ged8XYK zs5M>rc8h@EZu*)*O^8zSWzPfeUyMV14NXH$@4sBv7x?|XF>M}x|3eQwbb;TWQB>dD zWJo%W4QXUXcZ3TLl=UT@fYZnpHbP3MKbgLzt**ysT+p z5W=zI^gRkx42-7ZDSWivqCIMlAm2c;NEBn@Q2#C{(KOH=S+}((MeJuyYU%Dn{9<^^ zn-ya^1CU&^!Hr45*h}qDAP%LmH8}O?2^jBEk~ChXH}``*7?6=}t35TWQ2;5~dV7+_ z(}No3`e46~#1Evk^SF2i?Ejup-<(;^{_f!m5^(8hYJ!#Y1Cz@zqm*oR{p3&nWJ8-Y z!9aiyfgMt#m0z++NBYMj)N@AtH-Gat6D9oqwE4*=pA-Y{FwihJ7!96UXRw4xDpg2o zT&}5Rs-OxM_hbJWOm9zi>>J$qadX&G$@W8R$E77=s^Ak`LajoK&Tj+a9QeY{*~(A= zmdJ+c65?IbuX;V1)kKu`^mb4#$iFCO4bpot74`7b_7mAe2*=9 zPRTt4w?kXLbiLo3LMaS?E~W^NZD>$WtRAB|aFW@Q%}xqQJk^1F)s|WqIg6zx8UvEW z%MuJb8{yARLe@&hJ47kR1U*R&a&n}n%7ew)n;I#r??n;{)CwK(`|%LgCG|JmlPns8 zhSoV)@UQW1imIEDzsYw7At$4oBBo?D22SAU)=+FPpB8Igl%Ye{*`CwDKy`=YrQW~x zC-+QOy;IGcptB}mB$H=ykQEGA+y0?D6S8U&C+tQDA`6s&x_KPq#x(^>IcicvCeGUO z0`yZ2s?9yP3WqVy;v~}qK(eA>cWk>W$+bBFAjwOf7$LsY7(9Hi3L9T7&w|v99@yH# zNu@pYuG?w=6z=R@%9cf|{i;S&&_wsrOE2NGk^+e5t07DB+zGJU=D!yX>V^g=t1r1V z%czQ7M!LWvCMev%=~XRn5Nm4VB4O?X1Uy~r(bMV1uZ*c=TTr+z|_k&jLO80Q<(juTiC2iDRNd|B*iKZ0xL;AvZPOy0l!g9wo{ z4M+Tz<}?O~AL8}?R6NxPF|;UFhn) z?|pAGAt7X9D92FQxIWDUAm*^0l_0hvHUBdc_<+&cwV>7DbUpo3y_IJ7I?2XJ0BlD^ zBqhvP_uz{)(3=3gD0P?hWET!(6APG$A(svvW&c9MD#&wpNwE@p35azkgY8rxA4yJL zf_nPtryEUv>aJH_c_kw#1+bPVY_d12B`P_kf-2s+$ZJBKD6<2}0CY-48m%e~JUb#ypWw(^pq($P8w>pbmju+t$$He(S)gCikKuvre~5ck1#>>$-!dUdkH zK_+S@?L26)($RUoBv7!gHb&Ht@_WBTZIy(puW*j3D6O%|%N4lA}6 zJXSe2+NcOOXCF|-mUVZh|H{N)opZ%W9om)85gi}%# zY3HcQB;jL1k<)H(+}8!Ik=l#82n+U8453Nb3Xo>1U``=Vh`-eYCiHY7xvZFN4A@O# z$>qtSMyRjj_W+^~$HMM#$!!*z@hPB10!`8VfR-H6ozs<-!Elx~$D1jm2GEtzeRtX^ zak(@S^(uvvEj;oP5Ur^`S0)Zj>63F_@mGLFT8Z=Wr@Qr(?$BMGAo>Q8! z4BVl4+PBDf#}$zAs*matpE+N3N);QQ46GL+-hM)C<_R2Wv_$|F5NbfMcBxSBO4@)t zYRrIEng7>bdoAt9GmBnZn3C;ZKwUX*Urb$*NTe1034-!S?UQ-{ZV|_jV1n7Q4ORV3 zKG3K#$0q?cVQSgcJX|S_9V$3>+r+vpF4h>>C^s<9-L~RuV^45(TH*m|z z%j@BdL_?AsYo)qGRa7;X_On}93WsBb>^s3(wfIb>1U3>1AaVG#+8lS=lJA|>z+dx) zvq=KX7Ug3K0C>ivT$im#u-~}Yq&maH>x)ten!T#G8tlv-kd>Cx&HzmVX8?PTL=Q`O z%aO9fA=L6@CxqT5b7AyBs(5P>8p4J~GOT^nV8^r2KpbqllQtX&4Duq}0+Dqp6-mMa z_(++WZ%#pdoy8r;2Z|kDzTQ~lSr%s)@S{I=z7*;2aMIgrPY+@KSCeq8e_+&5pDcTi zqH`0m?i?HDK$4MeSev2vpet@HdL0rF$x({_+~}>EupJ z(#TqdAQ8%JlciXIcnJSKn4Ig5(}t ziX0oE)&WV*C}fg(t!mH{wT-*U_Tq~#wso<4tc6Rru8~VMRV-%xA6Nz-mz_uhH#P=C z#vI$3uY4JNWl{nyqZa36UuAwv4*8$wt6y|JDXaOyQD>oSCu+qR(7BDWx^f%S2D?#5 zxTH2mQs>+P;(V(&w@iz+D9Gx=I>}nJy(6rqff5$pQe{EXLIKn?&7_w!6R?=f``$3f z+W|)-8yOfAPM3Puax_tLhAM8%hyp~CswtO&f#4=@z#JK&zsT`k2HWPOvRx&S8Aw?e zK6f~FGLechre3+CDlK`?RpR28UWySTA}rd7G^VLey0slzUvHS;Unutj4cK?P&5pc1 z$xAQ2l$>E-qqG@Kj=85u-(u2Q*92%OOZbhui7j3Z)fBd*h<;r-B5<|~;=44Uz-;(@ z#CLnwm}8W2H2}asKfeJ|cL{cQsbN;bt>U~Ehn3jIJHHTZKk>6T+@ENnng-?4^U1We zWosp$iP!e-CP4qfNtSjxUdX2hK#47|5gkBjx(KpQT3anhht!t<)>PWe&joh?lVOv) zZYQZWi;ayM)?S?yWXuba%TYyQfbkoI1~Q0-C&Q1#$;R5o;BF$L72{DUXTC&iZYcTX z8%3-OJ;BskU{yMhVDQTSfemIC1;wD4B$gwMGce7*0)a;bkIlEehk-C@g~p79C`y8Y z+WAZ83-Hl05oAUzFpTx6g%MF_&upy8xjo5N04!ZQ3Ik%Q4KToE6Ux%#33U_!{mIjX z0%Pz~SeaX0n**SWwHdcGf=%UC=mMk_36|BKzF0eX`t5@L%bg2j6~+ma-O7VdQ#LL= zzixsNL4mG)>D! zJ>e!(ahbk5HXcyVN?_Ig0%oImwP8o_i;_QSJQf*@mu8nJ=2Gs~9(GYe5l2MUp_5W8 zB-EA!)pUY!?et%(8XBG%n^kB?4gY*lz~`WZ*B5Jo*x7Wt8~Se=lVDSh%zs9TpCF;t z+MeGH-M@g8Qt463DvRTdnKRUpPx-Zd9qkwBSgLHIVD-{D3zwjn69u1-a4(uB0M5!I zCGE-dP86!|8!yAe@GDgnxHK)fJ7BESM}-MZDeBq=oN zV(-xK5XG5xvhx_ij4Qpz#kUL7HROJ2>+(akD;1y>S(6p45)Ebs=Zu6Z;gZI3nf+G7 z{_6mmSnGfKS9>JT*8ow;Mqq=7w+K?uJIO2B-0$ z@jG^Byz6FyhRzF7@1i~9y>lEF{T<0yi$F`3(0l5Vw38ASQy1&bJ83Vj6g>;2Vf@Iz zfF`CpzQcA>9COUcb=VE*jj=Zm^H6k%)>jrD|N@si-vd zKw(G}MxVWNVN+d^RNa?}-Y2P7(~lkPzr7`)_1IMQ{qKK&=bUyj$+~9uc9~1g(2Doe zZXb(I;Z}?i28vV5LV8m>v&T)Lv@oNNxnA*pV-JF9!PHu~EE*0X2o$UgS0fa(9?}Dw zIjNKyOG5^2vgOg5(|gT)aC8fR;4^Im6%yDY0u*b8BT%%YH2MH95FaTW9v(t(!43!} zP@RM9cWD&(#pFeIL$@6n-}HKOz}g6^BTJf=%5+ToMI`#k^WH%14jq%`;+IZP5&TF(0C~=NL?fv01Z!{tkvQFgP75)JmJtmi6_Tq*A`$8C}4S zeVz`z@x~i(z4ca0P@mM1p5K$(xIg;nqYpjw(EHx^zIOJ#G1JhK*0D+Ml1jQ&*%F)C!gdv&M(B-YdFHO~Z0b~{>0l*z|wN_sC%h23pela!kCnVW_$ z-7*12I+XB{^eA26lSuN^6eO^kq~2)a$y&>-W>%cOtpC8E`buge`nw`NbZpookHH;Vb3Flhnd8;uKW_R`x0?DICF{&;ZLOl1b7HDI6TqQR|6Engh0j z_6cT@bALb6HrSMH2vflx-jmxC{;%`Z1gP2RR+87XsU46r z?E!DrSKv&kjG?R`QkpjMAXNP){Peq(XJP4{!&M?ss4{DnH*&?26+VGRC$Ur3UaJ1R zX^`bh+Ccr`6Sw$`?L4~!bx$ogcD)3M+RC(Ja#{OzQkB+HjPrI%vaGT z-8mX*#TdAi5@Y()StyaFyXY}xZd**Uzvd^9FD`-O%x_o`4mB9KOfoIaE0 z<^XJ6t2rNYUsMJTFtA6p4pBTe_{R3Tk(k z-0YJ&d}$$YCxPpJFzbH{*t|VUrNyHlT>2~DuTBa)h-Ow zY--w%1hUWJ#r8C{@I3@UOVby|og`{3(8oj3d8){L&rqB+p4XmRNGURSeIg+?*?KJv&T4?OTdD?pPrjcLMX6qP38hXmf8v6Q2` z-1pT#*dQ^w7EDCn);bE*Pqd+mo_f1HoCYo>mVTqMR$*ryhmOJLR+H*!U+1)FdVrqi zn-YwZQfjpn*s?!az34@K2w#c~9@DP8%g%@QMqWMwcZBD)T#m31AykMaz=IDy2+IV= z492GvPXZ-(Elf0#zMj+TmNbcsq0wuC{`Y@9KD_C~Qm~rK)j}_A#kZV-KcAV&- zA{Y#Q-Z??4Z8xW#?Nzb@P1@So5Z2(@R>RT{drjEr&eP6nym*c-{ssM9?w8O(or1-L zrWee_YVBp7_ z6VLZ54@x8s3*b4lP)4Br`<)e=9*w>K*lD81e9G=N;fE%tOD1by^uVJg&RTTIC(=)NN^c8Xl*GF zG*(r-y(J4&-|Lq{wwO9Etw3AdmqyhqnoI3)`lQBZo1F&+qcr4|rOH7ogWHuk#N~l$ zW(XSyH5s}TRKBRA{4;fWVzd(isu%IYj zl8arR{kmdKl~VRg40amTG|ueS@`hOQm>p5?1&k?k8*HKEzf`dns^{*46I1gVXztxQ zCFaOtCRkY6P?%6eH}t1wiM(xD@>uKAyr$zr=SvYI@P20|$+wQ}y;Zsa9sn^vaDtB1 z|LS}J7dj%vf@VmG)6sgU95y=&3#eyuV>KkoTvW;?rrwTwFtr$0K+hMWKw8=-P}WU6<su)n+DsrfNdxlA(C}3= z)&x5GWrP-P--3)4kz3)-#JplA$Vr|)RGO-@w;p^v#7fdRmMA=?80H)Nj zHX%#1ljgMU!~Vt1gbp@a)jJU0(|&p{TMLr{0jbY|?$R*G8mjfq>=>zFer&EMg8DXc zb9rOd$=GXvwBHbL@yH~QQlZH%uTI~F&<*UiX^E%L}IMqw44!PI7!Ql9S*C1 z_kUgtaEbwzujT=`wWG5Wwmp$gY8>%yB#^YfCE{K0de@aJS1vGQrPem|!*p8NI;db} z1~%s>=u}KaSHCR1$&SjN2Tu{^nSmE%n?bOrkuu8@ib{6&VCeFLj8)f@GKp0|2&>&z z-gF(o8@R=J;szj-j5s>jgF3l6AY{njEKiubwrQ|%1ic57wsLQfJ^)=zA#qB{gFR}1 zkP{By2=p<-9+fDRhM9}Ja-IB_}JA}3BuWQjw_X>gBLMixnn4@9#@JcUcc8m2x>_(}EX zOoJ&spH&;kHoD8*04peus0oj7r2krG`#d>=>q(J%JJQRQ6R2WuYC)efQn> zLqGIG?|8>MaLi>aupu=@h-F741w0FiVFDTEakKZ-9T;{KtD2AgZ6?Sv@5RyzxP25% zw(d0ldMoVCW7U`<2AiL8E2y?sRo$N|4Asq~Ns4cJ2!dNi6hMtgWM(Y&8Y|Yo+@UEM zZ*xGzT1H{RKZNSRsjG9P8Nkjwd5rEh6_gKL>;7iZTnXRQ&LioV+DirO;{mZ5JKA{lwLI2ZQu8c{O@<)~%V}+@XL0z2d&QzT4S!9o zkt!qw^JU{EC5tNf?tbx#ehxr9+b;tTY+!P0$N=o9%EvU*ZPr+U1u)K|pafmm{fM}0 zHW&dV%R(P~+?{X~S|v%=@JO|IWR#M?0&Azo)}G|qm?rI2N5C!a6a0d0`rrA^cmARC z)i3?o{7e}z!GPxOfq31S1}7gSM~Dd2wVqf<>FkU&@)^YhPAcjr5>3XS@yPHu0a}2r zUAxxa3v(s6gWZU2)~=qWx>xN;_O+HN=M#=WA=uYb$KG4B>>se?9`Pt)1L6jCOys}f zC$^M%BfLkjr=#2M7iQ1jz6K z=5I`sFc+EBLp6yR9n|ot&^E3Zh57r_K#bfO`xNg7e&7eb=X<`V32^Vd_qHWzb6&$5 zSw)N7A-%3YAv@KVHGKymoHy1_tW4l@}&q%}~YXoFoyK8B^Gv$^vQQyGR^-Qw@?5cv@%< zn8~g&DapX$NY4J5HoXG)RD%JcD+4CVqaITHNa?*3SXKafdkaElQq3!$BX1ypurcDO zp6LeZz5+THV%z9p;A|`5juy=*9#5pD z!mDzX75%~19BH<#k!5!I{Rz#9vHMw2L73*`Z~yjh*DwXE%kSs#VOtTKi;e-hl-n$Q zwK=?a0=$0g6J2RVlc6Tn{tgC-J*EG?@B6;*{oe0w8Z;T&C8k345f8RhC7Y{uXtlxK zQq^d;9qSWL0Qy!=>bL;49DYBDObbwgNZ~l1+X(SMA!Eu`C0UWCWYiNRmZS{|^CX{P zh``L=GZA~Vyf(G)*zhelIndYMj>idWXWH)!DpJE~-Pc346stYFMQz(k|0{gk2JjvWQL#yG~bedz*C}cqXNVeg%tW6(JN)$L(Em9lvKgW zN_B*;l~JS(y)M=1=EVo0chtcl{>t(nJl+v69|Q&oVB&Gy>S;i*GdK3u@E}x**oG+= z96oWwF(}BsD8HY}fv=DIxT!nrYgw6@43Iu1JZHlwrLMd+tdITO{jIB5jT(pGHl6Fv2ob+D#{C+9hj91vp)J^qi39 zHHT2!W#^6F&?Y!5m&>G=(YKvMH({xzte$P^lh zL|>Cc`wRw@W(&H?uT}%ph>8i-6WRP=Ndk4o(ax22!6%Ro)kr`cFTecqOE0}NkQtfr z-OxjNzQDzYKm6fUvD7d?xvYle6iireA0?FeY!?S@p!=o%_v!`=wwy>a1iz1c>|+Y* zn`X`YhAoq3%Yo})c=;RP?Qtzc$TQVUI|sw0XuXwqhX|18ci9R;D8Np>eSW`ft(xft zo0s1|!lAlz1XAxsI}iMi^VKi%{Oma$)zDS3fK31nP(i8(&R6y~`7{J6Nn&qjfe2M% zZz5_X&weT4M{0q$u9nCHI7uEFG%@^s(0OyWLt|9(BK2R0>H{D60H$kfF5>VF)exEz zal>E7I<&QFr&Z5C|9n>Vm`^Y8(RXWrObXK!Uj~nO|KgvPzkVc{lFG78t&~Q~x)ZQ% zH;<4Yd`ghWAPC*fC-BNEue|x@n{U1K)@!f5_Tq~#sy=HD2wmHpNP|UeEHDRWMKK3p zpVY{q9Q3RlTbMDtYS8^_SQfEyYO=}uZz)Kb8l-wu3lnd{oTwZA#t)@r_gvuR3#@Vt z%k^M%WluB^V5k)?+N^@zMNz7>%3*ZeUiLrVKEEG|tHo_}RklxZiqaV=qCJzh9SR-B zK6@ctl*1NDP$NDR`5rxjWQCNW)0YGs)T{j$+pJVvKyj^;*{{|aQfll3Mz}o$e@=Jf z_aAxNTQOC)06+zkpAbgvRT#?>y0hKsEY{zAGb%PpT0geH32>983arYv+L&2obEWLCVL?@_P|84mM(*EE5-QVr!H^2GK zW^4k@FvBd!miNq_;}p(+)$g@L+5(C}CBls~XERR-JKeja!E`|gPUli+WuJ{)?@B4V zvrfr2ZJXOZv%aU|skJofib6=$hnqDWII z+;^DYZ>^T!FNB|oaXiCkT&rOA5B@*Nv~FZp)F|TYaSRv`rTQVqbWUF96Wd_pE=o}I zMyb?zwT!d2EvmB4+IlHEhk{x!RKwp6gryL}?@!kK%;cod$faj=dB?g?MX=3w!%cwp zWDh?0U~`})sfm$RB{-byP3{a^%9LfjJDOecl3%?+Ti!;b`x}BDE9}iXEZ|*B z{>=GOkvIk_;OX1Jt~6QkP5)|rxI4dJCe`no-w(g!?)?4_e(;0YvW%&ntvnGxbU>ME zSaYCPBQ3>0JEBewH(rXaV-Ob&A>`_(o_b2+U;?q&_TA)+a2AFvwple&9`0la3kT54 z34mEkZTgo&$N;6vGMt4!8Y-3plt4eT&`|BO&`loctc{a^dC!EZ+sj&mS^*l`2Ka6B z>91V5(jw4AYC-U#%trP@&`nxMGok6z)h11``Z%@FFcbSDa)gEZ3N2YvK+m*0Ox z2$kR8naXnghtHSXEjemJ%b6b2K(Mx@$s(Yl4f`0@JO?d zEXWO3qvpVw4WjVQ=*nPZ9l_8~aY)I|B1@{s6Uzc&XODz516k(DJAK_cOtLd!<1 z+hW5_-zF~5CCCnrmB)Pg1eB?0^7J!xhYO;HtD%xFERwHV1rfdp{TFkLuV$j*@g)0VL1z@cf7 z|0E91K>yQiB?xsg!;pTUz^I{V6~4jVn#7ZA8k2zfiX_n9UT0(5OcYL@<@14LlTA?j8}*u6FSxKI685uIEZG~p5?30PZNglken=X2?Hptd+ESsRra`NX3DDl;)SPHw>Z&L-$4isXY;J^_1N}_D zd3YLNUg4}Pe|)o|&)F5pq4ieHN^5jIOm;OzIS42r*i4F-S?C^{0-+nTr5TuWgCt|G zA$Mr2-A(bO)T=3}BZ~cMo3frA(9^cMkfL)XQH7>KQkH$4lvAU|5}U*9T)%(|hX!>- zk360NFCtBKs=hS9sSeapOK>{f{Oq12*@7vNBt>cRqybRVtHi|F4_+oqM z*Is+==FOX5{pwe7N(du}rVqptn#nOK28A=vFIcpbgw?(&XpD5kgx;1ec@5s4*RRev z@ZmNzNJ5Os;^;GmK5O^30CkhTe^DA1f*(Bv@3<2)!VK0(zd96%ggdZkw>WVk>3K8Zgi{JHp@M* zo%(_<2fv!98m6JF?=5;NdeM;xgsUtE`Pj5fH|%rd@UBoe zMM@PJR+wv|@AA!V!=s~rYycW*r6kQ-yE^p{@?M$%jU0IUl&n5*L=G2{!&I8S68p6L zBHx$=ZA#QWwRuvM(sfx3vUgYo+@N({csQZAogjjizpaBUi!F|gP~BdkRtCONPYK%P zchXhVmNacZVUc5dhsNwJgUjV2I2H!LtZs&gZ6#>6K7DTYRWFbor2&m`f7X3KbmBWb zzxTq;mgScICAZq#OVPk|_5eoKSJ+oYfZYRMO=e+lOt8sE(ylz&EU4N5ZZ7Vlu6_}z zOt+-6w=(cqC#6(Y60ZC(8n1MrzAKRU59bSsDuF-(-_n;#z)w(ktu(^+Nk-WbVU?t`?X0;qD9x@jnA>EfUoiZn{Yku@B)*?HUkVZATBvGGtArkgbT=N= z9bQMxErXYN8)dg#JzSB__-RS=zI70e@o?qa`89s2a`M%3MaIf3)f1aq^$n@ zohxllh+GrN+P)v+EQq9WWXSrK@{O||b_a3+HZlBxW;=n}A z(aH>SQt5)pDXYvF?+6Z1t>=L1mqyx{0xoC!8z%-1Sr9MDx;&Ox?G?Po)|*+dH8# zytDQ~@>c;`Ay4j-*(W|a_G24LbrQ-+(NT%lN`C6*zkR;Q2%7Yu(pv#`66%-FeeQE< z4?09S<(x>0`bJe!vy(eEBw!F~m*5O1&1{~680mz(1l@+QCjINXsDCAt_d0ta3gI-| z1QQaj7ZMHNupTiHq}dqPCQ1Jiz;8zfj^*j6pN5$yFF*wo4~CM$Wl0^$_~`2mvt%CG#&k+xBgcqUfLP$P?zL269qrZpD4sVG~w@i|h> zW>?b~(H&AbON1mv(`i{MS*v*+@j0YIt7XNkF6EISTa{yfs*VsIfl;dp;jF@g@&A4D zlb=*M-7A1n+HoyCTZ)(fpC#T}zd696r*0wpm1X4xYBgw0=xosDu$^HOBmL;>H6Cvj z34>2-gV5@l-9bmP3`LlBHZ8ryrll#@Oh{EykGh$fIzS`+WhSicLKz$~kgWs(0Q;z1 z6NH8d;3x>Nh<3sMva?XnQ0KtFVtgeTpdQ>3NoYy^lIES7rNWG;9<#FhJb>_5hQ5a zAs&F_C@Em%wRULr)@loAD3qm#$qii`WSZ35J z1bdyWX2SvFpVQ1n$f>~5h{yRtK8>~X_rMMfxkSZ^e;P zrf$PIj7RBMl&EG@+_9euyBrT}pL#34v`#a|MsZ^UTIE0BfDJ0)C7+_`EZ>x$` z65DA#M=kmgD9HUOuXbdf^y=2We%# z7H6rN4OX|oJ4){Gt|i^V}bNmn#qFDDGZ)JkOI;f zAap2tR{mxwmX!@UviBzBHYuQM+Nvc1URppY4yz}HwtygUj#D7;8|vp(HcF-=1pq4Q z<)olE9&mv4D7B8g5_FM7h8|msQ>-Qcy#KZzDM#kEKBQPZP(qb$Yx62W%PB}BmDDsO zEgFd8;K3uI5Si8nZa8~T6kw2QV1K8bqfl;)#iu!f(Sd#9&NYv%qIe8;N+|nR4FG)7 zFTh{L5E@;14dOM;f%=H0xu!}=Lt0ZK8^5u7BL*7;Jz&6~Wc2GDNyqAJ7HNgl4WN51{2AIbS`zfnFd?E;FF>J43nX?%+dL_1i3?$RR)=L%!0Ia*rZ;?MvE=yzwjvkO`2({~3y?st>8r zJt1+WJ&;n-5Ut)IlRV@VX@zQK`Z@>b$Icf(A<+O>g(^4b2CLLt5=CO~tltDk`%{Bj zi(fhI2Rvg_*Pl@JlQXEvBdd~Vv<#osRd=aJ!&=bWp+~};&9KVok&e*~r+O}%`~v1F z{kDtX^X4Pxfldi*WJjf{)Y2^HD0BwzX$hs*!;`63t6Hefm^jcr3w$n?B+0%f_hEf& zAnQLmUW95Ro)AKp`qqje5L0{PO-RN}xJVx$w4r;#AS0-nELl-O<~gaT2C z9kdzVdaTY8v*dMvq3jdjfe9ju4qUo1Yev=FR3t;i%{*=HyMXdCX?z;JT0U6@p#GzY z&N4Nq^%mB4s?b|RB3JG$7{}i~)(_4uIkfx|-0F##lX0A2rj3hRk^Nq4BcC1?C66M?3_pZk>XM01D}ko-eD1W2Gc# z#=dJS1DHBx59l#d>)Ko!nvg1Y@%lI&C6+oRj16cxi`?><;Yi?h3P`<@iKNP`aFm$< zIQ;6D%<4uh-AKI3O0QhG(wRpBh~2faxKo`Rbc})t#Y#@JV8;4yiYp5xc~SA7J6}mK zMNBjJs%h1-1DrxcBI-|SeKgGS^)UPOm0BV&te6YXRZ7{NjjMusAomWw5YbfbfiX+& zsuP>HwXOE_a2p1uAHVCeUr-+Zox?|=XMJAg`05QNfZ!PKDwHe1@An;uP@mh`)R%ATB(K^1UyjU82a)>eC_V%D7OKJ|52ooK8}GVS9EYzw4QXpEciiL2Sz^h>1t zRI69%UEotsH1CMhX0F@MsSE}w?oU9fj>i+1XkKT9ReXLQ+k%W~Q z)pF;h7VBXl_OBibx<|s#F)}kc499?GAT|IH_)WZKDGrF*37}3D2-3?VvzU5ZMSlE#n9`@9*REa5 zMr0ilNc~FL(kRSYt!a1)+Yx2dMCdVCsw)6dib1_$&1%?l_B562t5<<fYP5l*w>{-WNmneU zCMRlpE=z}IwqO1!;M6Q)ZK$&{x8S1nd&Z@aNUDv2g1hWcCI*s4I+3FDD$1w_MuC)DkIgM&gd5>A6U(Ok|uSI%z`>6*jP3VnybRqOZ!VK5(;=GV1}na z?IKbpo9RBR%h-dQT*aZG#vgH>n=^vM-5~J}U`O(Yj?<%>T?r@a0O~MlB$|^8ZR%Ww}zb8sAP{tom55qRs}3*GY=6-Cpu-oSGkaJK&wv&m;0j>wq}6 zh!5gE+l=u`^QZvC#GDRh3oxKePub3Dc9$Bp42|I^^7{(@4>uFTF1N$Tq%uN~^mrE1tv}ee0u>Gl{)NvbwbOp|e*ksC7%a;Ys z1(_x#QsL62Ln^6Ra=2=Wnks};Yb~d0By6>nfUyG5Xd1y|KtRrwn#Q2$M;X@vvH>Q!okyo4rRvO3up z%JgcSYJE3}7q(|==Y#_k-DC}F(kvD1$Xq#o=>)CDV4F+iaB^m#gWy<~z1VmwdEx5- z*6C<5`X^Cdd6a`qR^Wm!1APemnQjKpmY_B943JC8BcsR5}hWiS;x_aLk*G~j{8JakScGd(m~Tn@M;1m zfNW>dqa-_I=LF6HcP4>l$e^oG`QGs$+mG^9$-iW(?3eS{pv*bcQDN7ro(v61f-Nor z8-#IZIh+W-uBK{0=j{Mtg@~i4yCy&lRtM9~Ds_5Gn?rmHDVucqLB4|PT%xgH^W77m z@lC(gDhStdMlB@{D&EOf9-eqg*}x>wbPM|@ZXzTF@adbrDcP9n;CMRFNGp;;oIde0 z{--;amZ6^Q>wrOdZ!TIUn_2`~wFF$Gx{(mU)h8yKIk|_@<^SQGEA5e!1C&?bP{OHA zzkdm!V8_5-gMGD23M5ycnKR(jzQ{DHn&4$~a&6}@%;uiP0u&soA3799JfBt!y4rzZU0gUC& zZ(#m;LYL3_z;_7+T}74 zJL7JV2O&#>H%xx0c)zss3l@99J3CB1156P}QWVFWtRM|WzsMy{&sr?T3nIm@6)+nh zF;!eft@LJ|U8Zs&yN-Srd6oEy&buZevaV&w%E8hD&rmE^6OV3hVTvOqYueA5`=3U=_B6+A zTkQ#Zcm|1E49!tZYQPdjbF6#pXmMoxz4ImgJ4-Bt*EHbvP3*^A(B?prf!<7pLOerp ztIYy}y{_HeZ~fM9jVBaRWi3nye26&c!Ix(R8nvcheecyu7MpL9%+aP`Sp`M}R})YT z3?g|r@Ti+4-H`StKqLwM6l3lyVj%W%qlJ{m<-pc$$y}-*{3V&fmI&+Ze7I8LBreo) zu_=kVN~{_Jc^M}tS@s6dV9=~uztXnM8{AKT7G7))sZoLvX}hU>RxXVRkbLcqc;e+R z)MD%ytpL4Co$j1Y%m2=5_A^n?bLVg9I!&zvq8yJyL&c0V zFT77p&cr2nhxbXAZ@nG_i^5LD<{V06Qc8h1uW?S+fSv<5RtOv-XMKbPuM$WyMXh@J z>8Cp`*9+xoNmWXPMO!c%#1P;_f`uoWsvVQzn+yQ|R&tPaa8^`*(zhD%Zc}R8@A4pM zrV2sGbMhU*KsBb$dsJC0Opu3n(XL4hS5|qSIMFG_zl{uMGqaOcYTeU^g0GCI-|H%T zFUkGzlGHJ7{xwKKakxOnnRDD7iCokI@x>LABXUfqA;SSzgKyREvP7EzcvP)ONlK&; zBV89rkGhjU$2+g4cI-0!$!Tbt;T$jh6ZAt*Q@dcKIrpfPOV6LDW} z6D8fX{RY1H9*!tLH7Z_80QqT{Sd}ywE4!Qv+jlz32?n`VH8v(JxdzJd21~3WPjYAi z87l2)+ECZjBu5&aH?FYS(?O_aw@N(o%ro_+#&;Xc0lR!*FP>l8Z@VIIk3C({rlQln zo>I!`a?om>NzSQe{i@eu+rqCb6d0eK$W@F;*_4%NH|~(&W`{KJ^bOzk=goW=B2e!w zLH+jxMHPjSsuYGz3Q;Rv<{$jB1pPmE=i+)($-WaOP<&OeEk+9t*k6j$LCwZoV2h?g z>d&69p_;9#2B;KUIMy|JKNBh@!=jSIu`=csC`hZHy+Ii$N zr20#a;7gH43cwj%JCZ*&3^KrvDAV%$n*jYZ0r-^2r|0v@42w!7D&%TltSOCDFmuMT zV*)q^NXSuH1}d*Z{0WXD~KBbp!-wYHq7{Qw=$6gB9r(YWNG`P3OUuS6BOZ17b;x<=x z;mA90kwIph>}p2#IMugIIr*V9WcyQyB-OB`2WbO2X1syB@XXj*W&RUF_b1}J^ZS8@ zD{bL)QgquJ)2&3o^uSGM$r1$M%&|Tj{-o_hWMWGe;w?d~z+LDdsCZxw6Z{W61h`Yp zkbiW(l*#slBv5~AISlGL-k%vV9xWj3>0iwQwv2OD9u%)2=oH`)HjVh0lT1%j%?BsE zdjRG^g5u6@GSujcdlc3RJDQnjk!9ZI|nXy00;^7tR5ElLVPLZR-&xu^+= zub^pM$CGe#bEWX9>SmIxQuN? zu_*Xxn`e)*doeTsn&6-y_2OLW!-k-DrS1*c8*jYvt#5s+pZ%Ww!ue1m9d%9?<$rs= z^bkgu3=l{DkAC!{C{qEgJ^uLPpcc4CTZNtOZG@!7OK{-D$CALikD09YB_n{W4VdKh z`CA-ZoLYvuv-XH(q`|$hujprUAk!l2CXMV)$kj0I?Bc9itR_CP+Ed?CQwF=GS$3!V zep>}dMA^a@UU=d4^L5PcXS!sAe<%67U$}G4#@RtQ zO$|&yI7q3Gg_Iw5+1fR=K~E0Jq&W=q9Os%qit>gY#gu^P>oO&}1TK0$!;R<0wze;( zSBav*x^=#?T$wOA6x@|2`DwvI;nF%U|2vtEvr^4Jm`;cq;MU&z-uE^)QmM34E(*pg z`AKZv;C-YMBW6;UXqSmp&^`g;X~F_ZBQh@|ckL1VZ3xr0#vsuoQ(0g2r8Xo!BrflJ z-}{8VyC3tR(~JDdzTT7NnY7T$&F)cbr~H0a4Px#~FTM2tn%@s!R(`*tYJgB&93!w8 zZw=O7=c}D8`RqKfhXa=eW(-;@)#<&Nt%76gD(8>xrD z)4SkRVq#5?Avws0%Up_X*YGR{lYYwC|sdBPSUD{VP zQEO+@APF}XeI;2fA*}lsYVC7?1NJb|-4#C_dCnc)`o*k}1ef=4()WFxnv>%@Cc$eK}-oAE0D=krx_iCDeWMSC3nfCgvwWN1Rh>*3k6w4pY)VQY+2xaI@83b8P; zg>Fj(&C&t#bWXBC>}mfW^ZV5z!Qw?o(+x+$cQCh5KL6_Z;@z{F+fq_NB#Ov$@KX-1|^GY1-Rc0tuueH`P<+~+G}M>tsn z@L9+PH*mc)wGpPUUzKMi!IlqW)xCWpy;rJvZ%M)}kE*87K-IP8zrrzlDs;=RWqU7N z#HRPlFTb2sTBUXNg84W)k!(g}-!$h{(&55GYg^Y&B0=e#^+mB+t;7k}<4~b+)pLx> z3vVV!hsq$;=sMXe>sxJN9?&>%+Q~da?!Z^DlcLR>%}-D0Urhisns3`4g}>=aVomN` zu64DyI4vLoN)hXA0{|65y@BP3W~;PJj)@fwOz-;c^7~W7i~Ro4+eiqL1DEvrR`xV=Z%DT?!wj zu(YI%Q%&gwJblt&`X!-DSm1RA1TF5U47ABA7_M@+XC%)fQ=d9tceh7U2kqp&cHB(Fs>N-1GWOUoiPCaZJ9(MQ5ED#*CPRt{qfT|is5q@QSXTLnk{eS314edgpLb8k zgI?4D3=&Ci>4D9h{;Sv=f#kTx8f*!Uwm?Tr+$6@`?x@J z1WwyR<=lK}RUev8Qd1jXJ|#|%j2wR%1Wft;v|kAbpXo8bUnHy7^_Fab{C)^iZ3`XX z1Z8d2z?92~bRviKg4tWbLKeL_keuy#8uEHtW19BLpapRfCghwH6v;r3YB+m1GNt;S z#w-N`oJo>QDHSx<+Qyz&03qj*YNSizH{5C4#cqJ8Op=+Q+5n)u9b?C#)`4t?lJ4YR z!(af(KsLW#jIBex7_ev)fU91j4oJ`pmOS=e*Jz?`1+v78XhYRtC6;D2^NRVao1G#O zbz9JSmpQQYwF}7JC#d9~v1p{OUAxu-h>Z>+>d6iP^lZwidayUiT~QT*sc$gcS;u6` z_a_1h2RuP!u-i*~`F!<@=qy?xfHu931}~un6a@k)#a#Fr+G(T&Ab^?xZCA8M_Phy` z$N+GUM%x}*K};gcXz`uZyIKe}Qc4_m0e}24zrU`j=Rk4Qa#@#~FdSU9A^m7LGc!rH z10|Scxk*Oa33!yUJ*o|NPfG-9JPfuJk09Or%>nDfN?&2-#WF&jhGFvZ-4E8u31F z-getC4W#Hv7LuH&ykS6b=^G9XRFDHMuM4!_wi#|Nz%P}w^(%eoJfIZ2Z?%SS`aOQW z+Ux)C((dN--8q60w$oj7&i%op1K zLBUCeL1TwRDrGtebfrjAq$+P!>2$iset-8vJsfV*QQ9*oZr$Ix=j@lY*Is+AXFW@# z2wi*QlbTS6?%{_Y?q9ihX@r`3MT??Tx+R{F$%y5Dgj1(7VasG>+X_~Z6T?}*Wgrd% zv(){`F4j9SKmHuFS?X3ugBpLW1&O?N$ytcD(bqu=5qf-ejfEzW*AzAq6gV7I88$Qp zpZVk2V8F%+WpZ4TQkD{P`)^OKkHUQ2*<|!{6h`=#ab5^vGUY+m>Soj6>?9LFJWeVt zn!cfH8)q=d6m6T{fctdq3Le&}Ba2?|Z7=FM!f=q!YN8AfuaHlzm9u8k7P}NlCHj~? zX1Mo(Q$=1*(k8mpwAQedphHXCup}f13I^_KWwN&UniNEmQDiS2S>h7&J0MAC!o2VUf((E>y@S|w+If!zVQc$P+At^{few|1vI5@i&&jS=^bB1ode%`wot zY%<(9vTC^bTh=;e0VMh`*y#BkA(C=zBJ)M^#4pCg*`=UHBb6NVUI>$#0hX+c2=b49 z)iWC(x%^|#6xecVQtJs<0R zwAd_8M7d4DF9J%~g;X8Z`0;~acg3J5Ral+ z!h6yWlZT{IGN;&Z`maI58a5i7)V~A3g5_9bj%TVrI$x{>wUaTOiQx><*aDDl!cgRX zuv1|Jk(g0ytrNE?(cp-}#G(sCP63Q)ql}VLXfy_vDA|`bQTt~Y4 zpbX9mfvgUs9RR5g>k||fyT%HcAXP5T5EmOd{1pI3 zB~lODOnQPmf#gh*WcPzNio_9dE-c2k8WxyQY!2v-f&ajb8Y!+7XB%~AG52FjwnKtB zi5cOShhTNosgbJ3)i!)@P}yph(6aowjbXykyOQ{%|KpE8{^+BRItFy00?8B_SENW~ z8WN*oal&UqP?4^2z*S+&sK%-GRT^Jq#G2=nVgdA}dOs~Ht}2uT&dp<76{Be0`?AKU z^r!@m=cpLFz?PIL{B3o?0n9Wxa5^X|bbx4CxiK3o93CSRr6>5{@0>5y!b$&X!luqT zWXf0qf=ro?Kjs89pZqDT3Fg_|DG%vIYQU(uBDXlAP1u381u-D+%{O)(}~ z8}d9(B0oX_{MTJjC#s1tASpXVCRK`eT0;+v%sh$0=)4jwLJEwZNm~WZEU-93t(OlEZJQ1EF!h-(ydw7D*S3mciI7(z8arSIkit=xRwQf4B9)y z7{mlZ)h&*^w6DA>@qEr>K#Pm&EHWE~y0o~-fU!e^-oGuUepRzN6*bd>`L}M}Y7=N! zGo@NoJyRT7xf{#CPNxD2R&JaNiUBHX;6x~VLH9SBgW9f!d+o2MLWVV|w>0tTq=f8; zKm6g_Z@-;fI*Fn~#FsDCS{geB3dcAe7z{ZUfE|^)2Hs)BlG47+2NKK{z-OO*)(!y0 z-g`yXVIf;2ShA00-4-GgS5h$v?ge$R<7_XjornZS{*Gi4uN$kQ-*Og1GyoBzzUqNJ zsxg#|3f0@S^2YrYyqSZWu|V%AS4t8fO&WG!BydrDB1)<)n@qNv4OTc+oen{?T4fDz zZ?uMaKaVkZ@{A5qrL2)0pHg_Ni1}ptS(`v#g7~7~li@EH4D|pnker~TijRnKBC<{8 z=%j4?`rn<5V<{aeiI!ht-IvWxTWa$P!`;Lu4NY+Jq4=o=a8pRbh0dV2gqDQdIrw;u zQ2+L)2B`THFoGBFT{y(0(bOvJG=N!kr{^?G-6=OJ;Y&%6FJBpB1*iDbcjVZiqSi{p zp)$lMWV?<^70^;LZm&q(fxT|uzTHq{eKii5Krg-YQre+rte8@*lA9)_hO@2_V7D+@ z@O95_f%O+28A-=b3^e^VD8UvvxT?0%YrUnB>4)QOe)G*YYh>-OJ1NAb9sry14Fjv% zms4ERVVME03H!)U0hX2`a`ck|>cQAM{WFv7c&t8Ep{d)` zrMpq?)cP#|Ma#suaYrjQX8J8eq>#y|)LYxA6J8?%QT0-B+gdO*NN-=lyQIbQKHrmcNelBayjx+;f|^G8+mhO+VPn4t*DFf-lLXtWK2 zi}jWs*xa-UbWc`?Qdv@Ct$B7lCnlIvt!0$=eS>D(#2(dD?KlYKhARmR6%spH8sL_R z6kY~4Mq&Zr-uT=)Ux{72fg<6(x;CUK1P9gfAo_|3apXhf|Ht_PRI#4Xty(+)8W@Ud zusnS^WeqYik|s1+@8`9%_NcSglhYTi|L$x~ovPJNB@a|Jn2=QFUX(z$iPejyyS3D$ zSlg15z>3vAg4J7~fOFCr)!~rO4Ywy4V)Cp=W+qTtvYR!&9YA90)dIj_4ddC*04lUw zy$q-(;EMhg1Q01amS`Tkx@B_=u>rv0?OBPdmC(cJU$dIX>5Y=k`%V_Xt}p!X`y1^oI1zL)^G7-!9&{eDlR8`i8!h? zJ1#rU0h0s2^uQh>Fx)fSz8a{WRvUN}_*J=Ig^wInaRD|&y|=bWOKR(bGHPBNx2yrw zV3JJ0!rQWF(j!|iyku*)+}xfUXPFnUhDpDb^Qc4T@GEhG0u1 z!KxkFIz#;3BW7xYIW&u_;DVk> zzAsoFwul;R0d&x6yA$Q0?OJsy_@tp>4i^9bEZa#$K~yL4O}_aM6IOb+r_~oyj- zX_*|I1d?Dy?0^vxo%-9dUx5XdhT23Nhz)o@uh$S3{kBtowA$5F&4x@>^~_dOQp4@4owPlOln=$M(R^ zMX146rdtwevdR-GUbaK<)&O~yW|{PhG9?d4W0OXSkSDm5{)|77k$o%ya;ySkNhB8P zGGH!2Ub5nqNMK~Lq7Y40q|)l-2=};+aYrASaPXxyD|K5S846llNk6T$)oJaL@^W#s z?Kuj^H!kV&=bwK*8?R;1e|un7P2-!9-2zA^YEpCDGaIiA$0we6qJLWe%~qXa-yiFb zGdgR}v6vd31=T|&@8arLR8=A;Oc0!W?)#lbDc5drj-X>0YCI=x-eJq)--}aD} z5Oy8W5)o*}*+r3{729OgZep=~8BfoBj_CuE9Fq!W1Lx7YDTxPn9f&gii1bMP0*q@7 z*9Lf4<(Nbv)Y4T*u70H^U`!hS4l|1L)i#MoSWM6q;CyBaVSSqwG#J>9!fc@sF(M6qLpoK)n)@N_l@#1NM9$oItF$FzamTuQrwSxIC|mh>l=iFNz_F;@ma zUs6aWP(PP6q_+aex{4s5B?`~O=cSku1W~W+MQ9j%LQ~u7sym6YOwN`;dvOEN!_~3t zN`{(%+Ml%5S)9ggooTP8iYVX}6^vv0I|4z}P||!9FpP=p3f6;F*V>j!9qe7%-^X)K zv)dEu8YB|0ZhMjB-6j%MV1v-}Q(b6o(~d}d8_bM*G}H=BOM&l)4okHbV^<2hpR{a_ zqzoyJ`qG_Bvtf9rP#VDHqv0!1)!okENR8jX8L26*C4JxPl8_``AQm_1c)S;jNO3e= z4ktVOtPohssi~wfL0VW4sG(Uw0<0iIsET;25)b^`#=8VHwj!V;qe4!E4nGtMQMG##a)hi7P z_MCF%vlC`Yxz{`nToRI5dn6d!yaL zTN!sb@7!_8bj|CHqyI3m-zr2C% z{-$FGDg`s4!G&yPDvvT=u^ALEy{Pq%4LgCsq}wv+$$Y``W12^HBj&~xnt-N}9WL)4 zyZ}QM=!60`sUBw@zFMdSVLJ|7{~dvxGAQ!;rSms#Cx8C)^M&we$R8xv3)w#R+;eHr zqdQ4frGlXeH1~oPoPI*B+G1#u++=v{H+9H4rD7GmqAj7Yt)2Tfu zUYa&XRm`Mvos^uC8O*ML2x#V{*h{MF-^4M6)b#Y~bWKA4=%bH*^PAs%_~C~;inMN% zo@XiAdj(#o zgWPLKfyN~sjp_*lE*t_OzOmO+*x} z0r)4DeT!s8-V;F~kH%D{%N$!w{EL#;2*4BpPa4z;fb@XcM;Gdo^vUnsj{{HvB zk3|Zfv7nd|sM0~5s$EY1D-FK{+9R2oJppGuI3TP|d(Hq$N9sFQcPa;g=H7XRsGlsv z)uh0qj~uR{X((4KU_2-pi}HYFuGFR^J8^&W%{P@EQF$Q)!y!g}V@!YwHnzu&rWETX zt-1Jsh#U5Y)_|%f85jvr{Xx~uTmgb;WSiq|6X3u$C&Md4Pz9In?0)?HbyGxN_npZLn5)>Em2_Wh(k(U-H^2=w26QX`X5H4T8$Y5>OLx%}`$NwG(;l_0iP zBrXl|Bab}N4$!|DLJ6e|M)?NGN1ZZ}$5~9cdjiRm9gD_B5~g|_cx#l*5CF#N)%|IG zu#^;bW7W;gMbB?#DlG%R+{(e`F!a&9kiY-nQoe}|23QVXgFk^YAXO#QAR!h`j12=i zK#@a0AQk1@s||2RDg@J;%PGUMq2v#Km(g1cpT?pFD^_#uq$#X1M_8MS^r)l*qrkYiaw@an6twgyuF?d*u{lMhFc&RqsqSp-%m;vXol3Yl z4Rr@+R?~pJLP0TwtGaO9_Ud{BVB@&VH38DN(tSOoeFH^VI<;3PhzUnh(gKiW|HKnd zG};Y9;>+M9{X1>52En1_#3hT}={SqSMqTK(#|9RSaYHRYuGYrvCGk)wzyws`VeAC< zZ52Zrw4Ju=9n5KZs>Wk>5ZP=x)KpbXLlODj(iGSX2gY6!y_lw8S>K37IEV|`Hu%g3 zj?uJd3j^F3yCXWyV|^{bV=~4&$D4wJ33TErBTOt)M$+G%FAnd%S2C3On6S%sU zNXg$tGA>kvZM6M8yEd(vSg>|#u~cJ~9+he&_Za_@xtb-%s)tM9?_Djn-d-DOiLze} zN76Z>IAFMz!OUE_Y2(yST*G;>JJ+R-V1@OtW z%%n~61L9&xB4JuPJxdTtQy_(x=4)j({q98n+WkCEqD4pJwt19?4tkU|qP|HBTRuiD zPtcvAS)?9_$yjhnOS&IEfXUu~EQAW&)rVF{!zEv@E~g;CHalLXk8GO~gE$E}=s*pa zO!GrZY@GCiiuCps?`T1u#Hisq(PdH0Nw&mO1<&eU8pT<@6_3P13M`;DDvKn5t)_Aw zRu4K-InLIJ{474K8YFbDnrd<|q%@OMZOtZF;=vd-`XP4*Xi$S#YkO=;3+t#_g6WBR z1V0Fbvvm8$v^#5R{l$sR8)g;N`0LlN-??+=r$7Da&wlo^Pe1*%#ej+{O@`2pA|ri670bE|u5L-VW7+8EVqKnJH{>r#T{%+b1$K`XfdGn|q*;sA|fLdo&OEeL$#6w*TKA<%Zq z5_Tp|dR7ntc%5#BENB6s(~*;|s(lJ9F`7fhnL!0}1SEX24MD=)8yg@cfKpnLSMcj& z=uTCq$g|egp4M$`hHhw9+SclRs;)M-0KWL*i=Y4e=lAa2>v+?zWP~}5wM#ew_skYU zJ6pXTmjUd6)Xk0oQjRb;f!fpDwZECb^_lvA{PD+I1F8R{O8#C=>S@j8=&Kq)+n_ct z<|U?{gwd%;c16uO#RnB0wV9g4XcT0q)g*@v!Q(-6I@F2v*8S8_z3Z__Z7t8l@37wS zU2-2zzTVCU-~57SOT|Xlvy>fZS^V`fTBnZHS!Vah)=w$bDG6n~Ap3v>$C82tNsO!!Ot4TO z)^ujHPuKfnFrP5z--MaP3C!gHEfB){?yLEvIjq4kYQKM3+cVm(8KB zDfmzWkc76$DBsKXPY*6h4Pq>HvmtH7B<6#B)}$s{h0Hdq_O2E{|F*91dxE;iIOQ*5 zeF494b%-+cgjyv^kT5{Vjo&lnf)bPto%B14d$_y;^qb?GLgdqIHY}*&9kOjcwE=qK z)MTjt)wjJ^4TYY9KmoA_j+Z_N zIq_LTdwigSQB?-#VQJ8(9bw_K$NCf$5DOQ4U_|H09(?l z@Q1ipo}_G~BOLvRU#Cr40K)3xpuGN&FfjV~h0=E8?*L$SHc0*R4#`AKSg|B1->W(s z+}8-25(aUVMlbnm+}?isZP>fMtO31ZBpQ63ChtGu@ROs)~gpL8*8f2 zd%s0kXyVZ5_xZwv2FFzH03pq?#wArko^r&Y--6#+fsYfAMw*6A&#lWoL2e8ngz~b9 zln*hiEIJMA1ZYC2xP{RIh3{X~Gl5G}!uKcf(4C5Gj=j0jk$zB)SeyT+IgAYDPqo>{19(8={0#8wTqQ;y1+TX8wZ_N5A>bX7`Sh#j3-M83lKxfR23U|h-r&fcXb>9DI@{;0%1)mU zM53ig3B)TBGSDOV7yeV_acf%*OBTTs8v$mRNREWvR!$G^=U8I7J|#or_LFgnA=BAr z73G$61!&BluDDTy2{YEF1aLr4ot!+Ds%H;X!WzXFjv*L01|odF!^ifDuf+GKmErs8 zLmR!M_T|YZ?94dgjId1AP61Aj1@s$gb zvhU$snSdftbZ{vNBH$FqE>0Uchc!kNR(q1C`qg|Z!gmZlpearp4bKO#1-siO)1&M& z2uu~U;vN+s%VMro9bg)tM$%yyvpgqnvxph83tCvRh`Q4Ve*|g(PSsiB_(MmaGM87^ zPG}sFIBo`hSUw_wxvrtsCA{;(B?+_u;*V|<5=K{XENj`gHL4_1TGkPE3ezr)j?;#> zO`S>nOUhy^wJokn+0_MzAmfP;hEJHtR;zJNxf1}dD!?*MSRrr zLTz7gUi28Hq!; zmZTsWfx6%4F)4LVEg5l8;_Jj%Q&oXz^jckYr)f&vIO)~AHne0?v2-lIDUm+(U&mJw zOcb%bBI#{x)BUNNj{6<@J7P8X-Pr&(mCDp!70Em9wn$(ku*>~%Vi>+3)6V||-`}t1 zO9q4%1h5ZslLJ)J@qFsaQK70uveFZ{FPqv11$+%Q!8CX^@4J#jbG=h_<3SPJX-s)< zoT$>5eXr6{`dAS(*7>xHC@kK>v6dUY)tXidNImMtq#whBLS~f`WYDn~(&KjK53avEpQbYQT_;Ljsdkg;R#25RW+!yaW!KX#68;hG?L)^6!}g{ix^6v6OUgFR(&^aD!lh|)i3L&?)PMX(B_B%^DpO1 z;lm{yD>Naumaj=t7{%0d@L`N~6#sxa@=Xxq2M?N9TPee`!Q zNxm1C?K!F$FM7q>#do&ase{e}=!^694Kh7MRITR(HzCgQtIw$l(KI;&SXyfaMj#3- znHwusYvzR)UU>d|so9n(3HL$GfMdvz@@nzLiCRxXCYROs;~)Rn>A!hRXnLLaI@6qG zA{)*E_>1$kq9$B7iibL4F0rF72-Bib`QU>O?%cU^^X5&vO@b&`&Vs^&lw>rj?Omd( z+?os(=UPdXAc@GJl77Su{F2V5z@!#GL^0KCmUp;R6{Tjtu0zPl(NW+BLrlYUq!v#A zR#~DZ^+t?~whrfb#0Y$*iYf5{;^gdu8b8fxuWR<@SF{y0xpgYBY$CiaVLLITL@pY7 zoCPy>TP0Xu`oIzEbOPV6;vd)#e1AP@6yQmrof=SHBg97Yky~a6hkHWnK22#pdMuP! zKjAr6p2O*4bVE%H6s~IWqutH&yP(8?h)kYT#ZmAFZKxedZE%cTN2V1-%oo8AA zEwJ0SZ!3$`i;@E_8r*3T_nMKWwTWw{&|%<}=(kdDTc0&gc(G<6ogYxrX;Qvofi>mtV%!+si!DIU@lT0 z7j+W4LCB_;idK$&O=O+!-@{vqN>Ji8N*ooD2GkLzmFAla^`g2aKe(pi;i}6v+YFv| z0L4RFnGLw0itwrm4668av4j&r2s2Jt!AF&k1w%nQ$M(erMn#MV7B)Lct2>Kt;AWNI zv(nt-6&E^SGEkaOJpc~<+kb%?TRDP1$*S5=(yaSc)7@+)0B~isM0MSkC{DX8YQ&n= zOk=HSoh1!DGn025~bEWs(7wFHJ<@a<iKPTs034TTlN}Tj9>EiY`0OjN{{Bi^b>UK%AckEg z6(F{A_k4BeN>Cg5+FVOgou&ywDN#%grB?T@_|c0(5PF1=^JVQ znOu*>Jx?H%6K$lNK)~@u1bK4N@T&?V)B?@M**tI&4qZrbI3>U}{xOt0W45aq2*srQ zrAJz*>2kDziIn6_vL%s9`3%c7SwR_(dw8rIs%dbO+grG#un~`ryD0?8w#-&bs<~){ zvCLAIe0Pu(iZ1@sgKJVn#E)g)p?Y}>_~oYBYB2Ci^LvB{07N39bY|tWX#qHlVU_KE z%sP%h%2kQwnM6jEokvfXm$Q=bbzBv>#4_!i=-a<~R1bS^? z(=w^Bb`s`yqI*IF&;%%(V|z^~drh*QL^7>V^Vy*W@n4iX`D>IFd=?Q)`hoT9b03yK zBQg2!&zFo(`vCZ~bk)|S^unYW(JX6w2tHZ15UeTG){-!=lmjty#=WBmmo9Twv6J4Y z>SGHJ{aDQy!)8t8L2ub$$>b5X0Gts=mTFCcvK+baxvCI29}h(c+eWCWIEAO-k;bJ1 zNv{;=$XHv|QzA83!tN-v`p|nDQl186;&qBH@8Yphnj3~pHtc}J9BxgGQZ6$18dWFD z7Jy__hb3k`Bn3)V<|uOWIc-oh_pg)yb4R&|gwjn71%{EoesDQ>C}fB=QJzU3NMQR| zpEFfD(sTs+52Whb^#{{S_^WNTd~v4oQ9HUflSqRE+DP;ZOjk zmB90Z2BVuBL;(o)tBkniWy|SSDP*87XDPmOYXD%O3ky=~s=wAywdQ60K}oD^PQxV8 zyT&vSnE}Vh)DfRNB4WlsJ+JYq5CC|}FiK*27ejxv0>Iu%k_omq!3+R)iyRKIKe=Y8 z0Qw;1Mg9~>FmBBi?(SD2mrA)<09`95gRh*1I#v<2i|!h8iJJ0VeNZ9hswec{ zrok?;^5sW*raB-PBw<4CV)h^8rsGPjJ=z1PC61+jV0&cfizutSQr{B@0V(G^i$RQ5 z3PfTg5u4#FrctL7{T|z_w6~}pm(Yk}$_Gg7c$_&sc?%L3wVvb?Hh{l*zVNDJsaOgg zc7ujRbqUduW?{_ZA`(jO)dq%jZEFEE#jRBcw&qBnBjE$N!}6k*QSEQ86Q<>Y@spbC zlqLz@`Kl)fm`bg#%joQX`+T(+uqOA-mut7!;_741;W9~EIUnOLP%{&wqf@)Bo?BLh zUyLN?y{0zfjaZNE`7o!Fk~srY1S#%*ezLjOXozZ?BS#oq5Kl|rH#CilLa5qN%X(9S z)opbQ)4IJI2#E)yFD-!7UQ#QgypExK=_2}~lIZV7o2>AR6ht0qj4myq{*{=UKB!4Z z)jP7c1|WrG!_a(*zB&eY4troT+8ob%Zq%e}9?Ru2(;@89zV|^%uLcAqdXpqN<}{DM zxdqu)*#nVtNz89#L?kF7`~?_oQ$WkpLq^6BvI7vZ8n7JzD}*zvV2E7~$`@T%y8-VC zWhp{TDfaLLBGVjz+5W6xZYyeq(^0+w;`2;2HFC030r;b&MkOIlZjxXH)&Oy6CDvVN z*Ls(DONaX!@V)PS?^ut5za*t&H8xW`q%Fc5H*Peo{o4o&5;G85{IwZ+)RO2|O?M4w z$<;fA7ai4{gIPg6U-a#y5HU=My2Pyn6^{{&0co z=9Hp+qsL+f?xj5t!dZqSyJf5!eD-o4e(!v>Vbb3YOG;VxLuBhqEUhwc89h!op|qcxBKNm_zvumI{>b0^(fp(L=dq_BHzkBtxU?I&2^ zd-!wDJ@@TzfBU=N{ccl+HwEiIC^8q8Qa%5DzPLc@X%cBjx#tzrK4SHRL2C@wWFS0A zp=<=G?4ke~?HwGjJ#8mQF|chNgqXTW525=Q`M zVsC9_H~N+}E1CPE6(yW3Cg0j{j6>(rEJC5JIH5C8g91AwVL}W=QFRDJG!2kKPJWC! zYFh>QZeT9N-1UCI>9TF6!)rGne+?02( zXo7%bS_4QR5j{1e4H6TD42s~I^ z+{X!unQP9Hj9)oleQ4z%$l%1Vk3pAQ@a04GHq?FJoHiPqcp)4*LJR>0Bpzw-CD-l&7sqY#Wz#14Inf(B^3?DOWmxlVX` zg_+Sw2t=2|2 z2%`u%H=y0tJxwh}00>nTHpOUhH42oZt7`o=S%(|kI}LQ2xW=>q#FF`y8xFopu@aUK zejxGFi#g9?81KrDg%QG7}z5athU@0aOW4p4v@-68HC5C zA7XKW&X>Lf=!+2q2s9<#LXvOV0!WP7TY7SeMA=5?PP9d}rhy+4K zow<*i55P5{V(4ypcReAoNI~{$)wonTsTm5O(=>IkIjeUq@}?>smQmC(H+k~&b^vR* zD_KeU`63jJ!?6edtXL2eWmRuyHw#5ev`ykOkrRD1LErh#cY1qLl8zky@gL6D1z*0@ zf`m^ZwWE2fF#$?I8~ikVT}bh#fO~8UpsuNU2>RCG%g_K+$^2-Jlm z{VUohm;)VzGKl6*Ql%`)|Lh@6E-!o!S34}}=cz-c)JED56Z#fFV};W@Eh97ma- z0!2@gHz;T_#CM6Nf$K220UK`kFeQx{6Yp1zVS|E;j0h5no3D_K(bAQx0K0;8i4`bM z(iZ>DJMSpT*nqUmdU8M60!UXizU>ALYfno=RIHGx+y%-p9DKu_!122aNY7!iDrP7o zcwMDpqmXD5$m~h6C8N!*>~&Id1OO|Va^%Zzz6E8Kf`gdg;{r!*f-+DOzMiRqP)n=z z32>_Fy)!8EgxnDr($@Je$KNkAfjQ(bkYa5lTM159jZb%CgTsG=0GP6K^;rTIh-mls z93XbJ;E!oWD0roCG3vNI{_Vk)^6KA{^pZY}#l1J_PgnIr8w&%>Nt*kde*mbC!$Dqh!t|F9E|6&y zTEfgqcJ~eMmNctAD5%loNw#cKmu=j>%| zh;gDzsROmX#oE&n3kBX%Aw8}869wh;mZha$A9JYN(3&T9J+^xiHSu<+%(^NoU(`ay z07M{g(E>40`}WY*Hot0f+5HIzr-XVFy;{0`TYPIE-JkTs;;uq{>b9TY0OXZdYt1RM zhl5n~6I}3&0g6h(G_o3U-%n8dZc~!{HF7a=x0=^0Xi7zq>6dmM*)1&qG`C`fV{C3T zEF?uyfsLVhFwv(7P++81Qk)pwFq$wPT6n^`SR#9D50|hy{(i^B3;uo?t&MqaktBq_ z-`ei_K$jX1;f3z@Dy`T*(1qv*k~W}aum}F`q1|i^(L0oEsw7R;AYe2jmL@e!#x=bEjgJoB3{j4ao01&kY?$&W4T_qZT zDO$R;d^|@Q6>1v`xNZSprzlzu^$12W5?E|#Y5lj(m(1x5lcpPw!KwGvvO3`Ie?MRB zmgI&Ol;bPfC;6?5a~(N7023CIM4_GK#TQ@9mS_|3GI99sIr`L(_0#LE=XdE0*ga~N zev zdlr;LIc0TVdlF5#)E8C|-UJcZu2ld6HHS{yW(y3vI*7fUTw?A}2@bqvD8`2Cug(|j z7Q6<&mZV=;0D-BK00sl_3Phr4bOm}F|3;(dD;EnnZ@cd8ip^P^?EcIU**_SZx~^Zp z-eT~pbaX$w!UAD{;t-U42OP3kA$1$#VF@LR!4fu+-7M!C z>T7h1%MAz6wW}l<&?b;14b6y!9i%WJtKy2(QmiepQzs_TS4FG2!FnKZKCRPlac)Ae z2_x{bA>XCF?EWLZR=&4&0_YDYe-UegMYCq0k8Ix)k<^M@vd79T28X1PTBE00000 z03iS_bl!G21pxp!1pxpR0001YZ*pWWZDnL>VJ~TIVP|DGE^uyViBL{Q4GJ0x0000D zNk~Le00031000312m$~A0MigZF#rI707*naRCwB)-D%iv+f~;2_nS&5X-`f=xJ zNF!?KR1~V{#G=PuDWp>x0RaUOq(|vd5kaLj2#A1yl7I+;iV_G3aFUarUHRl*(jyc9X?s4;ZpZ9s6`?;U{IiK@6fAeqt%}@Q* zPyP6h|M-vm$dCLpf9B78$cKE$|9QDS_=7+ABR=9I{_%Q(E|KorBPyWe2`TDQ_`mgz#ulces`?CK28K3bPpY%ze^l=~eaUcEBAN{c(`>~(! z37_!kpZ@9n{qO(%zu(8c?c2WXU;pcW{Ubl}BR}yIKk?H){nJ17Q$O_|{=ovJww59*I!@+Du=8-3MRebv`~?brT;%hfOavp;^(7kyEm|670SZ#B*ayqWw{f9g;D z$v^ogKi~sC;DbKsgZ}iN{?konZ}cgj@+p0?&-d1S_bV?~znFyn>(f5%(;82c(5;%x zKL44Y`I-IKmwxG&_L|MuKmX_dyx08B%hk&^jsNtY{?mW-kN#1E=}nuEjlVZ)eK)JU zX|MlR{>opmQvKzx|MkD#i#PLqzPD(J8%!(v4{lw1$6o&nzTgYG^XFbJOVA_wZUb(p zyZO|DM%dDP z{N=J1ftrf>SD{_88g;wzf8mS*zM)sX)7-~QW; zs!8iU-TBjQUH!8^_Fp~mruXdo=DqLqIq%RqCHlQaYxZFu_F=ui$9&AkG)+xqpKLCA zaIcY6_4TH#hgtQewT1tvkNPNU+~=FJKK9Mu{LSCTgD>B%SAC7L*MOPdR)rc z!|o~F-!z%E?%!AXIT7iNx?4|a z%&lL~N*tSzjlZ{MO?nDxNct0qq@h{uxlK|3+iiQzroFFx(dFuw{>d06^o_ImY*a~V z@80M8uY|9sB#}M$TfXI6((r%zFaKo%ks2f-y>fr=eUqxjV{sF&-aWC{omEw+HpIT) ztusO%+3!tFGn?Er1u0Ln(8Bk^KHvW~pdOT!YTQ5eV?UPYrvU%yKmDh6gJ(YTnY~qS z(#ka#tt*AzRzL^3Gg0`zZe9DGzV(47E*b45*~s+s8!lJBoZD0%>+^fT54c?Yk|t1t z?%CZw_Hs29A9cC&184(5%2eY@5dtc z&p-QT|7=g04kQ-rmaRDPB2Rs$nQT6r)m}dtB^Db%N}kXs{Tapf(o9Uh+w>Y(;zc?8 zWE0X1w022w5AD&tl$&=^19rDLZw!Vs2cd^Hw|&tD(udE5=w+(Lee}`@O$3)jg~4_OcDWC2mOn_;O`95|5NE?PB#3Bs)^i?eDE!FVagT z@jv{-Km4p`J?qCVSCW$^^vCqS-Jn(Y=eMq=rRA7mnl1S9%hfOa)BbkT^!ak1ZjM^H zM5KvG4z_onyIA9ESaxl9Y>3U#m0!_iqwn)gWuNI`+XR06$AA1k{>T5A8l(U}`lCPE zTeWzpM;}O}lGjE;uM#8D(4D(s!qhBhV;WDxOEa7C>}$V#_=kUZV{U}WXisc}4Ud(MY%m8IR*{yL>t;5if3$MRO)s3_HtDoEvFK;7mk=a3Nx5CPktL%|XfHznS{rlv=Pp-s z+6(vj{%a?JEK|0s;ikt8Jw5K16re#j5{@jtu+{1-S&P=d-qO^Qq{OI+&b0jTKmNzx z<2~M^8Sj_=vROWL;A<{d3Sg7n4nP6ARm;;&vQ_TWKU0Zb`A=T1_rF}-xi!vg_kzi5 zub&BFmUnDn@k3!DcUB`sCvyLfX~_^8f41c2b#veaJf>3 zp3YI}!%0js)Rd-mt>6#*zz_VpfA{a2%nV9DlZgyX`al^BEFEar**H_${aNmA-m2O6 zrT`6z_snJL(S0(#?L|!5pSWDDLNo85&EdPg>$@iRPkriBpM1IcrGKUaeI~W@BGeB zzg*q<-QMlpTFbQJk6*4n&f=60&BQ5t>(;Tqd0vu;!$%G^97G z0R0!YDp5=Nn^i|QUQj~Nd~!CLNdnsEo6n@PPd5Jzqxnn$n#1J2RkyYN9KIU?HP5w5qnfs6eB=OIA&U1e87k}}W zfBBd1yYIe!{?g_8#mnWFU-*SzNJ&zRc8tE&p1{zzAtd^#Qxnn+Z+4*0Ze=FZ#U7kJ zAZkowKhuQsD3ch8hn$;0!@aUAJXgm`YvusGKuv>4=o^QleZPG7<>J-#nKq^FpKxRm zyJs_)LN?}ZrQoBne69|o76xUpowiJ8#x)}Nc47D3L|m2$~ykcFS@-`hdU>2U|1hSYc(jB{|CK;oM@Z>oF8U-0%UV<{HYT|B9e6W!mUcn(^4f&Eq_9g z1SEF(1H7PSghg*ETV^Njl%XYb6z;9OPgkGs_4-RIXRjBlNpmvHX+n?A-WyP=IAutZ z`eXmw$NGFr-aWI~jU=nn0wna0dCX(p=55~Q?z`{4=bn2W_qfM3*NwK3XJ#@d&0QnR zgXH!(Y%O5byk~#auyDYKf;XOJ?wiCX5i zS#JEIy4kHXu(_gX&H!DBQF|%#-yjq5tO=L0Y3$C)^x~oYooAdPHL=}|f84iHkN&r> zq--Rk0puC~*Z=xovwS%QNl61s0kVG$wa=s~O=h=kU@b)V{G`j}h7P{;u+KD6-QR|p zI1-5rdDbBjZ}K1i_{aA%Gv9P2_k5my>7UJEe^2^t0{yXXr8#ZUSyD654O6N=d%2p} zrs%^iSHJZ49gtdg2cFh31#WuN=k)yNfBxr_@1*<{uXx3)UiGTiyyi6zKKS6TUar@^ z_O<=&kLgCcK~vFYXlartXJyf|H|zk;osLJ%b&qUq8e&V{h%6GS2N3HZ_1ikXShXa?BMoU8$yfPbT`*6VWQa>j7dP_UtcaGPW4l>W}&e)HF*(@ zr#a2=Kl;&+PWtb>^Uk~Ox~t!t_jIEvZbJKT_ZLF$=Helar_L3?z_Z% zn%h>OmcU%u1pdI~vKvr_{)=v~Ce3p?AT}zv(j`Fb zthGq79WoJehU`rnSXL}!-ENjePtWsn+5xin$$HYC-2d9I{o3nZ_qx}={`LKmO1$i4 zFG~TMkd`JFh&|0-NMSW0$=i)t<`-rR+M8OT?Q~wO-%|iPKti1OHiJ!;bWDy)_Ywr` zFa5n+wL*!YV6#w0ir&{#p?>yz56TAfrc#3@onIu`(Q>wIPR1G3{wo{Mnsv8)vj&s5 zlf1S7Hi0fXKtoMKx_=YbCf+I8IJ!_mvfA=}1zps=2Wj0zhVVP97*%moX4Z43% z?8STi2EQGEhm-WP?%5q@r+2?x{jyU*Mx>eSr_XeUJPQZQOqB!ld)~VGr&ye9i9ljP zl9|YC2|V;Vy=fDko+sbwK!X0tSHAMx2l}O*;e{`JVH-uC?3~tQGV~H(%uVxl(`)yV zg4P-7_NE5J$$p2+)i3=sm1q^4g=D&kOSYQLZjoT|<1N^ZSqaL5*}X3``OFYFDXNtY?ILV z+ZCJA1=BJpEo!sci}%(YC9`e9sVPZ{-MS`ly<Fdb;gv;C8PI})`QWBtU-wOD(jmDg(+P1irWT(XC~FGsF1 zHxG$HVx36Lt|!*cNWEQ)E7#G_=B-!m@6Bx=c-PC-FOHOd;?^aI*B>Pf`e)ygJ3AxA zNk}hlyKABnj~t<1Gwah~phNHrUhsl6A&)4xCw=JW{rBJBf8{JSjm@D`nN&SD&)NE> z8JwTjBU>ulTyl_L^|MVNQAjm2y;iPCOdXT07N+@4Mq9H6l)Mtwrn_}rZdlO0S89%W zNw%S%y?L+NLwod+}^}r z2AT9b{&y1wwc+*F-Kr^0v0JBeUAr5vuZ5(gsd2KBnQR^#Omddc|J=|0TxYCjKl|Ak zU7M`UDxukS+SePBaP3k;IfTg{tHuLtkmB496}j@KTh%19EX$4bc8w=ZkoA*eX<#iu znj;K4f2=Q_%K-$@8}<4Gt2?xfG&2pO`+V!=GFKUk>_}g1E6YJ|y;`+I*$Ot{y%c%v ze_Q3|3c5tP1|Whm%*?;nt&0NCkgo35&HF$z)}p{4Bs|MM?ljy|c79DfGDFQ$Ymv*> zLS*j~`sY6Px&7=fX-HP7iS0$2y56*TI~~aWcq3`gRwY#ph<72n(jJ#sq!I+n3E1H> zQ<~Lr_UcKnJ*h$3+1xdutgPffhL)Tqrp&egS(Di8bY~J~o6Gh{`z8GeL~Gf)ww5hV zO58%Wa;ail$|kp|?59|5VwZR|NCrc=siDd+OaZPUOD$@Ol;P*9c0+N`KG5VOD2**S zYhaBk0d21HL7(@$=QZ!Wdw*<%ZP1NB8SV4@tA^B+Hi6vVrjY{V|HxGE{fI9gCZ9Fc z>i$%#HBK=af4avfafIy=!bcoPVzHgGuQZ-+E9_&32UU=zX_kcKr72sl?$1~Jw#(Ib zJ+T+>aZ3$J0&GKr66kKg8c+=Vl)Udv`&QG~7bR7fUFkmCC2RuA=QL?fN_GI@AlqGL zyEkf{ds*qfUY49Bhn)?Yz${2VAq<+g1eLuLo@tzvAJFJ#iJ{Z{XZt(lqyX&z$wVV- z&FTK?Xuck4a7ZMxBI+1I9~Z!Ie+u+U0$xReB#Pu1P5=m`qS0Jpa`#aXYG z!Db@nGwF9X9$IRXa3o%7doSCz`~2rWKOZzPZN@XV=K2iUc4r|bA@lCsgA#>&LUv>d zAf=G`XabweY*=^hXTSHj6odXJrmZCfxUyu4MRq4^CydtT7mSjQ7`&wcIA!*B$rfxv z!)WmQpKrcgJ+6WE_x@K(J86ax>%9`tCY+l-5Me^rvtT+}qrTO1`(i64J-W<#bGzhm zYTzV5sbpRIfYf`!_*jUnmWZ-ucpnvzs z6d*&DVNON`*E<8WatTB)+&lE0?v?c9=C)>OSiWy^pCN3)`q}UOCB5v~+XVVn-|ekZ zfV8VS-*eABciwqtC)Xa7-R;d&zvi*Q^p(EYyRnE#|4&}7G$A45%uThx#hkODSr$Cb zQl5*-sfCo34M?o}Zd%QoYX9xslhF)z#;Mg!f|LH9;=q$iH>A9a{LWss16EGwefQm$ z0%UJ`TtL@bs4fo`1Qvnwv$~3 z1hUn)9A3ZCc3aq);d;9BjRQc#YQc8QPwvkHKziAC8n+#D{!b28%ab3REleQf9r{au zXAT9I9ItzJ8(hbx6yWZ=?|#&y9(C7UclCRJ>F@n-_iv`440-_q0XjN|IF)N@`PneT zy~9p*P@FKv&3?-urXlhLt=W)zM8enSTZR@OF>L^17h*oG$C>g=hNkct`<#=GTras? z6d*0l)0hs(W!eGkejE~L zHjn}MP_PKwU4|dHt9$a`dr*(-je4)lE&PJR{h}H|(uw;dxL*d*Il+0eHAC`cO`uK& zl5eO(xtZ{80#gJ!I)G!hN){X2hhHucLLeIGSHUh>S9y}JxphgHKz%~3!lxO(@UgwC zF#~akw59{rw+-rse)pky!?^*;y$EjSfmA{c$eKB-_L410{!gnV9Gf)sv)}tmf9D1D z$v!XOm_Q_3nZqYM;R)>k6d*?{`N%FdrY5%m@voXe(XIsU3^jJ=_PAD8P_H%X^T6)C zYCrqE^{|$JK&?vR+hjEuAk#iZ=bP&$rTrI(CFyLBN-`Qut`S!X9z88;pKUy;VxlSZ z_R^QWG@YjajVh&W-ut{Gqj*}A*)+-uHKlC=$zS)koetmM2!%2i+{pHKXIab?BlTzu zfFX@4?UlhD0G1b&{hPm+2sQ)8Ba_wIx4uFy0$lJp5QMS;(86jVp#1GNd(D<*fZkLAMvrc&@T!0$#^1$JY?8b42}N;a zA7<=EUa&cGXp`*&>X5z5I%YXi)A@@mbiQULIiDvhm?-?pul!0s`@O&P_x`ufuvmSo zm+XC*C(5Xe(%7xo0UrpIP|dj+d-Alkydd zD74iuC{6hA{g8sPJk1_NL()&@+g=2M1#@7o$Rd}I50h9VaEV?4odK zLVFY)5N&KcQe&Tfxe`IU>#!K$7^ieLvBS0iW;a@1cr!MHtW@cWPv`^0I|OL=YyeubLV!Px7La2TMk!U6a1mYF1ctyU!vJV}_xUJ5G4KbN( z9LYqsFdZNhDL~7RbJkOAGUE5WZGxTz5YeX$cCqWM!GXBS62xF3Hfw*=V2n%x8*4b^!?X$JVh4Ohcq2 zg_t1T=N+wFtA*q4_rHB6)oNoA;c=6`PPe7=TT_K1>NnIjboEQ`au(=FHMA Kz){ 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

^yU0tUNBFd;DVE{ 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

;Vmk%VdJxk=Nc~$rV60_3=1FxM7Ny zp}QKc*U#f|#gtwxv-fF#5uJBfj-}%+F{E#~qjUU$i#@ z@8j$TfKVR6?{&ca*Ked9N~x@7FQIV_KiJ(8bPfIvKGB`E{l-?jQx54M{YD$->5>?g z1?BysL6PQ&VJ^@@^ACR9UK`@JXZ7QK1F2Ops2iFmo+^79lD&&h za}^+v;Gj?7pBD&W=0F=uRaEXv?uTHM8B0h**eMoWno#4D`+JMVUKa#b#=WN>IMrJRI;e;;%UdRAENh z;YI<5MviU2!W-k)RTk?=Lje6Hn?lLrRNxnxBjwX$^Cyepi>8&}mB;cuUP}wdDv*r2 z>jNV&i7&vD8s(^K22v|zUfTIHjmJWuu(hgt=n$T_Nx15Om&NdDuPWO%LCw&xa_jQ3 z*zV))HPLK`qI1C>#f`a&A(a-Zg+$n1Jam!L_bQSYzZ zWiXeGtN&r9hBE8E0A&FzXPkc#woWTS#pM!ZtV3;QDs>ux7eF|%&KqOA7Q@BFT0Mm*9o7OtuQGLfqzhU zT)nKU{)YRi%4=ItE_IGo1cfIH+b&L6dMT#iGW`%7x~;`l5(Ai_cn>b6Bi)S7nN<6D z!940}vIEHk!|!BdY*Y8~(S)QxbrhFduG^70eJs@uBg9G%VG(+6p{sK#TTP`+x|>X>EEsL zdhy>O_}P7^c^;_N5K%bKe?4AR9FdEl4%1=F37>bdrxkL3!ssR-?1uHcSN4pDjYf?k ztM}=5xm(k=2GCz%j=S(a0J5sKv}gD}E?2srn<#Rr?PoXU(Z$t`|8^Jo(T2b$q^i-;u zXic^L-m!hGf2$?emu6t_2`dU|qGNUTcir)t*IJoGb$vvDFfUTQs2x-B+bSps36Lxk zby$`g8pFBZ0;Wkm=#Oo+k2TFDxoM75V%>_5g^-UEZrlvxdnB4fDxBe(@^^s!rtfga zj7-!=5JvHL0m4dluf@fALaxIerI(Rvz}F==XuLfPw`oma!f??tcC%3ZeLy07IZG3$8eE z^!8`g;`PF+2bz2|)q^{1I`Gt#+)!_b4E(t1dMtfMAr{ZlB+P_z;+(663Xyjf=dG^= zQ6IR*IJyXGL#QgUiw8QO&8n`>e9iw`|e#g&4HN7!5Z z>8$>Jlt_n@HoN$4!fpsbEJP;U2VAG%?a%KfmAWzM!H94Q&xbSj3uTp}>iwVJ#$(gF zM;3rB@)*-$-RIJXU;_A+#WtnbxLBQ=_Ai8~k{V9Bd{|d5-G61A*SX(kx!=1G{IkIJ z5v94l84m%uu&PU|Bhb#4JKXPhy_FXNo+%U8^3SsFDibTfo02X#zS4u!L^fYA>}om* z0+BUN@VB)y04is^-t{O_8Yv!~S2=4tu<)xNPk{px1zx@4WUW!dG^n*DWg;&^4M_L09`b1u_j zV{1k~<@-F4$^Ucqaq`xU1@39%Cn9A1^5E*h?S&h<^?7XC<88g}`J)4fS&(+#yf@>Y z+WpusEPss*TzjrHb$F`NFK0g8I+9>A|65?#y1JaTJ1Hfq*?4NWdEWYBa7}l6dATrg zdgpvO{Tb~X$x&(HX`FKXYub6130IxJaZRw&@#WF@{DT+M{OXQ>c=p0}w`eRvo%fAxUk-sq~CC6$r61iXc0N^;%N5K zt;18|U$HIs{F0TLBUYtF^xa;r4ttiFF)hY`GoP(baAB!Gb3ibg>vS?J* zFhX%$Fv7Hbcdn66v6nA2Wi)?~2~RHg9U6qfu%E_$9y3~2UP0MD$5?5&P$f$uTFX>- zPsNM~b6IVAThMDX&GYMzLEEUS2n?*z2vI_k z*89F7Yn6ws9zqSOLR$9vD}oq)8PWw-)%l@FoQ@NBM^s^rd{9+|!yp^b@2VOf5iKVs zgyzx3litE0-xDFSkD(dGt0Za#sL`d|Vl(MdD^eSGE~-MD))uGy`lqI8#E~;1LBPl* zi)CFpU%r34o@KBaB{35jDxIt=dU;?{2j%66Wy7WpGX^=Sn_fjd8)!lnIUJt&1@3M- zW{v#(n@MYraXEyC%{Y9&lj+x5;C`x>IY6l|#HTiqb~i~?f{5CjU(!-3kCoaYq#wDM zGw77Enu(7!rPv7mUVxJeJAaC5rfaCx!-RJ`jvd=db}qe~Y>-PlbcPcxc~2ci@B-Qh zvD%?kPVu~-XRI}vQGD5OLUGI#+(RZYFujc0mdChr+}Ygl3spjlZm=4&I?tEIV-To* zIT{!FdZ2CaV{UL8luk+thip)jMk;|=vuU}X?DVZs6{EEf4hHEyCRQW#!0Iaf0a4*9 zBz(5P8IkQzwk21Zk$32_# zuLH_n`};0?77~^CcoosPDaiX?4wt=TMqP0Pn`vRCz1Ln+)3}$V+8Y?uKV}HkgT^Je zx-JFR0!of*vT8 zz^iw=i}V0)k||H|pV7BF%L>Zr*Gh1h?&EeejOX5-%Z7Sqm+M~9hc%zViaVx@i&x=e zfIdX>@GmNUWG^_wwh0Qey_u6R1&=Nd`?L}8(kClF(ToYA%OHU5HX}Owx85H zRala4*PJ(27mJC{^8P#CE&+K1>^h8e?vGV;sBMQke=0?^tTWF(B$=m?{Urg)0r>i_ zwp7VKU!*0`L7NhRCqVTj!ssDEqXeV|$pJZWr08Z_NqInEo{^*xM6(|hG9$2?RK;9d zA`(pUP7+CK-Gm8XW+ceP2*``BOq1FIBkD0TqLNF0gWb-5Ux(H8wfP?w_upyVC&T$i z%jxR%bJ-U_F1i-k(ar`cDLeB9`5+fwz^1CVbNrDYbL@v5Q`B%@F13CDtAa66t2;i` zLVm78!+^@2MmwssU(}Ew0@2ng<^T?MmF#ODVN^7sH<_fCOxFKVe z794JAmZlQV+R0~8WQZ@+P|U%8-;U^<)iMm7F((N!ku!1WU;t-gR_zv(dH+eKHTdC3TCj*`MBv ziE26G!6?Z=X$=#?x4L_?5ki~{TU|dJg8UI*VBF8wEng8_;aWl*O3!RMRNqguJOp!{ zXOq^;JbkXnB??(az=fI|dh#b?e3#OnPl!D0gvObFh%@Yu-o%|xjq&)_{+Dq&$K$t& zBK2Slu?lzgv@)RXNOB47%A1zv9Y8Mwosyy5G%_Bm+!E!hqt`_M6DN*v*5bL{STp^)<+!ci5cpA5ZeaV;;0aHXmS%cqA1~p5a@?ft^6|vf$v{bzaI0tpR zP|@Ae3<#)$8VCsa|2AT6U2F_Z906wRe^%_J=2Ywk8)7%cDK}>O zjb`FeF6%yAr>u^30ytQM$V{WO)}UmOz_{zCQ4QzgvaZtv$)nHvFOLv-5rtH;TAFp) zy&&|}Cr=jK#2x!lJ5leacOlf~<-aifr=yOxHkBdeGsnTd#g=R37BT~tkf92kP?;jd zmeFA@o&eIQUF)!C)ENfwk#u!}L-r^iBsAiQ?yI&i{JluXEl78qDAoy^@3fZxh5}z( zy9~UyU2R5Wf1)@a>JjzL0#C7_XqYins_QY8PObXfgOMF3UK{X;zB?oBdOf3&nMjBv zn)NrXEtsv1t2yvYLE6V4NHbxV{2LIq0@X|%^7NMO;U3hGN+i~eG7k`kd&?ljJ2QvN zm-Qn9@aNxGNtYGMp4jRSRNf~_wMQWAIM)4XT)}CM;r$uaVhZH<2){ZWEY}K*2r{LQ zkt~P_gtCb)U&_UhiT*e-mkKI@V*J_9dio+UtK=Y%m7f0hES~G6#l!?BYWgxiN+Tot;rsm2+M=in%k*5kXJ^{wDg!6(Lq}Qo!_GI(2eGKyCibF31Yt;JZuQ_A6`w1 zt!zlybYs|aW&RAJ0HI#uAfjykUSQqCQ#7CBqKgCRTpvXekPcR#V|U#(i&$RsPSq8w zYp~Ae6EmgSHh55U+WJ3boFGl1nd+5DR@pG_Q{H~g5Qyp@x=tN+W^CNXU3iLk4L>jN zP-g0DR(Kd}Q^QtIoy%PURp~eJx}}n$*Vt@|nK6&QcUd3s8m!b-!&j_U#cgVz==WHS z;McCyR>l9%4!Hkafy^{=-?r?8&E`00B~T56_3cOgNu5ta{>i(7=e8*;Hup6Eg`RU+{fpj}R)O?iclh(6|Ci9Iqw#nf9tkS2hjt2bwd{ zG^*ADckhWYrL6`rmhcl4pj5^@b`JnbkM_coDVY#=CVi02i-kIxU`;0f?GMX5Bto$< z+$+5ri885mb1N!KB2-G65|WTe$sjZ(!$@6|dwrzv@qQOYWy`h2I()^h?%OblkaCXO zm4O}vA4HkgKqHA)cEi`y`IEDGwk&wz+a{hrtc1X=Z zP)BU=>~RdU}p~%6|M820@ng#XH<@3-?_vPR-UMLI=a;tEW;|CBO4YIL@Bb` z&Ski-V|zZZJvMy7dGo(pxybfmJ*ufaZtm949wAoFo)_DEscT*EFLM^$C^)%+#8^9< zKNHJ3J!^@MadcsBv~d6>ixvbPh2H&C8@HMoCLFgFU3*QXBH9C1V#{;fxNx;TMElsf zUYdhCXtg05a=p2`wVm|t&4Kd=8%XUA!y70LHT`UfIr z8znQ5?&q(PE$v!+QPRW_aj8!U<+|aY1Zs&PiSPH{=!B5|!L5ktv9(iOhoH#nyBk9g z`fV^j_ZKTRJg>;69?9ej`7ig*9FR$bI$~o7&aZdAcl(YUqcHp$9}XG83wtdL1mExH zH+~;SXI%8%Lk4{Q;EA7}IMQL61*q1P9L3_P^XNORp-OPC?V|@^n2iveqH1m8^F?)NOVWIdaSLZ6gQQ! zXx%ihKtAAtcg1*kY4J-MGjD5D=i8tfTjcPe(i<>Pbc#__QI%b1@Bi2w?CIlZ_jpLp zPwEW;Z6~?0d4r8sFYK~;-@Z5`{L5YYkp4vNxy=>HKz-XiTb~J{Y=;of53m8X>FSoa zH;0t_!%uH}KdMHs9l`YMJ)o;hFrFc(O9?k!;KIUV@aN%1{wj(NgUKv=cHEHP zgLb0-aLA6iiFqNPR#UKJAwRcEeY@QRj zir6Hq7=}L6=SUcD(DDvOIbtB3KSPtotA#)O@vq^3hitHN17R%|x18GaFzyU^1+$o1(RaPh7@IqRBqeY;#aRD7MI$b&lqM+e)`Rq&EpS8BXOeXD{y4dj z1Fz@)V-47>G?vv0%o)qrtT+~clL){GjCr+!lDkz*hOd^@;-W{L=q`yvx+;q(i#W;$ zAN79x62G{Bu2=<%)YNWQ?ps`X&j#%3x~1y}qQ>u+%D`onqJ@JoM-5|(`_)Lus%h(U z{HZawjjiDsl2ytk0seEyFW!w;Sl@{Pm&!6HTkj^uz2PDUC@+E!!B&X_m%nh=1GU

4Mv^~o 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 W0vOu>04m@gFYxPbW)d=R>wf`NY&@v| diff --git a/3party/glm/doc/glm.pdf b/3party/glm/doc/glm.pdf deleted file mode 100755 index c38ebb0083004cf88bc2b0e683c7a844987a0f98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1200201 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𝔫od+5S^4^S3^3V%99?LKbDYgT#I^6 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�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
Mr#65ingG>anHHo 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%0D)}IVMyutVdpVHFQZuy`1`OK21Q-8oHx% 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�}PBwI8i} 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 URU0!uemuZ{D#0L?3W(7E2QF^jwEzGB diff --git a/3party/glm/doc/man.doxy b/3party/glm/doc/man.doxy deleted file mode 100755 index f9274071ca..0000000000 --- a/3party/glm/doc/man.doxy +++ /dev/null @@ -1,2311 +0,0 @@ -# Doxyfile 1.8.5 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = GLM - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = 0.9.5 - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify an logo or icon that is included in -# the documentation. The maximum height of the logo should not exceed 55 pixels -# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo -# to the output directory. - -PROJECT_LOGO = G:/Repository/glm/doc/logo.png - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = . - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese- -# Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Farsi, -# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en, -# Korean, Korean-en, Latvian, Norwegian, Macedonian, Persian, Polish, -# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, -# Turkish, Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = NO - -# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class " \ - "The $name widget " \ - "The $name file " \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = NO - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = "C:/Documents and Settings/Groove/ " - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = YES - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = YES - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a -# new page for each member. If set to NO, the documentation of a member will be -# part of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. -# -# Note For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by by putting a % sign in front of the word -# or globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = NO - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = NO - -# This flag is only useful for Objective-C code. When set to YES local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = YES - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO these classes will be included in the various overviews. This option has -# no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = YES - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = YES - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = YES - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = YES - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = NO - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. -# The default value is: NO. - -SORT_BRIEF_DOCS = YES - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = YES - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the -# todo list. This list is created by putting \todo commands in the -# documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the -# test list. This list is created by putting \test commands in the -# documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES the list -# will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. Do not use file names with spaces, bibtex cannot handle them. See -# also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO doxygen will only warn about wrong or incomplete parameter -# documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. -# Note: If this tag is empty the current directory is searched. - -INPUT = ../glm \ - . - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank the -# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, -# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, -# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, -# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, -# *.qsf, *.as and *.js. - -FILE_PATTERNS = *.hpp \ - *.doxy - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER ) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = YES - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES, then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more acurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was -# compiled with the --with-libclang option. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = NO - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- -# defined cascading style sheet that is included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet file to the output directory. For an example -# see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the stylesheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler ( hhc.exe). If non-empty -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated ( -# YES) or that it should be included in the master .chm file ( NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using prerendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://www.mathjax.org/mathjax - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /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. -**/ - -/*! - @page pg_differences 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 @ref core_precision "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/3party/glm/doc/theme/doxygen.css b/3party/glm/doc/theme/doxygen.css deleted file mode 100755 index f0f4a4f2b5..0000000000 --- a/3party/glm/doc/theme/doxygen.css +++ /dev/null @@ -1,865 +0,0 @@ -/* The standard CSS for doxygen */ - -body, table, div, p, dl -{ - font-family: Lucida Grande, Calibri, Verdana; - font-size: 14px; -} - -body -{ - margin:0px; - padding:0px; - background-color:#bf6000; - 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/3party/glm/doc/theme/tabs.css b/3party/glm/doc/theme/tabs.css deleted file mode 100755 index 636277d9e9..0000000000 --- a/3party/glm/doc/theme/tabs.css +++ /dev/null @@ -1,79 +0,0 @@ -.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/3party/glm/doc/~$glm.docx b/3party/glm/doc/~$glm.docx deleted file mode 100755 index db258f22db6d93b1e6a0f4d44f071ed6430b92e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 pcmZQzpcZKV|DPG%EJmmRE06|Z28IR)5DDXh= GLM_COMPILER_GCC43) -# define GLM_CXX11_STATIC_ASSERT -# endif - -#elif(GLM_COMPILER & GLM_COMPILER_CLANG) -# if(__has_feature(cxx_exceptions)) -# define GLM_CXX98_EXCEPTIONS -# endif - -# if(__has_feature(cxx_rtti)) -# define GLM_CXX98_RTTI -# endif - -# if(__has_feature(cxx_access_control_sfinae)) -# define GLM_CXX11_ACCESS_CONTROL_SFINAE -# endif - -# if(__has_feature(cxx_alias_templates)) -# define GLM_CXX11_ALIAS_TEMPLATE -# endif - -# if(__has_feature(cxx_alignas)) -# define GLM_CXX11_ALIGNAS -# endif - -# if(__has_feature(cxx_attributes)) -# define GLM_CXX11_ATTRIBUTES -# endif - -# if(__has_feature(cxx_constexpr)) -# define GLM_CXX11_CONSTEXPR -# endif - -# if(__has_feature(cxx_decltype)) -# define GLM_CXX11_DECLTYPE -# endif - -# if(__has_feature(cxx_default_function_template_args)) -# define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS -# endif - -# if(__has_feature(cxx_defaulted_functions)) -# define GLM_CXX11_DEFAULTED_FUNCTIONS -# endif - -# if(__has_feature(cxx_delegating_constructors)) -# define GLM_CXX11_DELEGATING_CONSTRUCTORS -# endif - -# if(__has_feature(cxx_deleted_functions)) -# define GLM_CXX11_DELETED_FUNCTIONS -# endif - -# if(__has_feature(cxx_explicit_conversions)) -# define GLM_CXX11_EXPLICIT_CONVERSIONS -# endif - -# if(__has_feature(cxx_generalized_initializers)) -# define GLM_CXX11_GENERALIZED_INITIALIZERS -# endif - -# if(__has_feature(cxx_implicit_moves)) -# define GLM_CXX11_IMPLICIT_MOVES -# endif - -# if(__has_feature(cxx_inheriting_constructors)) -# define GLM_CXX11_INHERITING_CONSTRUCTORS -# endif - -# if(__has_feature(cxx_inline_namespaces)) -# define GLM_CXX11_INLINE_NAMESPACES -# endif - -# if(__has_feature(cxx_lambdas)) -# define GLM_CXX11_LAMBDAS -# endif - -# if(__has_feature(cxx_local_type_template_args)) -# define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS -# endif - -# if(__has_feature(cxx_noexcept)) -# define GLM_CXX11_NOEXCEPT -# endif - -# if(__has_feature(cxx_nonstatic_member_init)) -# define GLM_CXX11_NONSTATIC_MEMBER_INIT -# endif - -# if(__has_feature(cxx_nullptr)) -# define GLM_CXX11_NULLPTR -# endif - -# if(__has_feature(cxx_override_control)) -# define GLM_CXX11_OVERRIDE_CONTROL -# endif - -# if(__has_feature(cxx_reference_qualified_functions)) -# define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS -# endif - -# if(__has_feature(cxx_range_for)) -# define GLM_CXX11_RANGE_FOR -# endif - -# if(__has_feature(cxx_raw_string_literals)) -# define GLM_CXX11_RAW_STRING_LITERALS -# endif - -# if(__has_feature(cxx_rvalue_references)) -# define GLM_CXX11_RVALUE_REFERENCES -# endif - -# if(__has_feature(cxx_static_assert)) -# define GLM_CXX11_STATIC_ASSERT -# endif - -# if(__has_feature(cxx_auto_type)) -# define GLM_CXX11_AUTO_TYPE -# endif - -# if(__has_feature(cxx_strong_enums)) -# define GLM_CXX11_STRONG_ENUMS -# endif - -# if(__has_feature(cxx_trailing_return)) -# define GLM_CXX11_TRAILING_RETURN -# endif - -# if(__has_feature(cxx_unicode_literals)) -# define GLM_CXX11_UNICODE_LITERALS -# endif - -# if(__has_feature(cxx_unrestricted_unions)) -# define GLM_CXX11_UNRESTRICTED_UNIONS -# endif - -# if(__has_feature(cxx_user_literals)) -# define GLM_CXX11_USER_LITERALS -# endif - -# if(__has_feature(cxx_variadic_templates)) -# define GLM_CXX11_VARIADIC_TEMPLATES -# endif - -#endif//(GLM_COMPILER & GLM_COMPILER_CLANG) - -#endif//glm_core_features diff --git a/3party/glm/glm/detail/_fixes.hpp b/3party/glm/glm/detail/_fixes.hpp deleted file mode 100755 index ce13bb1bed..0000000000 --- a/3party/glm/glm/detail/_fixes.hpp +++ /dev/null @@ -1,55 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////// -/// OpenGL Mathematics (glm.g-truc.net) -/// -/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/// Permission is hereby granted, free of charge, to any person obtaining a copy -/// of this software and associated documentation files (the "Software"), to deal -/// in the Software without restriction, including without limitation the rights -/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -/// copies of the Software, and to permit persons to whom the Software is -/// furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice shall be included in -/// all copies or substantial portions of the Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -/// THE SOFTWARE. -/// -/// @ref core -/// @file glm/core/_fixes.hpp -/// @date 2011-02-21 / 2011-11-22 -/// @author Christophe Riccio -/////////////////////////////////////////////////////////////////////////////////// - -#include - -//! Workaround for compatibility with other libraries -#ifdef max -#undef max -#endif - -//! Workaround for compatibility with other libraries -#ifdef min -#undef min -#endif - -//! Workaround for Android -#ifdef isnan -#undef isnan -#endif - -//! Workaround for Android -#ifdef isinf -#undef isinf -#endif - -//! Workaround for Chrone Native Client -#ifdef log2 -#undef log2 -#endif - diff --git a/3party/glm/glm/detail/_literals.hpp b/3party/glm/glm/detail/_literals.hpp deleted file mode 100755 index 79780ccf6a..0000000000 --- a/3party/glm/glm/detail/_literals.hpp +++ /dev/null @@ -1,51 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////// -/// OpenGL Mathematics (glm.g-truc.net) -/// -/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/// Permission is hereby granted, free of charge, to any person obtaining a copy -/// of this software and associated documentation files (the "Software"), to deal -/// in the Software without restriction, including without limitation the rights -/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -/// copies of the Software, and to permit persons to whom the Software is -/// furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice shall be included in -/// all copies or substantial portions of the Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -/// THE SOFTWARE. -/// -/// @ref core -/// @file glm/core/_literals.hpp -/// @date 2013-05-06 / 2013-05-06 -/// @author Christophe Riccio -/////////////////////////////////////////////////////////////////////////////////// - -#ifndef glm_core_literals -#define glm_core_literals - -namespace glm -{ -#define GLM_CXX11_USER_LITERALS -#ifdef GLM_CXX11_USER_LITERALS -/* - GLM_FUNC_QUALIFIER detail::half operator "" _h(long double const s) - { - return detail::half(s); - } - - GLM_FUNC_QUALIFIER float operator "" _f(long double const s) - { - return static_cast(s); - } -*/ -#endif//GLM_CXX11_USER_LITERALS - -}//namespace glm - -#endif//glm_core_literals diff --git a/3party/glm/glm/detail/_noise.hpp b/3party/glm/glm/detail/_noise.hpp deleted file mode 100755 index e366e7c382..0000000000 --- a/3party/glm/glm/detail/_noise.hpp +++ /dev/null @@ -1,130 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////// -/// OpenGL Mathematics (glm.g-truc.net) -/// -/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/// Permission is hereby granted, free of charge, to any person obtaining a copy -/// of this software and associated documentation files (the "Software"), to deal -/// in the Software without restriction, including without limitation the rights -/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -/// copies of the Software, and to permit persons to whom the Software is -/// furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice shall be included in -/// all copies or substantial portions of the Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -/// THE SOFTWARE. -/// -/// @ref core -/// @file glm/detail/_noise.hpp -/// @date 2013-12-24 / 2013-12-24 -/// @author Christophe Riccio -/////////////////////////////////////////////////////////////////////////////////// - -#ifndef GLM_DETAIL_NOISE_INCLUDED -#define GLM_DETAIL_NOISE_INCLUDED - -namespace glm{ -namespace detail -{ - template - GLM_FUNC_QUALIFIER T mod289(T const & x) - { - return x - floor(x * static_cast(1.0) / static_cast(289.0)) * static_cast(289.0); - } - - template - GLM_FUNC_QUALIFIER T permute(T const & x) - { - return mod289(((x * static_cast(34)) + static_cast(1)) * x); - } - - template - GLM_FUNC_QUALIFIER tvec2 permute(tvec2 const & x) - { - return mod289(((x * static_cast(34)) + static_cast(1)) * x); - } - - template - GLM_FUNC_QUALIFIER tvec3 permute(tvec3 const & x) - { - return mod289(((x * static_cast(34)) + static_cast(1)) * x); - } - - template - GLM_FUNC_QUALIFIER tvec4 permute(tvec4 const & x) - { - return mod289(((x * static_cast(34)) + static_cast(1)) * x); - } -/* - template class vecType> - GLM_FUNC_QUALIFIER vecType permute(vecType const & x) - { - return mod289(((x * T(34)) + T(1)) * x); - } -*/ - template - GLM_FUNC_QUALIFIER T taylorInvSqrt(T const & r) - { - return T(1.79284291400159) - T(0.85373472095314) * r; - } - - template - GLM_FUNC_QUALIFIER detail::tvec2 taylorInvSqrt(detail::tvec2 const & r) - { - return T(1.79284291400159) - T(0.85373472095314) * r; - } - - template - GLM_FUNC_QUALIFIER detail::tvec3 taylorInvSqrt(detail::tvec3 const & r) - { - return T(1.79284291400159) - T(0.85373472095314) * r; - } - - template - GLM_FUNC_QUALIFIER detail::tvec4 taylorInvSqrt(detail::tvec4 const & r) - { - return T(1.79284291400159) - T(0.85373472095314) * r; - } -/* - template class vecType> - GLM_FUNC_QUALIFIER vecType taylorInvSqrt(vecType const & r) - { - return T(1.79284291400159) - T(0.85373472095314) * r; - } -*/ - - template - GLM_FUNC_QUALIFIER detail::tvec2 fade(detail::tvec2 const & t) - { - return (t * t * t) * (t * (t * T(6) - T(15)) + T(10)); - } - - template - GLM_FUNC_QUALIFIER detail::tvec3 fade(detail::tvec3 const & t) - { - return (t * t * t) * (t * (t * T(6) - T(15)) + T(10)); - } - - template - GLM_FUNC_QUALIFIER detail::tvec4 fade(detail::tvec4 const & t) - { - return (t * t * t) * (t * (t * T(6) - T(15)) + T(10)); - } -/* - template class vecType> - GLM_FUNC_QUALIFIER vecType fade(vecType const & t) - { - return (t * t * t) * (t * (t * T(6) - T(15)) + T(10)); - } -*/ -}//namespace detail -}//namespace glm - -#endif//GLM_DETAIL_NOISE_INCLUDED - diff --git a/3party/glm/glm/detail/_swizzle.hpp b/3party/glm/glm/detail/_swizzle.hpp deleted file mode 100755 index 407ffb49c1..0000000000 --- a/3party/glm/glm/detail/_swizzle.hpp +++ /dev/null @@ -1,840 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////// -/// OpenGL Mathematics (glm.g-truc.net) -/// -/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/// Permission is hereby granted, free of charge, to any person obtaining a copy -/// of this software and associated documentation files (the "Software"), to deal -/// in the Software without restriction, including without limitation the rights -/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -/// copies of the Software, and to permit persons to whom the Software is -/// furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice shall be included in -/// all copies or substantial portions of the Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -/// THE SOFTWARE. -/// -/// @ref core -/// @file glm/core/_swizzle.hpp -/// @date 2006-04-20 / 2011-02-16 -/// @author Christophe Riccio -/////////////////////////////////////////////////////////////////////////////////// - -#ifndef glm_core_swizzle -#define glm_core_swizzle - -namespace glm{ -namespace detail -{ - // Internal class for implementing swizzle operators - template - struct _swizzle_base0 - { - typedef T value_type; - - protected: - GLM_FUNC_QUALIFIER value_type& elem (size_t i) { return (reinterpret_cast(_buffer))[i]; } - GLM_FUNC_QUALIFIER const value_type& elem (size_t i) const { return (reinterpret_cast(_buffer))[i]; } - - // Use an opaque buffer to *ensure* the compiler doesn't call a constructor. - // The size 1 buffer is assumed to aligned to the actual members so that the - // elem() - char _buffer[1]; - }; - - template - struct _swizzle_base1 : public _swizzle_base0 - { - }; - - template - struct _swizzle_base1 : public _swizzle_base0 - { - GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1)); } - }; - - template - struct _swizzle_base1 : public _swizzle_base0 - { - GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2)); } - }; - - template - struct _swizzle_base1 : public _swizzle_base0 - { - GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); } - }; - - // Internal class for implementing swizzle operators - /* - Template parameters: - - ValueType = type of scalar values (e.g. float, double) - VecType = class the swizzle is applies to (e.g. tvec3) - N = number of components in the vector (e.g. 3) - E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec - - DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles - containing duplicate elements so that they cannot be used as r-values). - */ - template - struct _swizzle_base2 : public _swizzle_base1 - { - typedef VecType vec_type; - typedef ValueType value_type; - - GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const ValueType& t) - { - for (int i = 0; i < N; ++i) - (*this)[i] = t; - return *this; - } - - GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const VecType& that) - { - struct op { - GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e = t; } - }; - _apply_op(that, op()); - return *this; - } - - GLM_FUNC_QUALIFIER void operator -= (const VecType& that) - { - struct op { - GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e -= t; } - }; - _apply_op(that, op()); - } - - GLM_FUNC_QUALIFIER void operator += (const VecType& that) - { - struct op { - GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e += t; } - }; - _apply_op(that, op()); - } - - GLM_FUNC_QUALIFIER void operator *= (const VecType& that) - { - struct op { - GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e *= t; } - }; - _apply_op(that, op()); - } - - GLM_FUNC_QUALIFIER void operator /= (const VecType& that) - { - struct op { - GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e /= t; } - }; - _apply_op(that, op()); - } - - GLM_FUNC_QUALIFIER value_type& operator[] (size_t i) - { -#ifndef __CUDA_ARCH__ - static -#endif - const int offset_dst[4] = { E0, E1, E2, E3 }; - return this->elem(offset_dst[i]); - } - GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const - { -#ifndef __CUDA_ARCH__ - static -#endif - const int offset_dst[4] = { E0, E1, E2, E3 }; - return this->elem(offset_dst[i]); - } - protected: - template - GLM_FUNC_QUALIFIER void _apply_op(const VecType& that, T op) - { - // Make a copy of the data in this == &that. - // The copier should optimize out the copy in cases where the function is - // properly inlined and the copy is not necessary. - ValueType t[N]; - for (int i = 0; i < N; ++i) - t[i] = that[i]; - for (int i = 0; i < N; ++i) - op( (*this)[i], t[i] ); - } - }; - - // Specialization for swizzles containing duplicate elements. These cannot be modified. - template - struct _swizzle_base2 : public _swizzle_base1 - { - typedef VecType vec_type; - typedef ValueType value_type; - - struct Stub {}; - GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub const &) { return *this; } - - GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const - { -#ifndef __CUDA_ARCH__ - static -#endif - const int offset_dst[4] = { E0, E1, E2, E3 }; - return this->elem(offset_dst[i]); - } - }; - - template - struct _swizzle : public _swizzle_base2 - { - typedef _swizzle_base2 base_type; - - using base_type::operator=; - - GLM_FUNC_QUALIFIER operator VecType () const { return (*this)(); } - }; - -// -// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros -// -#define _GLM_SWIZZLE_TEMPLATE1 template -#define _GLM_SWIZZLE_TEMPLATE2 template -#define _GLM_SWIZZLE_TYPE1 _swizzle -#define _GLM_SWIZZLE_TYPE2 _swizzle - -// -// Wrapper for a binary operator (e.g. u.yy + v.zy) -// -#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \ - _GLM_SWIZZLE_TEMPLATE2 \ - GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \ - { \ - return a() OPERAND b(); \ - } \ - _GLM_SWIZZLE_TEMPLATE1 \ - GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const V& b) \ - { \ - return a() OPERAND b; \ - } \ - _GLM_SWIZZLE_TEMPLATE1 \ - GLM_FUNC_QUALIFIER V operator OPERAND ( const V& a, const _GLM_SWIZZLE_TYPE1& b) \ - { \ - return a OPERAND b(); \ - } - -// -// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz) -// -#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \ - _GLM_SWIZZLE_TEMPLATE1 \ - GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \ - { \ - return a() OPERAND b; \ - } \ - _GLM_SWIZZLE_TEMPLATE1 \ - GLM_FUNC_QUALIFIER V operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \ - { \ - return a OPERAND b(); \ - } - -// -// Macro for wrapping a function taking one argument (e.g. abs()) -// -#define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \ - _GLM_SWIZZLE_TEMPLATE1 \ - GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a) \ - { \ - return FUNCTION(a()); \ - } - -// -// Macro for wrapping a function taking two vector arguments (e.g. dot()). -// -#define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \ - _GLM_SWIZZLE_TEMPLATE2 \ - GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \ - { \ - return FUNCTION(a(), b()); \ - } \ - _GLM_SWIZZLE_TEMPLATE1 \ - GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b) \ - { \ - return FUNCTION(a(), b()); \ - } \ - _GLM_SWIZZLE_TEMPLATE1 \ - GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename V& b) \ - { \ - return FUNCTION(a(), b); \ - } \ - _GLM_SWIZZLE_TEMPLATE1 \ - GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const _GLM_SWIZZLE_TYPE1& b) \ - { \ - return FUNCTION(a, b()); \ - } - -// -// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()). -// -#define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \ - _GLM_SWIZZLE_TEMPLATE2 \ - GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b, const T& c) \ - { \ - return FUNCTION(a(), b(), c); \ - } \ - _GLM_SWIZZLE_TEMPLATE1 \ - GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \ - { \ - return FUNCTION(a(), b(), c); \ - } \ - _GLM_SWIZZLE_TEMPLATE1 \ - GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\ - { \ - return FUNCTION(a(), b, c); \ - } \ - _GLM_SWIZZLE_TEMPLATE1 \ - GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \ - { \ - return FUNCTION(a, b(), c); \ - } - -}//namespace detail -}//namespace glm - -namespace glm -{ - namespace detail - { - _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-) - _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*) - _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+) - _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-) - _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*) - _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/) - } - - // - // Swizzles are distinct types from the unswizzled type. The below macros will - // provide template specializations for the swizzle types for the given functions - // so that the compiler does not have any ambiguity to choosing how to handle - // the function. - // - // The alternative is to use the operator()() when calling the function in order - // to explicitly convert the swizzled type to the unswizzled type. - // - - //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs); - //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos); - //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh); - //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all); - //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any); - - //_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot); - //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross); - //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step); - //_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix); -} - -#define _GLM_SWIZZLE2_2_MEMBERS(T, P, V, E0,E1) \ - struct { _swizzle<2, T, P, V, 0,0,-1,-2> E0 ## E0; }; \ - struct { _swizzle<2, T, P, V, 0,1,-1,-2> E0 ## E1; }; \ - struct { _swizzle<2, T, P, V, 1,0,-1,-2> E1 ## E0; }; \ - struct { _swizzle<2, T, P, V, 1,1,-1,-2> E1 ## E1; }; - -#define _GLM_SWIZZLE2_3_MEMBERS(T, P, V, E0,E1) \ - struct { _swizzle<3,T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \ - struct { _swizzle<3,T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \ - struct { _swizzle<3,T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \ - struct { _swizzle<3,T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \ - struct { _swizzle<3,T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \ - struct { _swizzle<3,T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \ - struct { _swizzle<3,T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \ - struct { _swizzle<3,T, P, V, 1,1,1,-1> E1 ## E1 ## E1; }; - -#define _GLM_SWIZZLE2_4_MEMBERS(T, P, V, E0,E1) \ - struct { _swizzle<4,T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; - -#define _GLM_SWIZZLE3_2_MEMBERS(T, P, V, E0,E1,E2) \ - struct { _swizzle<2,T, P, V, 0,0,-1,-2> E0 ## E0; }; \ - struct { _swizzle<2,T, P, V, 0,1,-1,-2> E0 ## E1; }; \ - struct { _swizzle<2,T, P, V, 0,2,-1,-2> E0 ## E2; }; \ - struct { _swizzle<2,T, P, V, 1,0,-1,-2> E1 ## E0; }; \ - struct { _swizzle<2,T, P, V, 1,1,-1,-2> E1 ## E1; }; \ - struct { _swizzle<2,T, P, V, 1,2,-1,-2> E1 ## E2; }; \ - struct { _swizzle<2,T, P, V, 2,0,-1,-2> E2 ## E0; }; \ - struct { _swizzle<2,T, P, V, 2,1,-1,-2> E2 ## E1; }; \ - struct { _swizzle<2,T, P, V, 2,2,-1,-2> E2 ## E2; }; - -#define _GLM_SWIZZLE3_3_MEMBERS(T, P, V ,E0,E1,E2) \ - struct { _swizzle<3,T,P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \ - struct { _swizzle<3,T,P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \ - struct { _swizzle<3,T,P, V, 0,0,2,-1> E0 ## E0 ## E2; }; \ - struct { _swizzle<3,T,P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \ - struct { _swizzle<3,T,P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \ - struct { _swizzle<3,T,P, V, 0,1,2,-1> E0 ## E1 ## E2; }; \ - struct { _swizzle<3,T,P, V, 0,2,0,-1> E0 ## E2 ## E0; }; \ - struct { _swizzle<3,T,P, V, 0,2,1,-1> E0 ## E2 ## E1; }; \ - struct { _swizzle<3,T,P, V, 0,2,2,-1> E0 ## E2 ## E2; }; \ - struct { _swizzle<3,T,P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \ - struct { _swizzle<3,T,P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \ - struct { _swizzle<3,T,P, V, 1,0,2,-1> E1 ## E0 ## E2; }; \ - struct { _swizzle<3,T,P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \ - struct { _swizzle<3,T,P, V, 1,1,1,-1> E1 ## E1 ## E1; }; \ - struct { _swizzle<3,T,P, V, 1,1,2,-1> E1 ## E1 ## E2; }; \ - struct { _swizzle<3,T,P, V, 1,2,0,-1> E1 ## E2 ## E0; }; \ - struct { _swizzle<3,T,P, V, 1,2,1,-1> E1 ## E2 ## E1; }; \ - struct { _swizzle<3,T,P, V, 1,2,2,-1> E1 ## E2 ## E2; }; \ - struct { _swizzle<3,T,P, V, 2,0,0,-1> E2 ## E0 ## E0; }; \ - struct { _swizzle<3,T,P, V, 2,0,1,-1> E2 ## E0 ## E1; }; \ - struct { _swizzle<3,T,P, V, 2,0,2,-1> E2 ## E0 ## E2; }; \ - struct { _swizzle<3,T,P, V, 2,1,0,-1> E2 ## E1 ## E0; }; \ - struct { _swizzle<3,T,P, V, 2,1,1,-1> E2 ## E1 ## E1; }; \ - struct { _swizzle<3,T,P, V, 2,1,2,-1> E2 ## E1 ## E2; }; \ - struct { _swizzle<3,T,P, V, 2,2,0,-1> E2 ## E2 ## E0; }; \ - struct { _swizzle<3,T,P, V, 2,2,1,-1> E2 ## E2 ## E1; }; \ - struct { _swizzle<3,T,P, V, 2,2,2,-1> E2 ## E2 ## E2; }; - -#define _GLM_SWIZZLE3_4_MEMBERS(T, P, V, E0,E1,E2) \ - struct { _swizzle<4,T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \ - struct { _swizzle<4,T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \ - struct { _swizzle<4,T, P, V, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \ - struct { _swizzle<4,T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \ - struct { _swizzle<4,T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \ - struct { _swizzle<4,T, P, V, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \ - struct { _swizzle<4,T, P, V, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \ - struct { _swizzle<4,T, P, V, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \ - struct { _swizzle<4,T, P, V, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \ - struct { _swizzle<4,T, P, V, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \ - struct { _swizzle<4,T, P, V, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \ - struct { _swizzle<4,T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \ - struct { _swizzle<4,T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \ - struct { _swizzle<4,T, P, V, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \ - struct { _swizzle<4,T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \ - struct { _swizzle<4,T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \ - struct { _swizzle<4,T, P, V, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \ - struct { _swizzle<4,T, P, V, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \ - struct { _swizzle<4,T, P, V, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \ - struct { _swizzle<4,T, P, V, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \ - struct { _swizzle<4,T, P, V, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \ - struct { _swizzle<4,T, P, V, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \ - struct { _swizzle<4,T, P, V, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \ - struct { _swizzle<4,T, P, V, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \ - struct { _swizzle<4,T, P, V, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \ - struct { _swizzle<4,T, P, V, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \ - struct { _swizzle<4,T, P, V, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \ - struct { _swizzle<4,T, P, V, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \ - struct { _swizzle<4,T, P, V, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \ - struct { _swizzle<4,T, P, V, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \ - struct { _swizzle<4,T, P, V, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \ - struct { _swizzle<4,T, P, V, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \ - struct { _swizzle<4,T, P, V, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \ - struct { _swizzle<4,T, P, V, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \ - struct { _swizzle<4,T, P, V, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \ - struct { _swizzle<4,T, P, V, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \ - struct { _swizzle<4,T, P, V, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \ - struct { _swizzle<4,T, P, V, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \ - struct { _swizzle<4,T, P, V, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \ - struct { _swizzle<4,T, P, V, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \ - struct { _swizzle<4,T, P, V, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; - -#define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0,E1,E2,E3) \ - struct { _swizzle<2,T, P, V, 0,0,-1,-2> E0 ## E0; }; \ - struct { _swizzle<2,T, P, V, 0,1,-1,-2> E0 ## E1; }; \ - struct { _swizzle<2,T, P, V, 0,2,-1,-2> E0 ## E2; }; \ - struct { _swizzle<2,T, P, V, 0,3,-1,-2> E0 ## E3; }; \ - struct { _swizzle<2,T, P, V, 1,0,-1,-2> E1 ## E0; }; \ - struct { _swizzle<2,T, P, V, 1,1,-1,-2> E1 ## E1; }; \ - struct { _swizzle<2,T, P, V, 1,2,-1,-2> E1 ## E2; }; \ - struct { _swizzle<2,T, P, V, 1,3,-1,-2> E1 ## E3; }; \ - struct { _swizzle<2,T, P, V, 2,0,-1,-2> E2 ## E0; }; \ - struct { _swizzle<2,T, P, V, 2,1,-1,-2> E2 ## E1; }; \ - struct { _swizzle<2,T, P, V, 2,2,-1,-2> E2 ## E2; }; \ - struct { _swizzle<2,T, P, V, 2,3,-1,-2> E2 ## E3; }; \ - struct { _swizzle<2,T, P, V, 3,0,-1,-2> E3 ## E0; }; \ - struct { _swizzle<2,T, P, V, 3,1,-1,-2> E3 ## E1; }; \ - struct { _swizzle<2,T, P, V, 3,2,-1,-2> E3 ## E2; }; \ - struct { _swizzle<2,T, P, V, 3,3,-1,-2> E3 ## E3; }; - -#define _GLM_SWIZZLE4_3_MEMBERS(T,P, V, E0,E1,E2,E3) \ - struct { _swizzle<3,T,P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \ - struct { _swizzle<3,T,P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \ - struct { _swizzle<3,T,P, V, 0,0,2,-1> E0 ## E0 ## E2; }; \ - struct { _swizzle<3,T,P, V, 0,0,3,-1> E0 ## E0 ## E3; }; \ - struct { _swizzle<3,T,P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \ - struct { _swizzle<3,T,P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \ - struct { _swizzle<3,T,P, V, 0,1,2,-1> E0 ## E1 ## E2; }; \ - struct { _swizzle<3,T,P, V, 0,1,3,-1> E0 ## E1 ## E3; }; \ - struct { _swizzle<3,T,P, V, 0,2,0,-1> E0 ## E2 ## E0; }; \ - struct { _swizzle<3,T,P, V, 0,2,1,-1> E0 ## E2 ## E1; }; \ - struct { _swizzle<3,T,P, V, 0,2,2,-1> E0 ## E2 ## E2; }; \ - struct { _swizzle<3,T,P, V, 0,2,3,-1> E0 ## E2 ## E3; }; \ - struct { _swizzle<3,T,P, V, 0,3,0,-1> E0 ## E3 ## E0; }; \ - struct { _swizzle<3,T,P, V, 0,3,1,-1> E0 ## E3 ## E1; }; \ - struct { _swizzle<3,T,P, V, 0,3,2,-1> E0 ## E3 ## E2; }; \ - struct { _swizzle<3,T,P, V, 0,3,3,-1> E0 ## E3 ## E3; }; \ - struct { _swizzle<3,T,P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \ - struct { _swizzle<3,T,P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \ - struct { _swizzle<3,T,P, V, 1,0,2,-1> E1 ## E0 ## E2; }; \ - struct { _swizzle<3,T,P, V, 1,0,3,-1> E1 ## E0 ## E3; }; \ - struct { _swizzle<3,T,P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \ - struct { _swizzle<3,T,P, V, 1,1,1,-1> E1 ## E1 ## E1; }; \ - struct { _swizzle<3,T,P, V, 1,1,2,-1> E1 ## E1 ## E2; }; \ - struct { _swizzle<3,T,P, V, 1,1,3,-1> E1 ## E1 ## E3; }; \ - struct { _swizzle<3,T,P, V, 1,2,0,-1> E1 ## E2 ## E0; }; \ - struct { _swizzle<3,T,P, V, 1,2,1,-1> E1 ## E2 ## E1; }; \ - struct { _swizzle<3,T,P, V, 1,2,2,-1> E1 ## E2 ## E2; }; \ - struct { _swizzle<3,T,P, V, 1,2,3,-1> E1 ## E2 ## E3; }; \ - struct { _swizzle<3,T,P, V, 1,3,0,-1> E1 ## E3 ## E0; }; \ - struct { _swizzle<3,T,P, V, 1,3,1,-1> E1 ## E3 ## E1; }; \ - struct { _swizzle<3,T,P, V, 1,3,2,-1> E1 ## E3 ## E2; }; \ - struct { _swizzle<3,T,P, V, 1,3,3,-1> E1 ## E3 ## E3; }; \ - struct { _swizzle<3,T,P, V, 2,0,0,-1> E2 ## E0 ## E0; }; \ - struct { _swizzle<3,T,P, V, 2,0,1,-1> E2 ## E0 ## E1; }; \ - struct { _swizzle<3,T,P, V, 2,0,2,-1> E2 ## E0 ## E2; }; \ - struct { _swizzle<3,T,P, V, 2,0,3,-1> E2 ## E0 ## E3; }; \ - struct { _swizzle<3,T,P, V, 2,1,0,-1> E2 ## E1 ## E0; }; \ - struct { _swizzle<3,T,P, V, 2,1,1,-1> E2 ## E1 ## E1; }; \ - struct { _swizzle<3,T,P, V, 2,1,2,-1> E2 ## E1 ## E2; }; \ - struct { _swizzle<3,T,P, V, 2,1,3,-1> E2 ## E1 ## E3; }; \ - struct { _swizzle<3,T,P, V, 2,2,0,-1> E2 ## E2 ## E0; }; \ - struct { _swizzle<3,T,P, V, 2,2,1,-1> E2 ## E2 ## E1; }; \ - struct { _swizzle<3,T,P, V, 2,2,2,-1> E2 ## E2 ## E2; }; \ - struct { _swizzle<3,T,P, V, 2,2,3,-1> E2 ## E2 ## E3; }; \ - struct { _swizzle<3,T,P, V, 2,3,0,-1> E2 ## E3 ## E0; }; \ - struct { _swizzle<3,T,P, V, 2,3,1,-1> E2 ## E3 ## E1; }; \ - struct { _swizzle<3,T,P, V, 2,3,2,-1> E2 ## E3 ## E2; }; \ - struct { _swizzle<3,T,P, V, 2,3,3,-1> E2 ## E3 ## E3; }; \ - struct { _swizzle<3,T,P, V, 3,0,0,-1> E3 ## E0 ## E0; }; \ - struct { _swizzle<3,T,P, V, 3,0,1,-1> E3 ## E0 ## E1; }; \ - struct { _swizzle<3,T,P, V, 3,0,2,-1> E3 ## E0 ## E2; }; \ - struct { _swizzle<3,T,P, V, 3,0,3,-1> E3 ## E0 ## E3; }; \ - struct { _swizzle<3,T,P, V, 3,1,0,-1> E3 ## E1 ## E0; }; \ - struct { _swizzle<3,T,P, V, 3,1,1,-1> E3 ## E1 ## E1; }; \ - struct { _swizzle<3,T,P, V, 3,1,2,-1> E3 ## E1 ## E2; }; \ - struct { _swizzle<3,T,P, V, 3,1,3,-1> E3 ## E1 ## E3; }; \ - struct { _swizzle<3,T,P, V, 3,2,0,-1> E3 ## E2 ## E0; }; \ - struct { _swizzle<3,T,P, V, 3,2,1,-1> E3 ## E2 ## E1; }; \ - struct { _swizzle<3,T,P, V, 3,2,2,-1> E3 ## E2 ## E2; }; \ - struct { _swizzle<3,T,P, V, 3,2,3,-1> E3 ## E2 ## E3; }; \ - struct { _swizzle<3,T,P, V, 3,3,0,-1> E3 ## E3 ## E0; }; \ - struct { _swizzle<3,T,P, V, 3,3,1,-1> E3 ## E3 ## E1; }; \ - struct { _swizzle<3,T,P, V, 3,3,2,-1> E3 ## E3 ## E2; }; \ - struct { _swizzle<3,T,P, V, 3,3,3,-1> E3 ## E3 ## E3; }; - -#define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0,E1,E2,E3) \ - struct { _swizzle<4, T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \ - struct { _swizzle<4, T, P, V, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \ - struct { _swizzle<4, T, P, V, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \ - struct { _swizzle<4, T, P, V, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \ - struct { _swizzle<4, T, P, V, 3,3,3,3> E3 ## E3 ## E3 ## E3; }; - -#endif//glm_core_swizzle diff --git a/3party/glm/glm/detail/_swizzle_func.hpp b/3party/glm/glm/detail/_swizzle_func.hpp deleted file mode 100755 index c287bbf5b9..0000000000 --- a/3party/glm/glm/detail/_swizzle_func.hpp +++ /dev/null @@ -1,724 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////// -/// OpenGL Mathematics (glm.g-truc.net) -/// -/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/// Permission is hereby granted, free of charge, to any person obtaining a copy -/// of this software and associated documentation files (the "Software"), to deal -/// in the Software without restriction, including without limitation the rights -/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -/// copies of the Software, and to permit persons to whom the Software is -/// furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice shall be included in -/// all copies or substantial portions of the Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -/// THE SOFTWARE. -/// -/// @ref core -/// @file glm/core/_swizzle_func.hpp -/// @date 2011-10-16 / 2011-10-16 -/// @author Christophe Riccio -/////////////////////////////////////////////////////////////////////////////////// - -#ifndef glm_core_swizzle_func -#define glm_core_swizzle_func - -#define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \ - SWIZZLED_TYPE A ## B() CONST \ - { \ - return SWIZZLED_TYPE(this->A, this->B); \ - } - -#define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \ - SWIZZLED_TYPE A ## B ## C() CONST \ - { \ - return SWIZZLED_TYPE(this->A, this->B, this->C); \ - } - -#define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \ - SWIZZLED_TYPE A ## B ## C ## D() CONST \ - { \ - return SWIZZLED_TYPE(this->A, this->B, this->C, this->D); \ - } - -#define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \ - template \ - SWIZZLED_TYPE CLASS_TYPE::A ## B() CONST \ - { \ - return SWIZZLED_TYPE(this->A, this->B); \ - } - -#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \ - template \ - SWIZZLED_TYPE CLASS_TYPE::A ## B ## C() CONST \ - { \ - return SWIZZLED_TYPE(this->A, this->B, this->C); \ - } - -#define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \ - template \ - SWIZZLED_TYPE CLASS_TYPE::A ## B ## C ## D() CONST \ - { \ - return SWIZZLED_TYPE(this->A, this->B, this->C, this->D); \ - } - -#define GLM_MUTABLE - -#define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) - -#define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \ - GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \ - GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \ - GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t) - -//GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2) - -#define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) - -#define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A) - -#define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \ - GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \ - GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) - -#define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \ - GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \ - GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \ - GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, p) - -//GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3) - -#define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C) - -#define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B) - -#define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A) - -#define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) - -#define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \ - GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \ - GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \ - GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q) - -//GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4) - -#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) - -#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) - -#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) - -#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \ - GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \ - GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \ - GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B) - -#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \ - GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \ - GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \ - GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t) - -//GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4) - -#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) - -#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) - -#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) - -#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \ - GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \ - GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \ - GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) - -#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \ - GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \ - GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \ - GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p) - -//GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4) - -#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \ - GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D) - -#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \ - GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D) - -#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \ - GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D) - -#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \ - GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) - -#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \ - GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \ - GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \ - GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q) - -//GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4) - -#endif//glm_core_swizzle_func diff --git a/3party/glm/glm/detail/_vectorize.hpp b/3party/glm/glm/detail/_vectorize.hpp deleted file mode 100755 index b653fa9f31..0000000000 --- a/3party/glm/glm/detail/_vectorize.hpp +++ /dev/null @@ -1,217 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////// -/// OpenGL Mathematics (glm.g-truc.net) -/// -/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/// Permission is hereby granted, free of charge, to any person obtaining a copy -/// of this software and associated documentation files (the "Software"), to deal -/// in the Software without restriction, including without limitation the rights -/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -/// copies of the Software, and to permit persons to whom the Software is -/// furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice shall be included in -/// all copies or substantial portions of the Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -/// THE SOFTWARE. -/// -/// @ref core -/// @file glm/core/_vectorize.hpp -/// @date 2011-10-14 / 2011-10-14 -/// @author Christophe Riccio -/////////////////////////////////////////////////////////////////////////////////// - -#ifndef GLM_CORE_DETAIL_INCLUDED -#define GLM_CORE_DETAIL_INCLUDED - -#include "type_vec1.hpp" -#include "type_vec2.hpp" -#include "type_vec3.hpp" -#include "type_vec4.hpp" - -#define VECTORIZE1_VEC(func) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec1 func( \ - detail::tvec1 const & v) \ - { \ - return detail::tvec1( \ - func(v.x)); \ - } - -#define VECTORIZE2_VEC(func) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec2 func( \ - detail::tvec2 const & v) \ - { \ - return detail::tvec2( \ - func(v.x), \ - func(v.y)); \ - } - -#define VECTORIZE3_VEC(func) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec3 func( \ - detail::tvec3 const & v) \ - { \ - return detail::tvec3( \ - func(v.x), \ - func(v.y), \ - func(v.z)); \ - } - -#define VECTORIZE4_VEC(func) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec4 func( \ - detail::tvec4 const & v) \ - { \ - return detail::tvec4( \ - func(v.x), \ - func(v.y), \ - func(v.z), \ - func(v.w)); \ - } - -#define VECTORIZE_VEC(func) \ - VECTORIZE1_VEC(func) \ - VECTORIZE2_VEC(func) \ - VECTORIZE3_VEC(func) \ - VECTORIZE4_VEC(func) - -#define VECTORIZE1_VEC_SCA(func) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec1 func \ - ( \ - detail::tvec1 const & x, \ - T const & y \ - ) \ - { \ - return detail::tvec1( \ - func(x.x, y)); \ - } - -#define VECTORIZE2_VEC_SCA(func) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec2 func \ - ( \ - detail::tvec2 const & x, \ - T const & y \ - ) \ - { \ - return detail::tvec2( \ - func(x.x, y), \ - func(x.y, y)); \ - } - -#define VECTORIZE3_VEC_SCA(func) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec3 func \ - ( \ - detail::tvec3 const & x, \ - T const & y \ - ) \ - { \ - return detail::tvec3( \ - func(x.x, y), \ - func(x.y, y), \ - func(x.z, y)); \ - } - -#define VECTORIZE4_VEC_SCA(func) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec4 func \ - ( \ - detail::tvec4 const & x, \ - T const & y \ - ) \ - { \ - return detail::tvec4( \ - func(x.x, y), \ - func(x.y, y), \ - func(x.z, y), \ - func(x.w, y)); \ - } - -#define VECTORIZE_VEC_SCA(func) \ - VECTORIZE1_VEC_SCA(func) \ - VECTORIZE2_VEC_SCA(func) \ - VECTORIZE3_VEC_SCA(func) \ - VECTORIZE4_VEC_SCA(func) - -#define VECTORIZE2_VEC_VEC(func) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec2 func \ - ( \ - detail::tvec2 const & x, \ - detail::tvec2 const & y \ - ) \ - { \ - return detail::tvec2( \ - func(x.x, y.x), \ - func(x.y, y.y)); \ - } - -#define VECTORIZE3_VEC_VEC(func) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec3 func \ - ( \ - detail::tvec3 const & x, \ - detail::tvec3 const & y \ - ) \ - { \ - return detail::tvec3( \ - func(x.x, y.x), \ - func(x.y, y.y), \ - func(x.z, y.z)); \ - } - -#define VECTORIZE4_VEC_VEC(func) \ - template \ - GLM_FUNC_QUALIFIER detail::tvec4 func \ - ( \ - detail::tvec4 const & x, \ - detail::tvec4 const & y \ - ) \ - { \ - return detail::tvec4( \ - func(x.x, y.x), \ - func(x.y, y.y), \ - func(x.z, y.z), \ - func(x.w, y.w)); \ - } - -#define VECTORIZE_VEC_VEC(func) \ - VECTORIZE2_VEC_VEC(func) \ - VECTORIZE3_VEC_VEC(func) \ - VECTORIZE4_VEC_VEC(func) - -namespace glm{ -namespace detail -{ - template - struct If - { - template - static GLM_FUNC_QUALIFIER T apply(F functor, const T& val) - { - return functor(val); - } - }; - - template<> - struct If - { - template - static GLM_FUNC_QUALIFIER T apply(F, const T& val) - { - return val; - } - }; -}//namespace detail -}//namespace glm - -#endif//GLM_CORE_DETAIL_INCLUDED diff --git a/3party/glm/glm/detail/dummy.cpp b/3party/glm/glm/detail/dummy.cpp deleted file mode 100755 index 26160a51ad..0000000000 --- a/3party/glm/glm/detail/dummy.cpp +++ /dev/null @@ -1,190 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////// -/// OpenGL Mathematics (glm.g-truc.net) -/// -/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/// Permission is hereby granted, free of charge, to any person obtaining a copy -/// of this software and associated documentation files (the "Software"), to deal -/// in the Software without restriction, including without limitation the rights -/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -/// copies of the Software, and to permit persons to whom the Software is -/// furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice shall be included in -/// all copies or substantial portions of the Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -/// THE SOFTWARE. -/// -/// @ref core -/// @file glm/core/dummy.cpp -/// @date 2011-01-19 / 2011-06-15 -/// @author Christophe Riccio -/// -/// GLM is a header only library. There is nothing to compile. -/// dummy.cpp exist only a wordaround for CMake file. -/////////////////////////////////////////////////////////////////////////////////// - -#define GLM_FORCE_RADIANS -#define GLM_MESSAGES -#include "../glm.hpp" -#include - -struct material -{ - glm::vec4 emission; // Ecm - glm::vec4 ambient; // Acm - glm::vec4 diffuse; // Dcm - glm::vec4 specular; // Scm - float shininess; // Srm -}; -struct light -{ - glm::vec4 ambient; // Acli - glm::vec4 diffuse; // Dcli - glm::vec4 specular; // Scli - glm::vec4 position; // Ppli - glm::vec4 halfVector; // Derived: Hi - glm::vec3 spotDirection; // Sdli - float spotExponent; // Srli - float spotCutoff; // Crli - // (range: [0.0,90.0], 180.0) - float spotCosCutoff; // Derived: cos(Crli) - // (range: [1.0,0.0],-1.0) - float constantAttenuation; // K0 - float linearAttenuation; // K1 - float quadraticAttenuation;// K2 -}; - -// Sample 1 -#include // glm::vec3 -#include // glm::cross, glm::normalize - -glm::vec3 computeNormal -( - glm::vec3 const & a, - glm::vec3 const & b, - glm::vec3 const & c -) -{ - return glm::normalize(glm::cross(c - a, b - a)); -} - -typedef unsigned int GLuint; -#define GL_FALSE 0 -void glUniformMatrix4fv(GLuint, int, int, float*){} - -// Sample 2 -#include // glm::vec3 -#include // glm::vec4, glm::ivec4 -#include // glm::mat4 -#include // glm::translate, glm::rotate, glm::scale, glm::perspective -#include // glm::value_ptr -void func(GLuint LocationMVP, float Translate, glm::vec2 const & 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)); -} - -// Sample 3 -#include // glm::vec2 -#include // glm::packUnorm2x16 -#include // glm::uint -#include // glm::i8vec2, glm::i32vec2 -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::uint); -glm::uint const PositionDataF16[VertexCount] = -{ - glm::uint(glm::packUnorm2x16(glm::vec2(-1.0f, -1.0f))), - glm::uint(glm::packUnorm2x16(glm::vec2( 1.0f, -1.0f))), - glm::uint(glm::packUnorm2x16(glm::vec2( 1.0f, 1.0f))), - glm::uint(glm::packUnorm2x16(glm::vec2(-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) -}; - -struct intersection -{ - glm::vec4 position; - glm::vec3 normal; -}; - -/* -// Sample 4 -#include // glm::vec3 -#include // glm::normalize, glm::dot, glm::reflect -#include // glm::pow -#include // glm::vecRand3 -glm::vec3 lighting -( - intersection const & Intersection, - material const & Material, - light const & Light, - glm::vec3 const & View -) -{ - glm::vec3 Color(0.0f); - glm::vec3 LightVertor(glm::normalize( - Light.position - Intersection.position + - glm::vecRand3(0.0f, Light.inaccuracy)); - - if(!shadow(Intersection.position, 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; - } - } - return Color; -} -*/ -int main() -{ - return 0; -} diff --git a/3party/glm/glm/detail/func_common.hpp b/3party/glm/glm/detail/func_common.hpp deleted file mode 100755 index 87734c01a3..0000000000 --- a/3party/glm/glm/detail/func_common.hpp +++ /dev/null @@ -1,472 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////// -/// OpenGL Mathematics (glm.g-truc.net) -/// -/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/// Permission is hereby granted, free of charge, to any person obtaining a copy -/// of this software and associated documentation files (the "Software"), to deal -/// in the Software without restriction, including without limitation the rights -/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -/// copies of the Software, and to permit persons to whom the Software is -/// furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice shall be included in -/// all copies or substantial portions of the Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -/// THE SOFTWARE. -/// -/// @ref core -/// @file glm/core/func_common.hpp -/// @date 2008-03-08 / 2010-01-26 -/// @author Christophe Riccio -/// -/// @see GLSL 4.20.8 specification, section 8.3 Common Functions -/// -/// @defgroup core_func_common Common functions -/// @ingroup core -/// -/// These all operate component-wise. The description is per component. -/////////////////////////////////////////////////////////////////////////////////// - -#ifndef GLM_FUNC_COMMON_INCLUDED -#define GLM_FUNC_COMMON_INCLUDED - -#include "setup.hpp" -#include "precision.hpp" -#include "type_int.hpp" -#include "_fixes.hpp" - -namespace glm -{ - /// @addtogroup core_func_common - /// @{ - - /// Returns x if x >= 0; otherwise, it returns -x. - /// - /// @tparam genType floating-point or signed integer; scalar or vector types. - /// - /// @see GLSL abs man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType abs(genType const & x); - - /// Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. - /// - /// @tparam genType Floating-point or signed integer; scalar or vector types. - /// - /// @see GLSL sign man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType sign(genType const & x); - - /// Returns a value equal to the nearest integer that is less then or equal to x. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL floor man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType floor(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. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL trunc man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType trunc(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. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL round man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType round(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.) - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL roundEven man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - /// @see New round to even technique - template - GLM_FUNC_DECL genType roundEven(genType const & x); - - /// Returns a value equal to the nearest integer - /// that is greater than or equal to x. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL ceil man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType ceil(genType const & x); - - /// Return x - floor(x). - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL fract man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType fract(genType const & x); - - /// Modulus. Returns x - y * floor(x / y) - /// for each component in x using the floating point value y. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL mod man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType 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. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL mod man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType mod( - genType const & x, - typename genType::value_type const & y); - - /// 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. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL modf man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType modf( - genType const & x, - genType & i); - - /// Returns y if y < x; otherwise, it returns x. - /// - /// @tparam genType Floating-point or integer; scalar or vector types. - /// - /// @see GLSL min man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType min( - genType const & x, - genType const & y); - - template - GLM_FUNC_DECL genType min( - genType const & x, - typename genType::value_type const & y); - - /// Returns y if x < y; otherwise, it returns x. - /// - /// @tparam genType Floating-point or integer; scalar or vector types. - /// - /// @see GLSL max man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType max( - genType const & x, - genType const & y); - - template - GLM_FUNC_DECL genType max( - genType const & x, - typename genType::value_type const & y); - - /// Returns min(max(x, minVal), maxVal) for each component in x - /// using the floating-point values minVal and maxVal. - /// - /// @tparam genType Floating-point or integer; scalar or vector types. - /// - /// @see GLSL clamp man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType clamp( - genType const & x, - genType const & minVal, - genType const & maxVal); - - template - GLM_FUNC_DECL genType clamp( - genType const & x, - typename genType::value_type const & minVal, - typename genType::value_type const & maxVal); - - /// 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 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 GLSL mix man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - /// - /// @param[in] x Value to interpolate. - /// @param[in] y Value to interpolate. - /// @param[in] a Interpolant. - /// - /// @tparam genTypeT Floating point scalar or vector. - /// @tparam genTypeU Floating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT. - /// - /// @code - /// #include - /// ... - /// 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. - /// @endcode - template class vecType> - GLM_FUNC_DECL vecType mix( - vecType const & x, - vecType const & y, - vecType const & a); - - template class vecType> - GLM_FUNC_DECL vecType mix( - vecType const & x, - vecType const & y, - U const & a); - - template - GLM_FUNC_DECL genTypeT mix( - genTypeT const & x, - genTypeT const & y, - genTypeU const & a); - - /// Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType. - /// - /// @see GLSL step man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - GLM_FUNC_DECL genType step( - genType const & edge, - genType const & x); - - /// Returns 0.0 if x < edge, otherwise it returns 1.0. - /// - /// @see GLSL step man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template